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.

Enums