Skip to main content

Transform2D

Struct Transform2D 

Source
pub struct Transform2D {
    pub a: f32,
    pub b: f32,
    pub c: f32,
    pub d: f32,
    pub e: f32,
    pub f: f32,
}
Expand description

A 2D affine transform stored as the column-major matrix

| a c e |   | x |
| b d f | * | y |
| 0 0 1 |   | 1 |

— i.e. (x', y') = (a*x + c*y + e, b*x + d*y + f). The layout matches SVG’s matrix(a, b, c, d, e, f) and PDF’s cm operator argument order, so emitters can serialize fields directly.

Fields§

§a: f32§b: f32§c: f32§d: f32§e: f32§f: f32

Implementations§

Source§

impl Transform2D

Source

pub const fn identity() -> Self

The identity transform. compose(identity, x) == x.

Source

pub const fn translate(tx: f32, ty: f32) -> Self

Build a translation by (tx, ty).

Source

pub const fn scale(sx: f32, sy: f32) -> Self

Build a non-uniform scale by (sx, sy) about the origin.

Source

pub fn rotate(angle_radians: f32) -> Self

Build a rotation by angle_radians about the origin (counter-clockwise in a Y-up system, clockwise visually under the SVG / PDF Y-down convention — this matches both formats).

Source

pub fn skew_x(angle_radians: f32) -> Self

Build a horizontal skew (shear along X) by angle_radians.

Source

pub fn skew_y(angle_radians: f32) -> Self

Build a vertical skew (shear along Y) by angle_radians.

Source

pub fn compose(&self, other: &Self) -> Self

Compose self ∘ other — the resulting transform applies other first, then self, to a point. Equivalent to self.matrix() * other.matrix() in column-vector form.

Source

pub fn apply(&self, p: Point) -> Point

Apply this transform to a point.

Source

pub fn is_identity(&self) -> bool

true when this transform is bit-identical to the identity. Useful for emitters that want to skip a no-op matrix(...) / cm write.

Trait Implementations§

Source§

impl Clone for Transform2D

Source§

fn clone(&self) -> Transform2D

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Transform2D

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Transform2D

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Transform2D

Source§

fn eq(&self, other: &Transform2D) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Transform2D

Source§

impl StructuralPartialEq for Transform2D

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.