[][src]Struct 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[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.

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

type Output = TranslateScale

The resulting type after applying the * operator.

impl Mul<TranslateScale> for f64[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.