pub struct Transform2<WFrom = Generic, WTo = WFrom> {
pub m: [f64; 6],
/* private fields */
}Expand description
A 2D affine transform between two phantom coordinate spaces.
Fields§
§m: [f64; 6]Affine matrix coefficients in kurbo-compatible [a, b, c, d, e, f] order.
Implementations§
Source§impl<WFrom, WTo> Transform2<WFrom, WTo>
impl<WFrom, WTo> Transform2<WFrom, WTo>
Sourcepub fn new(m: [f64; 6]) -> Transform2<WFrom, WTo>
pub fn new(m: [f64; 6]) -> Transform2<WFrom, WTo>
Constructs a transform from raw affine coefficients.
Sourcepub fn identity() -> Transform2<WFrom, WTo>
pub fn identity() -> Transform2<WFrom, WTo>
Returns the identity transform.
Sourcepub fn scale(s: f64) -> Transform2<WFrom, WTo>
pub fn scale(s: f64) -> Transform2<WFrom, WTo>
Constructs a uniform scale transform.
Sourcepub fn scale_sep(s: Vector2<WTo>) -> Transform2<WFrom, WTo>
pub fn scale_sep(s: Vector2<WTo>) -> Transform2<WFrom, WTo>
Constructs a non-uniform scale transform.
Sourcepub fn skew(k: Vector2<WTo>) -> Transform2<WFrom, WTo>
pub fn skew(k: Vector2<WTo>) -> Transform2<WFrom, WTo>
Constructs a skew transform.
Sourcepub fn rotate(th: f64) -> Transform2<WFrom, WTo>
pub fn rotate(th: f64) -> Transform2<WFrom, WTo>
Constructs a rotation transform, in radians.
Sourcepub fn translate(p: Vector2<WTo>) -> Transform2<WFrom, WTo>
pub fn translate(p: Vector2<WTo>) -> Transform2<WFrom, WTo>
Constructs a translation transform.
Sourcepub fn determinant(self) -> f64
pub fn determinant(self) -> f64
Returns the affine determinant.
Sourcepub fn coeffs(&self) -> [f64; 6]
pub fn coeffs(&self) -> [f64; 6]
Returns raw affine coefficients in kurbo-compatible [a, b, c, d, e, f] order.
Sourcepub fn get_translation(self) -> Vector2<WFrom>
pub fn get_translation(self) -> Vector2<WFrom>
Extracts the translation component as a vector.
Sourcepub fn cast_spaces<W, T>(self) -> Transform2<W, T>
pub fn cast_spaces<W, T>(self) -> Transform2<W, T>
Casts the phantom coordinate spaces without changing coefficients.
Sourcepub fn inverse(self) -> Transform2<WTo, WFrom>
pub fn inverse(self) -> Transform2<WTo, WFrom>
Produces NaN values when the determinant is zero.
Sourcepub fn compose(
p: Point2<WTo>,
vx: Vector2<WTo>,
vy: Vector2<WTo>,
) -> Transform2<WFrom, WTo>
pub fn compose( p: Point2<WTo>, vx: Vector2<WTo>, vy: Vector2<WTo>, ) -> Transform2<WFrom, WTo>
Composes a transform from origin and basis vectors.
Sourcepub fn decompose(&self) -> (Point2<WTo>, Vector2<WTo>, Vector2<WTo>)
pub fn decompose(&self) -> (Point2<WTo>, Vector2<WTo>, Vector2<WTo>)
Decomposes the transform into origin and transformed basis vectors.
Sourcepub fn contains_point(&self, point: Point2<WTo>) -> bool
pub fn contains_point(&self, point: Point2<WTo>) -> bool
Returns true when point lands inside the transformed unit square.
Trait Implementations§
Source§impl<F, T> Clone for Transform2<F, T>
impl<F, T> Clone for Transform2<F, T>
Source§fn clone(&self) -> Transform2<F, T>
fn clone(&self) -> Transform2<F, T>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl CoercionRules for Transform2
impl CoercionRules for Transform2
Source§fn try_coerce(value: PaxValue) -> Result<Transform2, String>
fn try_coerce(value: PaxValue) -> Result<Transform2, String>
value into Self.Source§fn allows_singleton_stack() -> bool
fn allows_singleton_stack() -> bool
Source§fn is_identity_roundtrip() -> bool
fn is_identity_roundtrip() -> bool
Self preserves the semantics of converting that clone
through ToPaxValue and back with try_coerce. Read moreimpl<F, T> Copy for Transform2<F, T>
Source§impl<F, T> Debug for Transform2<F, T>
impl<F, T> Debug for Transform2<F, T>
Source§impl<F, T> Default for Transform2<F, T>
impl<F, T> Default for Transform2<F, T>
Source§fn default() -> Transform2<F, T>
fn default() -> Transform2<F, T>
Source§impl<T, F> From<Transform2<T, F>> for Affine
impl<T, F> From<Transform2<T, F>> for Affine
Source§fn from(value: Transform2<T, F>) -> Affine
fn from(value: Transform2<T, F>) -> Affine
Source§impl HelperFunctions for Transform2
impl HelperFunctions for Transform2
Source§fn register_all_functions()
fn register_all_functions()
impl<F, T> ImplToFromPaxAny for Transform2<F, T>
Source§impl<W, T> Interpolatable for Transform2<W, T>
impl<W, T> Interpolatable for Transform2<W, T>
Source§fn interpolate(&self, other: &Transform2<W, T>, t: f64) -> Transform2<W, T>
fn interpolate(&self, other: &Transform2<W, T>, t: f64) -> Transform2<W, T>
Source§impl<F, W> Into<Transform2<F, W>> for TransformParts
impl<F, W> Into<Transform2<F, W>> for TransformParts
Source§fn into(self) -> Transform2<F, W>
fn into(self) -> Transform2<F, W>
Source§impl<F, T> Into<TransformParts> for Transform2<F, T>
NOTE: the returned parts.skew.y will always be equal to 0,
impl<F, T> Into<TransformParts> for Transform2<F, T>
NOTE: the returned parts.skew.y will always be equal to 0,
Source§fn into(self) -> TransformParts
fn into(self) -> TransformParts
Source§impl<F, T> Mul<Point2<F>> for Transform2<F, T>
impl<F, T> Mul<Point2<F>> for Transform2<F, T>
Source§impl<W1, W2, W3> Mul<Transform2<W1, W2>> for Transform2<W2, W3>
impl<W1, W2, W3> Mul<Transform2<W1, W2>> for Transform2<W2, W3>
Source§type Output = Transform2<W1, W3>
type Output = Transform2<W1, W3>
* operator.Source§fn mul(
self,
rhs: Transform2<W1, W2>,
) -> <Transform2<W2, W3> as Mul<Transform2<W1, W2>>>::Output
fn mul( self, rhs: Transform2<W1, W2>, ) -> <Transform2<W2, W3> as Mul<Transform2<W1, W2>>>::Output
* operation. Read moreSource§impl<F, T> Mul<Vector2<F>> for Transform2<F, T>
impl<F, T> Mul<Vector2<F>> for Transform2<F, T>
Source§impl<F, T> PartialEq for Transform2<F, T>
impl<F, T> PartialEq for Transform2<F, T>
Source§impl ToPaxValue for Transform2
impl ToPaxValue for Transform2
Source§fn to_pax_value(self) -> PaxValue
fn to_pax_value(self) -> PaxValue
PaxValue.Source§fn nested_properties(&self) -> Vec<UntypedProperty>
fn nested_properties(&self) -> Vec<UntypedProperty>
Source§fn to_pax_value_in_graph(self) -> PaxValuewhere
Self: Sized,
fn to_pax_value_in_graph(self) -> PaxValuewhere
Self: Sized,
Self::to_pax_value reads published value snapshots.Auto Trait Implementations§
impl<WFrom, WTo> Freeze for Transform2<WFrom, WTo>
impl<WFrom, WTo> RefUnwindSafe for Transform2<WFrom, WTo>
impl<WFrom, WTo> Send for Transform2<WFrom, WTo>
impl<WFrom, WTo> Sync for Transform2<WFrom, WTo>
impl<WFrom, WTo> Unpin for Transform2<WFrom, WTo>
impl<WFrom, WTo> UnsafeUnpin for Transform2<WFrom, WTo>
impl<WFrom, WTo> UnwindSafe for Transform2<WFrom, WTo>
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> PropertyValue for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
Source§fn round_into(self) -> U
fn round_into(self) -> U
Source§impl<T> ToFromPaxAny for Twhere
T: ImplToFromPaxAny,
impl<T> ToFromPaxAny for Twhere
T: ImplToFromPaxAny,
Source§fn to_pax_any(self) -> PaxAny
fn to_pax_any(self) -> PaxAny
PaxAny.Source§fn from_pax_any(pax_any: PaxAny) -> Result<T, String>
fn from_pax_any(pax_any: PaxAny) -> Result<T, String>
PaxAny.