Crate linestring[−][src]
Expand description
This library 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)
The library is implemented for a couple of independent 2d/3d packages:nalgebra,cgmath,vecmath,mint and plain vectors. Those implementations are feature gated so you only need to import the package you really use.
Modules
This module is optional. To use if you must include the feature cgmath
in your Cargo.toml
file.
This module is optional. To use if you must include the feature cgmath
in your Cargo.toml
file.
This module is optional. To use if you must include the feature mint
in your Cargo.toml
file.
This module is optional. To use if you must include the feature mint
in your Cargo.toml
file.
This module is optional. To use if you must include the feature nalgebra
in your Cargo.toml
file.
This module is optional. To use if you must include the feature nalgebra
in your Cargo.toml
file.
This module is optional. To use if you must include the feature vecmath
in your Cargo.toml
file.
This module is optional. To use if you must include the feature vecmath
or vector
in your Cargo.toml
file.
This module is optional. To use if you must include the feature vecmath
or vector
in your Cargo.toml
file.