descartes
descartes copied to clipboard
Imprecision-tolerant computational geometry for Rust
descartes
descartes is a...
- [X] Error-tolerant 2D geometry engine
- [X] that allows for arbitrary error tolerances
- [X] dealing with both floating-point inaccuracies and much larger user input inaccuracies
With the following primitives:
- [X] line
- [X] circle
- [X] line/circle segment
And the following compound objects:
- [X] Path (continuous concatenation of line/circle segments)
- [ ] Shape (Path outline with 0..n Path holes)
- [X] Band (a path with a thickness)
It offers...
- [ ] Reexported 2D & 3D Point/Vector operations from
nalgebra - [X] Projections from and onto lines, circles, segments, paths, bands
- [X] Intersections
- [X] between lines & circles
- [X] between line/circle segments
- [X] between paths
- [X] Axis-aligned bounding boxes for
- [X] line/circle segments
- [X] paths
- [ ] Boolean operations between shapes
- [X] Orthogonal offsets of segments
- [ ] True Orthogonal offsets of paths (without producing self-intersections)
- [X] A
RoughEqTrait for comparing things within a tolerance, with implementations forP2, P3andV2, P3
It internally uses...
- [X] "Thick" primitives for tolerances
descartes is named after René Descartes, the father of analytical geometry.