Crate hyperbolic_drawing

Source
Expand description

Library for manipulating and displaying elements of 2D hyperbolic space (ℍ²).

All implementation is done in terms of the hyperboloid model, without requirements for normalization.

The component along the axis of the hyperboloid is named t (in reference to spacetime algebra). However, contrary to popular convention, we use γ₀² = −1 and γ₁² = γ₂² = 1. As such, elements on the hyperboloid are normalized to p² = −1.

Modules§

svg
Elements for interfacing with the svg crate.
svg_common
Common elements for interfacing with either the svg or svg_fmt crates.
svg_fmt
Elements for interfacing with the svg crate.

Structs§

Center
A center of some transformation in ℍ²: a point, ideal point, or line.
IdealPoint
An ideal point (‘point at infinity’) in hyperbolic space.
Line
A unitized line in hyperbolic geometry. Enables some additional calculations compared to WeightedLine.
Motor
Precomputed values for performing a motion on other objects.
Point
A unitized point in hyperbolic space. Enables some additional calculations compared to WeightedPoint.
WeightedLine
A line in hyperbolic geometry.
WeightedPoint
A point in 2D hyperbolic space.

Enums§

CenterKind
The kind of a Center as determined by Center::classify.

Traits§

Multivector
An element of the Clifford algebra 𝒢(2,1) under the homogenous coordinates interpretation.
Scalar
Common trait for operations available on float types.
Unitize
A common implementation for unitizing (scaling to weight ±1) a multivector.