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 the topology carries tolerances, and that is what lets results close up.

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