Trait alga::linear::Scaling

source ·
pub trait Scaling<E: EuclideanSpace>: AffineTransformation<E, NonUniformScaling = Self, Translation = Id, Rotation = Id> + SubsetOf<E::RealField> {
    // Provided methods
    fn to_real(&self) -> E::RealField { ... }
    fn from_real(r: E::RealField) -> Option<Self> { ... }
    fn powf(&self, n: E::RealField) -> Option<Self> { ... }
    fn scale_between(a: &E::Coordinates, b: &E::Coordinates) -> Option<Self> { ... }
}
Expand description

Subgroups of the (signed) uniform scaling group.

Provided Methods§

source

fn to_real(&self) -> E::RealField

Converts this scaling factor to a real. Same as self.to_superset().

source

fn from_real(r: E::RealField) -> Option<Self>

Attempts to convert a real to an element of this scaling subgroup. Same as Self::from_superset(). Returns None if no such scaling is possible for this subgroup.

source

fn powf(&self, n: E::RealField) -> Option<Self>

Raises the scaling to a power. The result must be equivalent to self.to_superset().powf(n). Returns None if the result is not representable by Self.

source

fn scale_between(a: &E::Coordinates, b: &E::Coordinates) -> Option<Self>

The scaling required to make a have the same norm as b, i.e., |b| = |a| * norm_ratio(a, b).

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E: EuclideanSpace> Scaling<E> for Id

source§

impl<R, E> Scaling<E> for R
where R: RealField + SubsetOf<R>, E: EuclideanSpace<RealField = R>, E::Coordinates: ClosedMul<R> + ClosedDiv<R> + ClosedNeg,