# [−][src]Trait alga::linear::Scaling

```pub trait Scaling<E: EuclideanSpace>: AffineTransformation<E, NonUniformScaling = Self, Translation = Id, Rotation = Id> + SubsetOf<E::RealField> {
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> { ... }
}```

Subgroups of the (signed) uniform scaling group.

## Provided methods

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

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

### `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.

### `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`.

### `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)`.

Loading content...

## Implementors

### `impl<R, E> Scaling<E> for R where    R: RealField + SubsetOf<R>,    E: EuclideanSpace<RealField = R>,    E::Coordinates: ClosedMul<R> + ClosedDiv<R> + ClosedNeg, `[src]

Loading content...