Skip to main content

Module mesh

Module mesh 

Source

Modules§

adjacency
Edge adjacency derived once, so algorithms stop rebuilding it.
attribute
Named per-vertex data carried alongside positions.
audit
Deterministic structural triangle-mesh audit.
component
Splitting a mesh into connected components, and recombining them (#85).
error
Structured mesh validation failures.
halfedge
Halfedge surface mesh: O(1) adjacency and in-place connectivity edits.
polygon
Polygonal face mesh that preserves n-gons and inner voids before triangulation.
triangle
Indexed triangle mesh representation.
view
Borrowed mesh interoperability seam.

Structs§

AttributeChannel
Per-vertex or per-corner values under a caller-chosen name.
EdgeAdjacency
Edge-to-triangle adjacency over a triangle mesh.
EdgeId
An undirected edge of a HalfedgeMesh; it owns halfedges 2e and 2e + 1.
EdgeKey
An undirected edge, canonically ordered so both sides collide.
EdgeUse
One triangle’s use of an edge, and the direction it traversed.
FaceId
A face of a HalfedgeMesh.
HalfedgeId
A directed halfedge of a HalfedgeMesh.
HalfedgeInvariantError
The first structural invariant a HalfedgeMesh was found to break.
HalfedgeMesh
Halfedge (doubly-connected edge list) surface mesh of a 2-manifold, with or without boundary, with polygonal faces.
HalfedgeRemap
Old-to-new id mapping returned by HalfedgeMesh::compact.
MeshCycleHealth
MeshHealth plus the oriented-cycle facts of the same pass.
MeshHealth
Source-neutral structural facts about one triangle mesh.
NormalAttribute
Optional independently indexed vertex normals.
PolygonFace
One polygonal face with an outer loop and zero or more inner loops.
PolygonMesh
Indexed polygon mesh in local coordinates.
TriMesh
Indexed triangle mesh in local coordinates.
VertexId
A vertex of a HalfedgeMesh.

Enums§

AttributeFate
What happened to a channel during an operation.
Blend
How a channel’s values may be combined when a new vertex appears.
DropReason
Why a channel could not be carried through an operation.
HalfedgeBuildError
Why a face list cannot become a HalfedgeMesh.
HalfedgeEditError
Why a local edit or a conversion was refused.
MeshAuditError
A bounded audit could not reserve its declared edge-record scratch.
MeshValidationError
Cheap structural validation failure.

Traits§

MeshView
Read-only triangle mesh view.
TriangleMeshView
Read-only triangle mesh with arbitrary caller index storage.

Functions§

audit_mesh
Audit a triangle mesh with an explicit source-unit tolerance.
audit_mesh_cycle
audit_mesh with the oriented-cycle facts, in the same pass.
audit_mesh_scratch_bytes
Exact requested scratch bytes for try_audit_mesh.
component_count
Number of connected components, counting only referenced vertices.
compose
Combine meshes into one, rebasing each mesh’s indices.
decompose
Split a mesh into its connected components.
split_triangle_at_side_corners
Triangulate a proper triangle t whose side i (from t[i] to t[i+1]) carries the corners sides[i] in order, into proper triangles with the same winding, appended to out as index triples.
try_audit_mesh
Audit using one fallible, precomputable edge-record allocation.
try_audit_mesh_cycle
audit_mesh_cycle with one fallible, precomputable edge-record allocation; audit_mesh_scratch_bytes bounds it like try_audit_mesh.