[]Struct druid::piet::kurbo::TranslateScale

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

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

Create a new transformation from translation and scale.

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

Create a new transformation with scale only.

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

Create a new transformation with translation only.

pub fn as_tuple(self) -> (Vec2, f64)

Decompose transformation into translation and scale.

pub fn inverse(self) -> TranslateScale

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.

Trait Implementations

impl Add<TranslateScale> for Vec2

type Output = TranslateScale

The resulting type after applying the + operator.

impl Add<Vec2> for TranslateScale

type Output = TranslateScale

The resulting type after applying the + operator.

impl AddAssign<Vec2> for TranslateScale

impl Clone for TranslateScale

impl Copy for TranslateScale

impl Debug for TranslateScale

impl Default for TranslateScale

impl From<TranslateScale> for Affine

impl<'a> Mul<&'a BezPath> for TranslateScale

type Output = BezPath

The resulting type after applying the * operator.

impl Mul<BezPath> for TranslateScale

type Output = BezPath

The resulting type after applying the * operator.

impl Mul<Circle> for TranslateScale

type Output = Circle

The resulting type after applying the * operator.

impl Mul<CubicBez> for TranslateScale

type Output = CubicBez

The resulting type after applying the * operator.

impl Mul<Line> for TranslateScale

type Output = Line

The resulting type after applying the * operator.

impl Mul<PathEl> for TranslateScale

type Output = PathEl

The resulting type after applying the * operator.

impl Mul<Point> for TranslateScale

type Output = Point

The resulting type after applying the * operator.

impl Mul<QuadBez> for TranslateScale

type Output = QuadBez

The resulting type after applying the * operator.

impl Mul<Rect> for TranslateScale

type Output = Rect

The resulting type after applying the * operator.

impl Mul<RoundedRect> for TranslateScale

type Output = RoundedRect

The resulting type after applying the * operator.

impl Mul<TranslateScale> for TranslateScale

type Output = TranslateScale

The resulting type after applying the * operator.

impl MulAssign<TranslateScale> for TranslateScale

impl Sub<Vec2> for TranslateScale

type Output = TranslateScale

The resulting type after applying the - operator.

impl SubAssign<Vec2> for TranslateScale

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> From<T> for T[src]

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

impl<T> RoundFrom<T> for T

impl<T, U> RoundInto<U> for T where
    U: RoundFrom<T>, 

impl<T> Same<T> for T

type Output = T

Should always be Self

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.