**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.

- 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

Class | Description | |
---|---|---|

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

Delegate | Description | |
---|---|---|

IterationStepEventHandler | Handles a Steiner point iteration step event. | |

PointInsertionEventHandler | Handles a point insertion event. |

# Enumerations

Enumeration | Description | |
---|---|---|

BinarySTL..::.ColorEncoding | The color encoding method. | |

Constraint..::.ConstraintType | Available constraint types. | |

MeshEdge..::.CollapseDirection | Defines an edge collapse direction. |