Expand description
Portable scalar reference implementation: the correctness oracle (ADR 0012).
No intrinsics, no threading, no feature gates. Every optimized backend is validated by differential test against this crate, so it must stay readable and obviously correct in preference to being fast.
This package is a convenience umbrella (ADR 0036). Certified predicates
now live in the focused axiolid-predicates package and are re-exported
here unchanged, so an existing axiolid_reference::orient2d caller is
unaffected while a narrow consumer can depend on the substrate directly
instead of acquiring this package’s whole dependency graph.
Re-exports§
pub use assemble::exact_boolean;pub use boolean::ScalarBoolean;pub use convex_hull::minimum_area_rectangle;pub use convex_hull::side_lengths;pub use convex_hull::strict_convex_hull;pub use convex_hull::OrientedRectangle2;pub use intersection::assemble_polylines;pub use intersection::intersection_segments;pub use intersection::EdgeKey;pub use intersection::IntersectionCurve;pub use intersection::IntersectionSegment;pub use intersection::NodeKey;pub use intersection::Operand;pub use intersection::Polyline;pub use polygon::ring_orientation;pub use polygon::signed_area2;pub use polygon::triangulate_simple;pub use retriangulate::retriangulate_face;pub use retriangulate::FacePatch;pub use section::ScalarSection;pub use segment_triangle::segment_triangle_relation;pub use segment_triangle::SegmentTriangleRelation;pub use triangle_triangle::triangle_triangle_relation;pub use triangle_triangle::TriangleTriangleRelation;
Modules§
- arithmetic
- Arbitrary-length expansion arithmetic.
- assemble
- Assembling an exact boolean result from retriangulated operands.
- boolean
- Scalar reference implementation of solid booleans (ADR 0012, ADR 0017 §5).
- clash
- Mesh interference: the narrow phase (#4).
- convex_
hull - Deterministic 2D convex hulls and oriented bounding rectangles.
- coplanar
- Overlap between two coplanar triangles.
- curve
- Analytic and spline evaluation moved to the focused
axiolid-evaluatepackage (ADR 0036). Re-exported unchanged so existingaxiolid_reference::curve::*and::surface::*callers are unaffected. Scalar reference implementation of curve evaluation (ADR 0012). - expansion
- Error-free transformations: the arithmetic exact predicates are built from.
- intersection
- Intersection segments between two triangle meshes, and the polylines they assemble into.
- orient3
orient3d: which side of a plane a point lies on.- orientation
- Certified orientation predicates.
- polygon
- Simple-polygon triangulation by ear clipping, with hole support.
- primitive
- Tessellation of CSG primitives into closed solids.
- retriangulate
- Retriangulating a face against the intersection curve crossing it.
- scene
- Degeneracy-controlled scene generation for benchmarking and testing.
- section
- Portable scalar plane section of a closed oriented triangle mesh.
- segment_
triangle - Certified segment/triangle topology classification.
- sphere
incircleandinsphere: is a point inside a circumscribed ball?- static_
filter - Static filters: bounds computed once from a coordinate range.
- surface
- Analytic and spline evaluation moved to the focused
axiolid-evaluatepackage (ADR 0036). Re-exported unchanged so existingaxiolid_reference::curve::*and::surface::*callers are unaffected. Scalar reference implementation of surface evaluation (ADR 0012). - tessellate
- Scalar reference tessellation of surfaces (ADR 0012).
- triangle_
triangle - Certified triangle/triangle topology classification.
Structs§
- Patch
- A finite parameter rectangle for tessellation.
- Scalar
Curve - Portable scalar curve evaluator.
- Scalar
Surface - The
axiolid_surface::SurfaceEvaluatorimplementation, so a caller can dispatch through the trait rather than the free functions. - Static
Filter - Precomputed error bounds for a declared coordinate range.
Functions§
- derivative2
- First derivative of a 2D curve.
- derivative3
- First derivative of a 3D curve.
- elevated_
point - Position on an elevated curve at plan distance
d. - elevated_
tangent - Unit tangent of an elevated curve at plan distance
d. - evaluate2
- Position on a 2D curve.
- evaluate3
- Position on a 3D curve.
- flatten2
- Flatten a 2D curve over
domainso the chord never deviates from the true curve by more thanchord_tolerance. - frenet_
frame - Frame of a space curve at arc length
sfrom its start. - frenet_
point - Position on a space curve at arc length
sfrom its start. - frenet_
tangent - Unit tangent of a space curve at arc length
sfrom its start. - incircle
- Is
dinside the circle througha,b,c? - incircle_
filter - The fast filter alone, exposed so escalation can be measured.
- insphere
- Is
einside the sphere througha,b,c,d? - insphere_
filter - The fast filter alone, exposed so escalation can be measured.
- intrinsic_
point - Position on an intrinsic curve at arc length
sfrom its start. - intrinsic_
tangent - Unit tangent of an intrinsic curve at arc length
s. - join_
intrinsic3 - Join two space curves into one, when the second continues the first.
- offset_
intrinsic3 - Offset a space curve by
distancealong its principal normal. - orient2d
- Orientation of
crelative to the directed linea->b. - orient2d_
filter - The fast filter alone, exposed so the escalation can be observed and tested.
- orient3d
- Orientation of
drelative to the plane througha,b,c. - orient3d_
filter - The fast filter alone, exposed so escalation can be measured.
- partials
- Analytic first partial derivatives
(∂S/∂u, ∂S/∂v)at(u, v). - trim_
intrinsic3 - Restrict a space curve to
[start, end]of its arc length. - two_
diff - Difference of
aandb, plus the exact rounding error. - two_
product - Product of
aandb, plus the exact rounding error. - two_sum
- Sum of
aandb, plus the exact rounding error.