pub struct RigidTransform {
pub theta: f64,
pub tx: f64,
pub ty: f64,
}Expand description
A rigid 2-D transform: rotation by theta followed by translation (tx, ty).
The transformation of a point (x, y) is:
x' = cos(theta) * x - sin(theta) * y + tx
y' = sin(theta) * x + cos(theta) * y + tyFields§
§theta: f64Rotation angle in radians
tx: f64Translation along the X axis
ty: f64Translation along the Y axis
Implementations§
Source§impl RigidTransform
impl RigidTransform
Sourcepub fn translation(tx: f64, ty: f64) -> Self
pub fn translation(tx: f64, ty: f64) -> Self
Create a pure translation (no rotation).
Sourcepub fn compose(&self, other: &Self) -> Self
pub fn compose(&self, other: &Self) -> Self
Compose two rigid transforms: first self, then other.
Equivalent to applying self followed by other.
Sourcepub fn normalize_angle(&mut self)
pub fn normalize_angle(&mut self)
Normalise the angle to [-PI, PI).
Sourcepub fn angle_degrees(&self) -> f64
pub fn angle_degrees(&self) -> f64
Return the rotation angle in degrees.
Sourcepub fn translation_magnitude(&self) -> f64
pub fn translation_magnitude(&self) -> f64
Compute the translation magnitude.
Trait Implementations§
Source§impl Clone for RigidTransform
impl Clone for RigidTransform
Source§fn clone(&self) -> RigidTransform
fn clone(&self) -> RigidTransform
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 RigidTransform
impl Debug for RigidTransform
Source§impl PartialEq for RigidTransform
impl PartialEq for RigidTransform
Source§fn eq(&self, other: &RigidTransform) -> bool
fn eq(&self, other: &RigidTransform) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for RigidTransform
impl StructuralPartialEq for RigidTransform
Auto Trait Implementations§
impl Freeze for RigidTransform
impl RefUnwindSafe for RigidTransform
impl Send for RigidTransform
impl Sync for RigidTransform
impl Unpin for RigidTransform
impl UnsafeUnpin for RigidTransform
impl UnwindSafe for RigidTransform
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.