This crate contains data structures and methods that deals with lines in 2D and 3D space.
There are 3D and 2D implementations of: * LineString, a sequence of points, aka Polyline. * Line, a finite two-point struct (no rays). * Ramer–Douglas-Peucker and * Visvalingam-Whyatt line simplification algorithms. * Sampling of boostvoronoi parabolic arc curves. * Rudimentary functionality to save to .obj file
There are 2D implementations of: * LineString2 convex hull calculation (gift wrapping & Graham scan) * Aabb axis aligned bounding box. * Self intersection tests for line strings, or groups of lines O( n log n + i log n). * Convex hull containment test (single threaded or multi-threaded with ryon) * Simple affine transformation (pan, zoom)
If you want to use this library in your cgmath project you add this to your Cargo.toml:
cargo
linestring = {version="0.7"}
This crate uses #![feature(map_first_last)]
if compiled by +nightly. This is functionality is only emulated when run on +stable.
Run the line simplification example with :
fish
cargo run --example fltk_gui