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: Transform2D
pub const fn translation(delta: Point) -> Transform2D
pub const fn scale_uniform(s: f32) -> Transform2D
pub fn rotation_radians(theta: f32) -> Transform2D
pub fn rotation_degrees(degrees: f32) -> Transform2D
pub fn rotation_about_radians(theta: f32, center: Point) -> Transform2D
pub fn rotation_about_degrees(degrees: f32, center: Point) -> Transform2D
Sourcepub fn compose(self, rhs: Transform2D) -> Transform2D
pub fn compose(self, rhs: Transform2D) -> Transform2D
Matrix composition: self * rhs.
This means: apply rhs first, then self.
pub fn apply_point(self, p: Point) -> Point
pub fn inverse(self) -> Option<Transform2D>
Sourcepub fn to_physical_px(self, scale_factor: f32) -> Transform2D
pub fn to_physical_px(self, scale_factor: f32) -> Transform2D
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§fn default() -> Transform2D
fn default() -> Transform2D
Returns the “default value” for a type. Read more
Source§impl Mul for Transform2D
impl Mul for Transform2D
Source§type Output = Transform2D
type Output = Transform2D
The resulting type after applying the
* operator.Source§fn mul(self, rhs: Transform2D) -> <Transform2D as Mul>::Output
fn mul(self, rhs: Transform2D) -> <Transform2D as Mul>::Output
Performs the
* operation. Read moreSource§impl MulAssign for Transform2D
impl MulAssign for Transform2D
Source§fn mul_assign(&mut self, rhs: Transform2D)
fn mul_assign(&mut self, rhs: Transform2D)
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