G# - the computational geometry namespace extends the V# - VectorGeometry namespace providing fast and robust solutions for the following common computational geometry tasks:

  • The computation of a 2d Delaunay triangulation of a set of n points in O(n * log(n)) time.
  • The computation of a 2d conforming Delaunay triangulation of a set of n points.
  • The computation of a 2d constraint Delaunay triangulation of a set of n points.
  • Surface reconstruction based on a set of n triangular or quadrilateral wireframe edges in O(n * log(n)) time.
  • The computation of a 2d convex hull of a set of n points in O(n * log(n)) time.
  • The computation of a 3d convex hull of a set of n points in O(n * log(n)) time.
  • The computation of 3d polylines from unordered edges.
In addition, it provides
  • a couple of very efficient floating point and exact arithmetic geometric predicates,
  • Mesh generation from unordered triangles.
  • minimum area and minimum perimeter 2d bounding boxes,
  • minimum and maximum 2d point cloud diameters,
  • smallest enclosing circles of planar point sets,
  • a fast approximation for a minimal 3d bounding box and
  • an approximate solution of a 3d convex container loading problem.

The exact arithmetic predicates are due to the work of Jonathan Richard Shewchuk. The C-implementation of the exact arithmetic predicates is in the public domain. ceometric can not guarantee that the ported predicates work correctly. Nevertheless, they never failed in numerous tests. If you have problems using them, please report.

You need to reference the ceometric.VectorGeometry namespace to use this library!

Classes

  ClassDescription
ASCIISTL
Provides methods to read and write an ASCII format STL file.
BinarySTL
Provides methods to read and write an binary format STL file.
BinarySTL..::.STLColor
Provides a color defined in a binary STL file.
BoundingBox
A spatial rectangular box.
BoundingRectangle
A planar counterclockwise oriented rectangle.
ConformingDelaunayTriangulation2d
Provides an exact arithmetic 2d conforming Delaunay triangulation (CDT) of points, constraints ("breaklines") and boundaries.
ConformingDelaunayTriangulation2d..::.IterationStepEventArgs
Provides additional information about the iteration process.
Constraint
Provides two different types of constraints.
ConstraintDelaunayTriangulation2d
Provides an exact arithmetic 2d constraint Delaunay triangulation of points and constraints.
ConvexHull2d
Computes the 2d convex hull of a planar point set.
ConvexHull3d
Computes the 3d convex hull of a spatial point set.
DelaunayTriangulation2d
Provides an exact arithmetic 2d Delaunay triangulation of a point set.
DelaunayTriangulation2d..::.PointInsertionEventArg
Provides point insertion event information.
EdgeSurfaceProjection
Provides methods to project a list of edges onto a surface defined by unordered triangles.
Mesh
Provides a mesh data structure.
MeshEdge
A class defining an edge from two integer values referring to the zero-based index of vertices in a list of mesh vertices.
MeshEdgeList
A data structure to efficiently add and remove edges.
MeshTriangle
A class defining a triangular face by three integer values referring to the zero-based index of vertices in a list of mesh vertices.
MeshTriangleList
A data structure to efficiently add and remove mesh triangles.
MeshVertex
A class holding a vertex of a mesh, whereby a vertex holds its position and a list of its incident mesh triangles.
OFFReader
Provides methods to read polyeders defined by triangular or quadrilateral poylgons defined in an .off-format file.
Polyline
Provides a polyline. A polyline is a list of sorted edges where the end point of each edge is the start point of the next edge.
Predicate
Provides high-performance geometric predicates.
SamplePoints
2d and 3d sample point sets.
SmallestEnclosingCircle
Provides methods to compute the smallest enclosing circle of a planar set of n points in O(n) time using linear storage.
SurfaceReconstructor
Provides methods to reconstruct a surface consisting of triangular and/or quad faces from completely unordered wireframe edges.
SurfaceReconstructor..::.Quad
A quad face.
SurfaceReconstructor..::.Tri
A triangular face.

Delegates

  DelegateDescription
IterationStepEventHandler
Handles a Steiner point iteration step event.
PointInsertionEventHandler
Handles a point insertion event.

Enumerations

  EnumerationDescription
BinarySTL..::.ColorEncoding
The color encoding method.
Constraint..::.ConstraintType
Available constraint types.
MeshEdge..::.CollapseDirection
Defines an edge collapse direction.