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§
- Edge
Data - An edge: a tolerance, a set of representations, and the flags that say whether they agree.
- Face
Data - A face: a surface, where it sits, and how far the face may stray from it.
- Geometry
Store - The geometry a model’s topology refers into.
- Vertex
Data - A vertex: a point and how far it may be from where it claims to be.
Enums§
- Edge
Repr - One way of describing where an edge runs.
- Node
Data - 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
boundingjust enough to satisfy the containment rule againstbounded.
Type Aliases§
- CurveId
- A handle to a space curve.
- PCurve
Id - A handle to a curve in a surface’s parameter space.
- Surface
Id - A handle to a surface.
- Triangulation
Id - A handle to a cached triangulation.