Expand description
Structs for interpreting geometric algebra as vector spaces and orthogonal transformations
This module aims to streamline the use of the algebra for geometric uses by adding additional
constraints onto the types from crate::algebra
. This is accomplished by wrapping the
algebraic types in additional structs where the allowed operations are much more limited.
For example, in order to preserve the fact it represents a rotation, a Rotor
cannot be
added to another Rotor
, and to preserve its unit length, a UnitBlade
cannot be multiplied
by a scalar.
Organization
To this aim, there are five main structs in this module:
SimpleBlade
: ABlade
that is guarranteed to be the wedge product of vectors.UnitBlade
: ASimpleBlade
guarranteed to have a length of 1Rotor
: AnEven
representing a rotationReflector
: AnOdd
representing a reflection combined with a possible rotationVersor
: AnEven
orOdd
representing a general orthogonal transformation
Structs
Represents a reflection in N
dimensions (with an optional rotation component)
Represents a rotation in N
dimensions
A Blade
that is the wedge product of G
vectors
A SimpleBlade
with unit length
Enums
A general orthogonal transformation in N
dimensions
Traits
Trait for finding the parallel component of a blade B
onto Self
Trait for finding the perpendicular component of a blade B
onto Self
Implemented on versor types in order to apply their transformation to various values
Type Definitions
A 0-dimensional reflector
A 1-dimensional reflector
A 2-dimensional reflector
A 3-dimensional reflector
A 4-dimensional reflector
A 5-dimensional reflector
A 6-dimensional reflector
A reflector with dynamic dimension
A 0-dimensional rotor
A 1-dimensional rotor
A 2-dimensional rotor
A 3-dimensional rotor
A 4-dimensional rotor
A 5-dimensional rotor
A 6-dimensional rotor
A rotor with dynamic dimension
A 2-dimensional simple bivector
A 3-dimensional simple bivector
A 4-dimensional simple bivector
A 5-dimensional simple bivector
A 6-dimensional simple bivector
A simple bivector with dynamic dimension
An N-dimensional simple bivector
A 0-dimensional simple blade with a dynamic grade
A 1-dimensional simple blade with a dynamic grade
A 2-dimensional simple blade with a dynamic grade
A 3-dimensional simple blade with a dynamic grade
A 4-dimensional simple blade with a dynamic grade
A 5-dimensional simple blade with a dynamic grade
A 6-dimensional simple blade with a dynamic grade
A simple blade with a dynamic dimension and grade
An N-dimensional simple blade with a dynamic grade
A 6-dimensional simple hexavector
A simple hexavector with dynamic dimension
An N-dimensional simple hexavector
A 5-dimensional simple pentavector
A 6-dimensional simple pentavector
A simple pentavector with dynamic dimension
An N-dimensional simple pentavector
A N-dimensional psuedoscalar
A N-dimensional psuedovector
A 4-dimensional simple quadvector
A 5-dimensional simple quadvector
A 6-dimensional simple quadvector
A simple quadvector with dynamic dimension
An N-dimensional simple quadvector
A scalar in N-dimensions
A scalar in 0-dimensions
A scalar in 1-dimension
A scalar in 2-dimensions
A scalar in 3-dimensions
A scalar in 4-dimensions
A scalar in 5-dimensions
A scalar in 6-dimensions
A scalar in a dynamic number of dimensions
A 3-dimensional simple trivector
A 4-dimensional simple trivector
A 5-dimensional simple trivector
A 6-dimensional simple trivector
A simple trivector with dynamic dimension
An N-dimensional simple trivector
A 1-dimensional vector
A 2-dimensional vector
A 3-dimensional vector
A 4-dimensional vector
A 5-dimensional vector
A 6-dimensional vector
A vector with dynamic dimension
An N-dimensional vector
A 2-dimensional unit bivector
A 3-dimensional unit bivector
A 4-dimensional unit bivector
A 5-dimensional unit bivector
A 6-dimensional unit bivector
A unit bivector with dynamic dimension
An N-dimensional unit bivector
A 0-dimensional unit blade with a dynamic grade
A 1-dimensional unit blade with a dynamic grade
A 2-dimensional unit blade with a dynamic grade
A 3-dimensional unit blade with a dynamic grade
A 4-dimensional unit blade with a dynamic grade
A 5-dimensional unit blade with a dynamic grade
A 6-dimensional unit blade with a dynamic grade
A unit blade with a dynamic dimension and grade
An N-dimensional unit blade with a dynamic grade
A 6-dimensional unit hexavector
A unit hexavector with dynamic dimension
An N-dimensional unit hexavector
A 5-dimensional unit pentavector
A 6-dimensional unit pentavector
A unit pentavector with dynamic dimension
An N-dimensional unit pentavector
A N-dimensional unit psuedoscalar
A N-dimensional unit psuedovector
A 4-dimensional unit quadvector
A 5-dimensional unit quadvector
A 6-dimensional unit quadvector
A unit quadvector with dynamic dimension
An N-dimensional unit quadvector
A scalar in N-dimensions
A scalar in 0-dimensions
A scalar in 1-dimension
A scalar in 2-dimensions
A scalar in 3-dimensions
A scalar in 4-dimensions
A scalar in 5-dimensions
A scalar in 6-dimensions
A scalar in a dynamic number of dimensions
A 3-dimensional unit trivector
A 4-dimensional unit trivector
A 5-dimensional unit trivector
A 6-dimensional unit trivector
A unit trivector with dynamic dimension
An N-dimensional unit trivector
A 1-dimensional unit vector
A 2-dimensional unit vector
A 3-dimensional unit vector
A 4-dimensional unit vector
A 5-dimensional unit vector
A 6-dimensional unit vector
A unit vector with dynamic dimension
An N-dimensional unit vector
A 0-dimensional versor
A 1-dimensional versor
A 2-dimensional versor
A 3-dimensional versor
A 4-dimensional versor
A 5-dimensional versor
A 6-dimensional versor
An versor with dynamic dimension