BRL-CAD
libnmg (Non-Manifold Geometry)

"Non-Manifold Geometry" (NMG) models are BRL-CAD's primary mechanism for storing and manipulating planar mesh geometry. The design is based on work from the 1980s by Kevin J. Weiler. More...

Collaboration diagram for libnmg (Non-Manifold Geometry):

Modules

 Definitions
 Common definitions for the headers used in nmg.h (i.e. the headers found in include/nmg)
 
 Global variables
 
 Topology
 Basic NMG structural hierarchy definitions, including the necessary geometric definitions.
 
 Vertex
 Routines for working with NMG Vertices and Vertex Uses.
 
 Edge
 Routines for working with NMG Edges and Edge Uses.
 
 Loop
 Routines for working with NMG Loops and Loop Uses.
 
 Face
 Routines for working with NMG Faces and Face Uses.
 
 Shell
 Routines for working with NMG Shells.
 
 Region
 Routines for working with NMG Regions.
 
 Model
 Routines for working with NMG Models.
 
 Checking
 NMG validation routines.
 
 Debugging
 NMG debugging definitions.
 
 Input/Output
 Serialize and de-serialize NMG models.
 
 Plotting
 NMG plotting routines.
 
 Printing
 Write out information about NMG data as text.
 
 Non-Uniform Rational BSplines
 NMG NURBS support.
 
 Ray/NMG Intersection
 Support for intersecting geometric rays with NMG models.
 
 NMG/NMG Intersection
 Intersection calculations between elements of NMG models.
 
 Element Indexing
 Routines for handling the indexing of NMG structs.
 
 Visit operations
 ???.
 
 Radial operations
 ???.
 

Files

file  nmg.h
 Main header file for the BRL-CAD Non-Manifold Geometry Library, LIBNMG.
 

Detailed Description

"Non-Manifold Geometry" (NMG) models are BRL-CAD's primary mechanism for storing and manipulating planar mesh geometry. The design is based on work from the 1980s by Kevin J. Weiler.

Original development was based on "Non-Manifold Geometric Boundary Modeling" by Kevin Weiler, 5/7/87 (SIGGraph 1989 Course #20 Notes)

See also "Topological Structures for Geometric Modeling" by Kevin J. Weiler - RPI Phd thesis from 1986: https://www.scorec.rpi.edu/REPORTS/1986-1.pdf

Documentation of BRL-CAD's implementation was published as part of Combinatorial Solid Geometry, Boundary Representations, and Non-Manifold Geometry by Michael John Muuss and Lee A. Butler, originally published in State of the Art in Computer Graphics: Visualization and Modeling D. F. Rogers, R. A. Earnshaw editors, Springer-Verlag, New York, 1991, pages 185-223: https://ftp.arl.army.mil/~mike/papers/90nmg/joined.html