The types in this module implement geometry manipulation functionality.
Geometry manipulation algorithms need to quickly access information about a geometry's topology including queries such as "Wich edges are connected to a vertex", "Retrieve all vertices for a given polygon", "Retrieve all adjacent polygons".
The main type provided in this module is Geometry internally keeping geometry data in a data structure called DECL (doubly connected (half) edge list) allows for such queries. Additionally, a number of geometric algorithms are implemented here.
Data structure that stores items and allows fast lookup, insertion and deletion.
This class provides public methods to create primitive geometry from scratch. The Geometry is stored in DCEL
Provides extrusion functionality for geometries.
Provides methods to edit the components of a geometry.
Provides methods to perform geometric operations.
Stores geometry in a DCEL (doubly connected (half) edge list).
Helper class for initializing Geometry objects.
Represents a node in a (binary) tree.
Provides functionallity to perform a Catmull-Clark Subdivision-Surface algorithm on a Geometry.
Static class for tangent space calculation
Contains the triangulation of a geometry, stored in half edge data structure.
Each face belonging to a 2D geometry contains: a handle to assign a abstract reference to it. a referance to one of the half edges that belongs to the faces outer boundary. a List that contains handles to one half edge for each hole in a face. attribute information, e.g. the face nromal. Note that unbounded faces can't have a OuterHalfEdge but must have at least one InnerHalfEdge - bounded faces must have a OuterComponent.
Contains additional information that can be added to Faces.
Represents a half edge. Each half edge contains: a handle to assign a abstract reference to it. a handle to the half edge's origin vertex. a handle to the next half edge. a handle to the previous half edge. a handle to the face it belongs to. attribute information, e.g. the normal and the texture coordinates.
Contains additional information that can be added to HalfEdges.
Represents an outer or inner boundary of a polygon.
Each vertex contains: a handle to assign a abstract reference to it. attribute information, e.g. the position of the vertex.
Contains additional information that can be added to Vertices.
To divide a polygon into y monotone pieces, the corners of this polygon must be divided into different categories. Those are start, end, split, merge, and regular vertices.