Skip to main content

Module entity

Module entity 

Source
Expand description

What hangs off a topology node: geometry, tolerances, edge representations.

docs/DATA_MODEL.md §5 and §6.

§Tolerances are per entity

Every vertex, edge and face carries its own Tolerance: the radius within which it is considered to lie. Operations may only widen one, and the containment rule tol(vertex) >= tol(edge) >= tol(face) holds between entities in a boundary relationship (check_containment).

This is not a workaround for imprecise code. Exact arithmetic cannot represent the intersection curve of two curved surfaces, so a tolerance-carrying topology is the only known way to build a kernel whose results close up. Every production kernel works this way.

§An edge carries a list of representations

Not one curve: a list. A single edge holds a 3D curve, one pcurve per adjacent face, two pcurves where it is a seam on a closed surface, and cached polylines. Face splitting during a boolean happens in a surface’s 2D parameter space, so without a pcurve on each face there is nothing to split with; and since surfaces are parameterized differently, one 2D curve cannot serve two faces.

Structs§

EdgeData
An edge: a tolerance, a set of representations, and the flags that say whether they agree.
FaceData
A face: a surface, where it sits, and how far the face may stray from it.
GeometryStore
The geometry a model’s topology refers into.
VertexData
A vertex: a point and how far it may be from where it claims to be.

Enums§

EdgeRepr
One way of describing where an edge runs.
NodeData
What a topology node holds, beyond its children.

Functions§

check_containment
Check the containment rule between a bounding entity and what it bounds.
check_range
Whether a parameter range is usable.
enforce_containment
Widen bounding just enough to satisfy the containment rule against bounded.

Type Aliases§

CurveId
A handle to a space curve.
PCurveId
A handle to a curve in a surface’s parameter space.
SurfaceId
A handle to a surface.
TriangulationId
A handle to a cached triangulation.