geometry::orientation

Struct Orientation

Source
pub struct Orientation { /* private fields */ }
Expand description

An orientation of a geometric object.

Captures reflection and rotation, but not position or scaling.

Implementations§

Source§

impl Orientation

Source

pub fn from_reflect_and_angle(reflect_vert: bool, angle: Rotation) -> Self

Creates a new orientation with the given reflection and angle settings.

Source

pub fn identity() -> Self

Returns the identity orientation with reflect_vert = false and angle = 0..

Source

pub fn apply(self, o: impl Into<Orientation>) -> Self

Applies the reflection and rotation specified in Orientation o to this orientation.

Source

pub fn reflected_vert(self) -> Self

Reflects the orientation vertically.

Source

pub fn reflected_horiz(self) -> Self

Reflects the orientation horizontally.

Source

pub fn r90(self) -> Self

Rotates the orientation 90 degrees counter-clockwise.

Source

pub fn r180(self) -> Self

Rotates the orientation 180 degrees.

Source

pub fn r270(self) -> Self

Rotates the orientation 180 degrees counter-clockwise.

Source

pub fn r90cw(self) -> Self

Rotates the orientation 90 degrees clockwise.

Source

pub fn r180cw(self) -> Self

Rotates the orientation 180 degrees clockwise.

Source

pub fn r270cw(self) -> Self

Rotates the orientation 270 degrees clockwise.

Source

pub fn flip_yx(self) -> Self

Flips the orientation around the line y = x.

Source

pub fn flip_minus_yx(self) -> Self

Flips the orientation around the line y = -x.

Source

pub fn reflect_vert(&self) -> bool

Returns whether the orientation is reflected vertically.

Source

pub fn angle(&self) -> Rotation

Returns the angle associated with this orientation.

Source

pub fn from_transformation(value: Transformation) -> Self

Returns the orientation represented by the given transformation.

Captures the rotation and reflection encoded by the Transformation, discarding the transformation’s translation.

§Example
let tf = Transformation::identity();
assert_eq!(Orientation::from_transformation(tf), NamedOrientation::R0.into());
Source

pub fn all_rectangular() -> [Self; 8]

Returns a slice of all 8 possible rectangular orientations.

Users should not rely upon the order of the orientations returned.

Trait Implementations§

Source§

impl Clone for Orientation

Source§

fn clone(&self) -> Orientation

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Orientation

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Orientation

Source§

fn default() -> Orientation

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Orientation

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<NamedOrientation> for Orientation

Source§

fn from(value: NamedOrientation) -> Self

Converts to this type from the input type.
Source§

impl From<Orientation> for OrientationBytes

Source§

fn from(value: Orientation) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for Orientation

Source§

fn eq(&self, other: &Orientation) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for Orientation

Source§

fn partial_cmp(&self, other: &Orientation) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Serialize for Orientation

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Copy for Orientation

Source§

impl Eq for Orientation

Source§

impl StructuralPartialEq for Orientation

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,