An abstract base class to support keys used in std::map where the key
is an n-tuple (V[0],...,V[n-1]) of integers that index a collection
of vertices. The feature key is ordered or unordered,
where these terms refer to topological ordering of the components
of the n-tuple. The paradigm is triangle face ordering, which can be
clockwise or counterclockwise. An ordered feature key sets V[0] to the
minimum of the n-tuple components and the n-tuple is a permutation of
the components having an even number of transpositions. This preserves
the topological ordering for the vertices. An unordered feature key has
V[0] < ... < V[n-1], which might not preserve the topological ordering.
Be aware that the term unordered is about topological order, not
the sort ordering of the components as integers.
perhaps
|
A feature key for n = 2, which is used for std::map whose keys involve
edges (2-tuples of integers).
|
A feature key for n = 3, which is used for std::map whose keys involve
triangles (3-tuples of integers).
|
A feature key for n = 4, which is used for std::map whose keys involve
tetrahedra (4-tuples of integers).
|
A graph data structure involving vertices and edges. The mesh is a
1-dimensional manifold, where each vertex is shared by at most two
edges. This is fancy way of representing polylines, open or closed.
Its sole purpose is to motivate how one represents manifold meshes
for 2-dimensional surfaces (triangle meshes) or 3-dimensional solids
(tetrahedron meshes).
|
A graph data structure involving edges and triangles. The mesh is a
2-dimensional manifold, where each edge is shared by at most two
triangles. This is used extensively in the source code for algorithms
in computational geometry.
|
A graph data structure involving edges and triangles. The mesh is
2-dimensional but not necessarily manifold; each edge can be shared by more than two
triangles
|
A graph data structure involving vertices, edges, and triangles. The mesh is a
2-dimensional manifold, where each edge is shared by at most two
triangles.
|
Graph data structures involving vertices, edges, and triangles. The mesh is a
2-dimensional manifold, where each edge is shared by at most two triangles. The
meshes are static in that you must provide the triangles as a batch via the
constructor. These classes outperform VETManifoldMesh and ETManifoldMesh, which
are designed for dynamic construction of meshes. The static-mesh classes support
multithreading, which is useful when the numbers of vertices and triangles is large.
|
A graph data structure involving vertices, edges, and triangles. The mesh is
2-dimensional but not necessarily manifold; each edge can be shared by more than two
triangles.
|
A graph data structure involving triangles and tetrahedra. The mesh is
a 3-dimensional manifold, where each triangle is shared by at most two
tetrahedra. The 'T' stands for 'triangle' and the 'S' stands for
'simplex'; in 3D, a tetrahedron is a simplex. This code can be
extended to n-dimensional manifolds involving (n-1)-dimensional
simplices and n-dimensional simplices. Each (n-1)-dimensional simplex
is shared by at most two n-dimensional simplices.
|
A graph data structure involving vertices, triangles and tetrahedra.
The mesh is a 3-dimensional manifold, where each triangle is shared
by at most two tetrahedra. The 'T' stands for 'triangle' and the 'S'
stands for'simplex'; in 3D, a tetrahedron is a simplex. This code
can be extended to n-dimensional manifolds involving (n-1)-dimensional
simplices and n-dimensional simplices. Each (n-1)-dimensional simplex
is shared by at most two n-dimensional simplices.
|
Graph data structures involving vertices, triangles, and tetrahedra. The mesh is a
3-dimensional manifold, where each triangle is shared by at most two tetrahedra. The
meshes are static in that you must provide the tetrahedra as a batch via the
constructor. These classes outperform VTSManifoldMesh and TSManifoldMesh, which
are designed for dynamic construction of meshes. The static-mesh classes support
multithreading, which is useful when the numbers of vertices and tetrahedra is large.
|
Small helper classes to generate a set of unique vertices from a
triangle soup or from a collection of indexed triangles. The
UniqueVerticesTriangles code is deprecated. The
UniqueVerticesSimplices code handles vertices-edges, vertices-triangles
and vertices-simplices in general dimensions.
|
Manage a planar mesh and allow fast and exact point-in-triangle queries
and computation of barycentric coordinates. This supports resampling of
meshes with automatically generated texture coordinates.
|
Test whether an undirected graph is planar using a sort-and-sweep
algorithm.
|
Discrete differential geometry to estimate principal curvatures
and directions at vertices of a triangle mesh.
|
An abstract class that supports smoothing a mesh based on normal
and tangential forces.
|
Support for standard meshes. The mesh types are vertex-edge,
edge-triangle, vertex-edge-triangle and triangle-tetrahedron. Code is
provided for generating standard meshes: rectangles, rectangle
patches, surfaces of revolution, and tubes. These are independent
of the graphics system.
|