DEPRECATED: this library is being replaced by https://github.com/ara3d/Plato.Geometry
A cross-platform C# library of geometric algorithms and data structures.
This library is a work in progress and still undergoing frequent changes.
This library is designed specially for parametric design and procedural geometry creation. Everything is written from the ground in .NET Standard 2.0 compliant C# and has minimal dependencies. All dependencies are also .NET Standard 2.0 compliant C#.
This library leverages functional programming techniques and a fluent-style API (i.e., method-chain syntax) to make working with geometric structures easy and efficient.
Most data structures are immutable.
Many of the interfaces are defined in the file Interfaces.cs
. Some of the primary interface are:
ITriMesh
- triangular meshIQuadMesh
- quadrilateral meshIPolyLine2D
- a series of connectedline segmentsIPolyLine3D
- a series of connected line segments in 3D spaceISurface
- a surface in 3D space, that may be discrete or parametric.IParametricSurface
- a surface defined using a mapping from UV coordinates to XYZ coordinatesICurve2D
- a continuous curve in 2D spaceICurve3D
- a continuous curve in 3D space
A number of primitive shapes are provided in 2D and 3D.
See:
PlatonicSolids.cs
ParametricSurfaces.cs
Polygons.cs
Prisms.cs
This library can only be build as a submodule of the Ara 3D Main Repository.