Skip to main content

IsometryGroup

Trait IsometryGroup 

Source
pub trait IsometryGroup: Space {
    type Iso: Copy + Send + Sync + 'static;

    // Required methods
    fn iso_identity(&self) -> Self::Iso;
    fn iso_compose(&self, a: Self::Iso, b: Self::Iso) -> Self::Iso;
    fn iso_inverse(&self, a: Self::Iso) -> Self::Iso;
    fn iso_apply(&self, iso: Self::Iso, p: Self::Point) -> Self::Point;
    fn iso_transport(
        &self,
        iso: Self::Iso,
        at: Self::Point,
        v: Self::Vector,
    ) -> Self::Vector;
}

Required Associated Types§

Source

type Iso: Copy + Send + Sync + 'static

Required Methods§

Source

fn iso_identity(&self) -> Self::Iso

Source

fn iso_compose(&self, a: Self::Iso, b: Self::Iso) -> Self::Iso

a ∘ b, apply b first, then a.

Source

fn iso_inverse(&self, a: Self::Iso) -> Self::Iso

Source

fn iso_apply(&self, iso: Self::Iso, p: Self::Point) -> Self::Point

Source

fn iso_transport( &self, iso: Self::Iso, at: Self::Point, v: Self::Vector, ) -> Self::Vector

Maps tangents at at to tangents at iso_apply(iso, at).

Implementors§