BRL-CAD
libbg (Geometric Algorithms)

BRL-CAD geometry library. This library is intended for generic geometry algorithms, such as point-in-polygon, does a line intersect a sphere, ear clipping triangulation of a polygon, etc. More...

Collaboration diagram for libbg (Geometric Algorithms):

Modules

 Definitions
 Common definitions for the headers used in bg.h (i.e. the headers found in include/bg)
 
 Point Generation
 
 Vertex binary search tree
 
 View related geometric clipping
 
 Line Segments
 
 Plane/line/point calculations
 
 Triangles
 
 Oriented Bounding Rectangles/Rectangular Cuboids
 
 Polygons
 
 Axis Aligned Bounding Boxes
 
 Separating Axis Theorem Tests
 
 Convex Hulls
 
 Surface Reconstruction
 
 Level-of-Detail Geometry Generation
 

Files

file  bg.h
 Header file for the BRL-CAD Geometry Library, LIBBG.
 

Detailed Description

BRL-CAD geometry library. This library is intended for generic geometry algorithms, such as point-in-polygon, does a line intersect a sphere, ear clipping triangulation of a polygon, etc.

Algorithms in this library should not require solid raytracing of the BRL-CAD CSG boolean hierarchy - routines using those high level constructs should be in libanalyze, which uses librt to do the necessary raytracing. libbg is lower level, and should depend only on the numerics library (libbn) and the libbu utility (libbu)

Strictly numerical algorithms, which do not involve 3D geometry concepts, belong in libbn. An example of something that would belong in libbn would be sparse matrix solving.

The functionality provided by this library is specified in the bg.h header or appropriate included files from the ./bg subdirectory.