Skip to main content

Module tolerance

Module tolerance 

Source
Expand description

Tolerances.

See docs/DATA_MODEL.md §5 and §9. Two separate things live here:

  • Global constants: the thresholds at which the kernel decides two things are “the same”. Tolerances carries them, parameterised by the model’s unit scale.
  • Per-entity tolerances: Tolerance, the radius attached to an individual vertex, edge or face, together with the containment rule that relates them.

The unit scale is explicit. Kernels commonly hard-code a confusion tolerance of 1e-7 with an undocumented assumption that models are in millimetres, which then misbehaves silently on models authored in metres or inches.

Structs§

Tolerance
The tolerance carried by a single vertex, edge or face: the radius within which the entity is considered to lie.
Tolerances
The threshold constants the kernel decides identity by, for a given model scale.

Constants§

ANGULAR
Two directions closer than this in angle are parallel. Dimensionless.
APPROXIMATION
Accuracy target when fitting a curve or surface to data, at unit scale.
CONFUSION
Two points closer than this are the same point, at unit scale.
DEGENERATE
A length below which an entity is degenerate rather than merely small, at unit scale.
INTERSECTION
Convergence target for intersection algorithms, at unit scale.
P_CONFUSION
Confusion in parametric space. Dimensionless.

Functions§

check_containment
Check the containment rule tol(vertex) >= tol(edge) >= tol(face) for a boundary relationship.