Struct kurbo::TranslateScale[][src]

pub struct TranslateScale { /* fields omitted */ }

A transformation including scaling and translation.

If the translation is (x, y) and the scale is s, then this transformation represents this augmented matrix:

| s 0 x |
| 0 s y |
| 0 0 1 |

See Affine for more details about the equivalence with augmented matrices.

Various multiplication ops are defined, and these are all defined to be consistent with matrix multiplication. Therefore, TranslateScale * Point is defined but not the other way around.

Also note that multiplication is not commutative. Thus, TranslateScale::scale(2.0) * TranslateScale::translate(Vec2::new(1.0, 0.0)) has a translation of (2, 0), while TranslateScale::translate(Vec2::new(1.0, 0.0)) * TranslateScale::scale(2.0) has a translation of (1, 0). (Both have a scale of 2; also note that the first case can be written 2.0 * TranslateScale::translate(Vec2::new(1.0, 0.0)) as this case has an implicit conversion).

This transformation is less powerful than Affine, but can be applied to more primitives, especially including Rect.

Implementations

impl TranslateScale[src]

pub const fn new(translation: Vec2, scale: f64) -> TranslateScale[src]

Create a new transformation from translation and scale.

pub const fn scale(s: f64) -> TranslateScale[src]

Create a new transformation with scale only.

pub const fn translate(t: Vec2) -> TranslateScale[src]

Create a new transformation with translation only.

pub fn as_tuple(self) -> (Vec2, f64)[src]

Decompose transformation into translation and scale.

pub fn inverse(self) -> TranslateScale[src]

Compute the inverse transform.

Multiplying a transform with its inverse (either on the left or right) results in the identity transform (modulo floating point rounding errors).

Produces NaN values when scale is zero.

pub fn is_finite(&self) -> bool[src]

Is this translate/scale finite?

pub fn is_nan(&self) -> bool[src]

Is this translate/scale NaN?

Trait Implementations

impl Add<TranslateScale> for Vec2[src]

type Output = TranslateScale

The resulting type after applying the + operator.

impl Add<Vec2> for TranslateScale[src]

type Output = TranslateScale

The resulting type after applying the + operator.

impl AddAssign<Vec2> for TranslateScale[src]

impl Clone for TranslateScale[src]

impl Copy for TranslateScale[src]

impl Debug for TranslateScale[src]

impl Default for TranslateScale[src]

impl<'de> Deserialize<'de> for TranslateScale[src]

impl From<TranslateScale> for Affine[src]

impl<'a> Mul<&'a BezPath> for TranslateScale[src]

type Output = BezPath

The resulting type after applying the * operator.

impl Mul<BezPath> for TranslateScale[src]

type Output = BezPath

The resulting type after applying the * operator.

impl Mul<Circle> for TranslateScale[src]

type Output = Circle

The resulting type after applying the * operator.

impl Mul<CubicBez> for TranslateScale[src]

type Output = CubicBez

The resulting type after applying the * operator.

impl Mul<Line> for TranslateScale[src]

type Output = Line

The resulting type after applying the * operator.

impl Mul<PathEl> for TranslateScale[src]

type Output = PathEl

The resulting type after applying the * operator.

impl Mul<PathSeg> for TranslateScale[src]

type Output = PathSeg

The resulting type after applying the * operator.

impl Mul<Point> for TranslateScale[src]

type Output = Point

The resulting type after applying the * operator.

impl Mul<QuadBez> for TranslateScale[src]

type Output = QuadBez

The resulting type after applying the * operator.

impl Mul<Rect> for TranslateScale[src]

type Output = Rect

The resulting type after applying the * operator.

impl Mul<RoundedRect> for TranslateScale[src]

type Output = RoundedRect

The resulting type after applying the * operator.

impl Mul<RoundedRectRadii> for TranslateScale[src]

type Output = RoundedRectRadii

The resulting type after applying the * operator.

impl Mul<TranslateScale> for TranslateScale[src]

type Output = TranslateScale

The resulting type after applying the * operator.

impl MulAssign<TranslateScale> for TranslateScale[src]

impl Serialize for TranslateScale[src]

impl Sub<Vec2> for TranslateScale[src]

type Output = TranslateScale

The resulting type after applying the - operator.

impl SubAssign<Vec2> for TranslateScale[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.