Struct Translation2D
pub struct Translation2D<T, Src, Dst> {
pub x: T,
pub y: T,
/* private fields */
}geometry only.Expand description
A 2d transformation from a space to another that can only express translations.
The main benefit of this type over a Vector2D is the ability to cast
between source and destination spaces.
Example:
use euclid::{Translation2D, Point2D, point2};
struct ParentSpace;
struct ChildSpace;
type ScrollOffset = Translation2D<i32, ParentSpace, ChildSpace>;
type ParentPoint = Point2D<i32, ParentSpace>;
type ChildPoint = Point2D<i32, ChildSpace>;
let scrolling = ScrollOffset::new(0, 100);
let p1: ParentPoint = point2(0, 0);
let p2: ChildPoint = scrolling.transform_point(p1);Fields§
§x: T§y: TImplementations§
§impl<T, Src, Dst> Translation2D<T, Src, Dst>
impl<T, Src, Dst> Translation2D<T, Src, Dst>
pub const fn new(x: T, y: T) -> Translation2D<T, Src, Dst>
canvas only.pub fn splat(v: T) -> Translation2D<T, Src, Dst>where
T: Clone,
canvas only.pub fn identity() -> Translation2D<T, Src, Dst>where
T: Zero,
Available on crate feature canvas only.
pub fn identity() -> Translation2D<T, Src, Dst>where
T: Zero,
canvas only.Creates no-op translation (both x and y is zero()).
pub fn is_identity(&self) -> bool
Available on crate feature canvas only.
pub fn is_identity(&self) -> bool
canvas only.Check if translation does nothing (both x and y is zero()).
use euclid::default::Translation2D;
assert_eq!(Translation2D::<f32>::identity().is_identity(), true);
assert_eq!(Translation2D::new(0, 0).is_identity(), true);
assert_eq!(Translation2D::new(1, 0).is_identity(), false);
assert_eq!(Translation2D::new(0, 1).is_identity(), false);pub fn transform_size(&self, s: Size2D<T, Src>) -> Size2D<T, Dst>
Available on crate feature canvas only.
pub fn transform_size(&self, s: Size2D<T, Src>) -> Size2D<T, Dst>
canvas only.No-op, just cast the unit.
§impl<T, Src, Dst> Translation2D<T, Src, Dst>where
T: Copy,
impl<T, Src, Dst> Translation2D<T, Src, Dst>where
T: Copy,
pub fn to_vector(&self) -> Vector2D<T, Src>
Available on crate feature canvas only.
pub fn to_vector(&self) -> Vector2D<T, Src>
canvas only.Cast into a 2D vector.
pub fn to_array(&self) -> [T; 2]
Available on crate feature canvas only.
pub fn to_array(&self) -> [T; 2]
canvas only.Cast into an array with x and y.
pub fn to_tuple(&self) -> (T, T)
Available on crate feature canvas only.
pub fn to_tuple(&self) -> (T, T)
canvas only.Cast into a tuple with x and y.
pub fn to_untyped(&self) -> Translation2D<T, UnknownUnit, UnknownUnit>
Available on crate feature canvas only.
pub fn to_untyped(&self) -> Translation2D<T, UnknownUnit, UnknownUnit>
canvas only.Drop the units, preserving only the numeric value.
pub fn from_untyped(
t: &Translation2D<T, UnknownUnit, UnknownUnit>,
) -> Translation2D<T, Src, Dst>
Available on crate feature canvas only.
pub fn from_untyped( t: &Translation2D<T, UnknownUnit, UnknownUnit>, ) -> Translation2D<T, Src, Dst>
canvas only.Tag a unitless value with units.
pub fn to_transform(&self) -> Transform2D<T, Src, Dst>
Available on crate feature canvas only.
pub fn to_transform(&self) -> Transform2D<T, Src, Dst>
canvas only.Returns the matrix representation of this translation.
pub fn transform_point(
&self,
p: Point2D<T, Src>,
) -> Point2D<<T as Add>::Output, Dst>where
T: Add,
Available on crate feature canvas only.
pub fn transform_point(
&self,
p: Point2D<T, Src>,
) -> Point2D<<T as Add>::Output, Dst>where
T: Add,
canvas only.Translate a point and cast its unit.
pub fn transform_rect(&self, r: &Rect<T, Src>) -> Rect<<T as Add>::Output, Dst>where
T: Add<Output = T>,
Available on crate feature canvas only.
pub fn transform_rect(&self, r: &Rect<T, Src>) -> Rect<<T as Add>::Output, Dst>where
T: Add<Output = T>,
canvas only.Translate a rectangle and cast its unit.
pub fn transform_box(&self, r: &Box2D<T, Src>) -> Box2D<<T as Add>::Output, Dst>where
T: Add,
Available on crate feature canvas only.
pub fn transform_box(&self, r: &Box2D<T, Src>) -> Box2D<<T as Add>::Output, Dst>where
T: Add,
canvas only.Translate a 2D box and cast its unit.
pub fn inverse(&self) -> Translation2D<<T as Neg>::Output, Dst, Src>where
T: Neg,
Available on crate feature canvas only.
pub fn inverse(&self) -> Translation2D<<T as Neg>::Output, Dst, Src>where
T: Neg,
canvas only.Return the inverse transformation.
§impl<T, Src, Dst> Translation2D<T, Src, Dst>
impl<T, Src, Dst> Translation2D<T, Src, Dst>
pub fn cast<NewT>(self) -> Translation2D<NewT, Src, Dst>where
NewT: NumCast,
Available on crate feature canvas only.
pub fn cast<NewT>(self) -> Translation2D<NewT, Src, Dst>where
NewT: NumCast,
canvas only.Cast from one numeric representation to another, preserving the units.
When casting from floating vector to integer coordinates, the decimals are truncated
as one would expect from a simple cast, but this behavior does not always make sense
geometrically. Consider using round(), ceil() or floor() before casting.
pub fn try_cast<NewT>(self) -> Option<Translation2D<NewT, Src, Dst>>where
NewT: NumCast,
Available on crate feature canvas only.
pub fn try_cast<NewT>(self) -> Option<Translation2D<NewT, Src, Dst>>where
NewT: NumCast,
canvas only.Fallible cast from one numeric representation to another, preserving the units.
When casting from floating vector to integer coordinates, the decimals are truncated
as one would expect from a simple cast, but this behavior does not always make sense
geometrically. Consider using round(), ceil() or floor() before casting.
pub fn to_f32(self) -> Translation2D<f32, Src, Dst>
Available on crate feature canvas only.
pub fn to_f32(self) -> Translation2D<f32, Src, Dst>
canvas only.Cast into an f32 vector.
pub fn to_f64(self) -> Translation2D<f64, Src, Dst>
Available on crate feature canvas only.
pub fn to_f64(self) -> Translation2D<f64, Src, Dst>
canvas only.Cast into an f64 vector.
pub fn to_usize(self) -> Translation2D<usize, Src, Dst>
Available on crate feature canvas only.
pub fn to_usize(self) -> Translation2D<usize, Src, Dst>
canvas only.Cast into an usize vector, truncating decimals if any.
When casting from floating vector vectors, it is worth considering whether
to round(), ceil() or floor() before the cast in order to obtain
the desired conversion behavior.
pub fn to_u32(self) -> Translation2D<u32, Src, Dst>
Available on crate feature canvas only.
pub fn to_u32(self) -> Translation2D<u32, Src, Dst>
canvas only.Cast into an u32 vector, truncating decimals if any.
When casting from floating vector vectors, it is worth considering whether
to round(), ceil() or floor() before the cast in order to obtain
the desired conversion behavior.
pub fn to_i32(self) -> Translation2D<i32, Src, Dst>
Available on crate feature canvas only.
pub fn to_i32(self) -> Translation2D<i32, Src, Dst>
canvas only.Cast into an i32 vector, truncating decimals if any.
When casting from floating vector vectors, it is worth considering whether
to round(), ceil() or floor() before the cast in order to obtain
the desired conversion behavior.
pub fn to_i64(self) -> Translation2D<i64, Src, Dst>
Available on crate feature canvas only.
pub fn to_i64(self) -> Translation2D<i64, Src, Dst>
canvas only.Cast into an i64 vector, truncating decimals if any.
When casting from floating vector vectors, it is worth considering whether
to round(), ceil() or floor() before the cast in order to obtain
the desired conversion behavior.
Trait Implementations§
§impl<T, Src, Dst1, Dst2> Add<Translation2D<T, Dst1, Dst2>> for Translation2D<T, Src, Dst1>where
T: Add,
impl<T, Src, Dst1, Dst2> Add<Translation2D<T, Dst1, Dst2>> for Translation2D<T, Src, Dst1>where
T: Add,
§type Output = Translation2D<<T as Add>::Output, Src, Dst2>
type Output = Translation2D<<T as Add>::Output, Src, Dst2>
+ operator.§fn add(
self,
other: Translation2D<T, Dst1, Dst2>,
) -> <Translation2D<T, Src, Dst1> as Add<Translation2D<T, Dst1, Dst2>>>::Output
fn add( self, other: Translation2D<T, Dst1, Dst2>, ) -> <Translation2D<T, Src, Dst1> as Add<Translation2D<T, Dst1, Dst2>>>::Output
+ operation. Read more§impl<T, Src, Dst> AddAssign<Translation2D<T, Dst, Dst>> for Translation2D<T, Src, Dst>where
T: AddAssign,
impl<T, Src, Dst> AddAssign<Translation2D<T, Dst, Dst>> for Translation2D<T, Src, Dst>where
T: AddAssign,
§fn add_assign(&mut self, other: Translation2D<T, Dst, Dst>)
fn add_assign(&mut self, other: Translation2D<T, Dst, Dst>)
+= operation. Read more§impl<T, Src, Dst> Clone for Translation2D<T, Src, Dst>where
T: Clone,
impl<T, Src, Dst> Clone for Translation2D<T, Src, Dst>where
T: Clone,
§fn clone(&self) -> Translation2D<T, Src, Dst>
fn clone(&self) -> Translation2D<T, Src, Dst>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl<T, Src, Dst> Debug for Translation2D<T, Src, Dst>where
T: Debug,
impl<T, Src, Dst> Debug for Translation2D<T, Src, Dst>where
T: Debug,
§impl<T, Src, Dst> Default for Translation2D<T, Src, Dst>where
T: Zero,
impl<T, Src, Dst> Default for Translation2D<T, Src, Dst>where
T: Zero,
§fn default() -> Translation2D<T, Src, Dst>
fn default() -> Translation2D<T, Src, Dst>
§impl<T, Src, Dst> From<Translation2D<T, Src, Dst>> for ScaleOffset2D<T, Src, Dst>
impl<T, Src, Dst> From<Translation2D<T, Src, Dst>> for ScaleOffset2D<T, Src, Dst>
§fn from(t: Translation2D<T, Src, Dst>) -> ScaleOffset2D<T, Src, Dst>
fn from(t: Translation2D<T, Src, Dst>) -> ScaleOffset2D<T, Src, Dst>
§impl<T, Src, Dst> From<Translation2D<T, Src, Dst>> for Transform2D<T, Src, Dst>
impl<T, Src, Dst> From<Translation2D<T, Src, Dst>> for Transform2D<T, Src, Dst>
§fn from(t: Translation2D<T, Src, Dst>) -> Transform2D<T, Src, Dst>
fn from(t: Translation2D<T, Src, Dst>) -> Transform2D<T, Src, Dst>
§impl<T, Src, Dst> From<Translation2D<T, Src, Dst>> for Vector2D<T, Src>
impl<T, Src, Dst> From<Translation2D<T, Src, Dst>> for Vector2D<T, Src>
§fn from(t: Translation2D<T, Src, Dst>) -> Vector2D<T, Src>
fn from(t: Translation2D<T, Src, Dst>) -> Vector2D<T, Src>
§impl<T, Src, Dst> From<Vector2D<T, Src>> for Translation2D<T, Src, Dst>
impl<T, Src, Dst> From<Vector2D<T, Src>> for Translation2D<T, Src, Dst>
§fn from(v: Vector2D<T, Src>) -> Translation2D<T, Src, Dst>
fn from(v: Vector2D<T, Src>) -> Translation2D<T, Src, Dst>
§impl<T, Src, Dst> Hash for Translation2D<T, Src, Dst>where
T: Hash,
impl<T, Src, Dst> Hash for Translation2D<T, Src, Dst>where
T: Hash,
§impl<T, Src, Dst> PartialEq for Translation2D<T, Src, Dst>where
T: PartialEq,
impl<T, Src, Dst> PartialEq for Translation2D<T, Src, Dst>where
T: PartialEq,
§impl<T, Src, Dst1, Dst2> Sub<Translation2D<T, Dst1, Dst2>> for Translation2D<T, Src, Dst2>where
T: Sub,
impl<T, Src, Dst1, Dst2> Sub<Translation2D<T, Dst1, Dst2>> for Translation2D<T, Src, Dst2>where
T: Sub,
§type Output = Translation2D<<T as Sub>::Output, Src, Dst1>
type Output = Translation2D<<T as Sub>::Output, Src, Dst1>
- operator.§fn sub(
self,
other: Translation2D<T, Dst1, Dst2>,
) -> <Translation2D<T, Src, Dst2> as Sub<Translation2D<T, Dst1, Dst2>>>::Output
fn sub( self, other: Translation2D<T, Dst1, Dst2>, ) -> <Translation2D<T, Src, Dst2> as Sub<Translation2D<T, Dst1, Dst2>>>::Output
- operation. Read more§impl<T, Src, Dst> SubAssign<Translation2D<T, Dst, Dst>> for Translation2D<T, Src, Dst>where
T: SubAssign,
impl<T, Src, Dst> SubAssign<Translation2D<T, Dst, Dst>> for Translation2D<T, Src, Dst>where
T: SubAssign,
§fn sub_assign(&mut self, other: Translation2D<T, Dst, Dst>)
fn sub_assign(&mut self, other: Translation2D<T, Dst, Dst>)
-= operation. Read more§impl<S> Transformation<S> for Translation2D<S, UnknownUnit, UnknownUnit>where
S: Scalar,
impl<S> Transformation<S> for Translation2D<S, UnknownUnit, UnknownUnit>where
S: Scalar,
fn transform_point(&self, p: Point2D<S, UnknownUnit>) -> Point2D<S, UnknownUnit>
fn transform_vector( &self, v: Vector2D<S, UnknownUnit>, ) -> Vector2D<S, UnknownUnit>
impl<T, Src, Dst> Copy for Translation2D<T, Src, Dst>where
T: Copy,
impl<T, Src, Dst> Eq for Translation2D<T, Src, Dst>where
T: Eq,
Auto Trait Implementations§
impl<T, Src, Dst> Freeze for Translation2D<T, Src, Dst>where
T: Freeze,
impl<T, Src, Dst> RefUnwindSafe for Translation2D<T, Src, Dst>
impl<T, Src, Dst> Send for Translation2D<T, Src, Dst>
impl<T, Src, Dst> Sync for Translation2D<T, Src, Dst>
impl<T, Src, Dst> Unpin for Translation2D<T, Src, Dst>
impl<T, Src, Dst> UnsafeUnpin for Translation2D<T, Src, Dst>where
T: UnsafeUnpin,
impl<T, Src, Dst> UnwindSafe for Translation2D<T, Src, Dst>
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
§impl<T> AnyEq for T
impl<T> AnyEq for T
§impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.§impl<State, Message> IntoBoot<State, Message> for State
impl<State, Message> IntoBoot<State, Message> for State
§fn into_boot(self) -> (State, Task<Message>)
fn into_boot(self) -> (State, Task<Message>)
Application.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more