Thanks to visit codestin.com
Credit goes to lib.rs

21 releases

Uses old Rust 2015

0.1.20 Apr 10, 2020
0.1.19 Apr 24, 2019
0.1.18 Dec 24, 2018
0.1.16 Nov 8, 2018
0.1.4 Jul 18, 2018

#2443 in Algorithms

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

87 downloads per month
Used in michelangelo

MIT license

155KB
3.5K SLoC

descartes

descartes is a...

  • Error-tolerant 2D geometry engine
  • that allows for arbitrary error tolerances
  • dealing with both floating-point inaccuracies and much larger user input inaccuracies

With the following primitives:

  • line
  • circle
  • line/circle segment

And the following compound objects:

  • Path (continuous concatenation of line/circle segments)
  • Shape (Path outline with 0..n Path holes)
  • Band (a path with a thickness)

It offers...

  • Reexported 2D & 3D Point/Vector operations from nalgebra
  • Projections from and onto lines, circles, segments, paths, bands
  • Intersections
    • between lines & circles
    • between line/circle segments
    • between paths
  • Axis-aligned bounding boxes for
    • line/circle segments
    • paths
  • Boolean operations between shapes
  • Orthogonal offsets of segments
  • True Orthogonal offsets of paths (without producing self-intersections)
  • A RoughEq Trait for comparing things within a tolerance, with implementations for P2, P3 and V2, P3

It internally uses...

  • "Thick" primitives for tolerances

descartes is named after René Descartes, the father of analytical geometry.

Dependencies

~6.5MB
~125K SLoC