pub struct Transform2D {
pub a: f32,
pub b: f32,
pub c: f32,
pub d: f32,
pub tx: f32,
pub ty: f32,
}Expand description
A 2D affine transform in logical pixels.
Matrix form (applied to column vectors):
| a c tx |
| b d ty |
| 0 0 1 |So:
x' = a*x + c*y + txy' = b*x + d*y + ty
Fields§
§a: f32§b: f32§c: f32§d: f32§tx: f32§ty: f32Implementations§
Source§impl Transform2D
impl Transform2D
pub const IDENTITY: Self
pub const fn translation(delta: Point) -> Self
pub const fn scale_uniform(s: f32) -> Self
pub fn rotation_radians(theta: f32) -> Self
pub fn rotation_degrees(degrees: f32) -> Self
pub fn rotation_about_radians(theta: f32, center: Point) -> Self
pub fn rotation_about_degrees(degrees: f32, center: Point) -> Self
Sourcepub fn compose(self, rhs: Self) -> Self
pub fn compose(self, rhs: Self) -> Self
Matrix composition: self * rhs.
This means: apply rhs first, then self.
pub fn apply_point(self, p: Point) -> Point
pub fn inverse(self) -> Option<Self>
Sourcepub fn to_physical_px(self, scale_factor: f32) -> Self
pub fn to_physical_px(self, scale_factor: f32) -> Self
Converts a logical-px transform to a physical-px transform.
If you already have coordinates multiplied by scale_factor, apply the returned transform
directly in physical pixels.
Sourcepub fn as_translation_uniform_scale(self) -> Option<(f32, Point)>
pub fn as_translation_uniform_scale(self) -> Option<(f32, Point)>
Returns (scale, translation) if this is a translation + uniform scale transform.
Trait Implementations§
Source§impl Clone for Transform2D
impl Clone for Transform2D
Source§fn clone(&self) -> Transform2D
fn clone(&self) -> Transform2D
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for Transform2D
impl Debug for Transform2D
Source§impl Default for Transform2D
impl Default for Transform2D
Source§impl Mul for Transform2D
impl Mul for Transform2D
Source§impl MulAssign for Transform2D
impl MulAssign for Transform2D
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
Performs the
*= operation. Read moreSource§impl PartialEq for Transform2D
impl PartialEq for Transform2D
impl Copy for Transform2D
impl StructuralPartialEq for Transform2D
Auto Trait Implementations§
impl Freeze for Transform2D
impl RefUnwindSafe for Transform2D
impl Send for Transform2D
impl Sync for Transform2D
impl Unpin for Transform2D
impl UnsafeUnpin for Transform2D
impl UnwindSafe for Transform2D
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more