Struct ImproperRotation

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

As per a Rotation, but one that specifically needs at least one reflection.

Trait Implementations§

Source§

impl Clone for ImproperRotation

Source§

fn clone(&self) -> ImproperRotation

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 ImproperRotation

Source§

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

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

impl Div<ImproperRotation> for ProperRotation

Implements division between rotations, such that (rot_a * rot_b) / rot_b == rot_a.

Important note: rot_a / rot_b is not necessarily equal to (1 / rot_b) * rot_a. See also the relevant comment on Mul.

Source§

type Output = ImproperRotation

The output type tells us all we know about the propriety of the result.

Source§

fn div(self, other: ImproperRotation) -> Self::Output

Implemented by dividing the two corresponding points with one another.

Source§

impl Div<ProperRotation> for ImproperRotation

Implements division between rotations, such that (rot_a * rot_b) / rot_b == rot_a.

Important note: rot_a / rot_b is not necessarily equal to (1 / rot_b) * rot_a. See also the relevant comment on Mul.

Source§

type Output = ImproperRotation

The output type tells us all we know about the propriety of the result.

Source§

fn div(self, other: ProperRotation) -> Self::Output

Implemented by dividing the two corresponding points with one another.

Source§

impl Div for ImproperRotation

Implements division between rotations, such that (rot_a * rot_b) / rot_b == rot_a.

Important note: rot_a / rot_b is not necessarily equal to (1 / rot_b) * rot_a. See also the relevant comment on Mul.

Source§

type Output = ProperRotation

The output type tells us all we know about the propriety of the result.

Source§

fn div(self, other: ImproperRotation) -> Self::Output

Implemented by dividing the two corresponding points with one another.

Source§

impl From<ImproperRotation> for OppositeGroupPoint

Source§

fn from(x: ImproperRotation) -> Self

Converts to this type from the input type.
Source§

impl From<ImproperRotation> for OppositeGroupPoint

Source§

fn from(x: ImproperRotation) -> Self

Converts to this type from the input type.
Source§

impl From<ImproperRotation> for Rotation

Discards any notion of propriety, producing a general Rotation.

Source§

fn from(x: ImproperRotation) -> Self

Converts to this type from the input type.
Source§

impl From<OppositeGroupPoint> for ImproperRotation

Source§

fn from(corresponding_point: OppositeGroupPoint) -> Self

Converts to this type from the input type.
Source§

impl From<OppositeGroupPoint> for ImproperRotation

Source§

fn from(corresponding_point: OppositeGroupPoint) -> Self

Converts to this type from the input type.
Source§

impl Mul<ImproperRotation> for CubeSurfacePoint

Rotates a copy of self in a way that switches its Geometric Group.

Source§

type Output = CubeSurfacePoint

Although the Geometric Group does change, CubeSurfacePoint does not change its data-type depending on Geometric Group. Thus the data-type remains the same.

Source§

fn mul(self, rotation: ImproperRotation) -> Self

Performs the * operation. Read more
Source§

impl Mul<ImproperRotation> for CubeSurfacePoint<false>

Rotates a copy of self according to an ImproperRotation. Switches Geometric Group.

Source§

type Output = CubeSurfacePoint<false>

Although the Geometric Group does change, CubeSurfacePoint does not change its data-type depending on Geometric Group. Thus the data-type remains the same.

Source§

fn mul(self, x: ImproperRotation) -> Self

The rotation happens Elementary-Reflection-by-Elementary-Reflection as usual, but each Elementary Reflection is performed with a LUT.

Source§

impl Mul<ImproperRotation> for CubeSurfacePoint<true>

Rotates a copy of self according to an ImproperRotation. Switches Geometric Group.

Source§

type Output = CubeSurfacePoint<true>

Although the Geometric Group does change, CubeSurfacePoint does not change its data-type depending on Geometric Group. Thus the data-type remains the same.

Source§

fn mul(self, x: ImproperRotation) -> Self

The ImproperRotation is not examined bit-by-bit. Instead, a look-up on a 2-D LUT produces the result directly.

While this could have been implemented using smaller LUTs than the ones used for Mul<Rotation>, it was deemed a useless middle solution.

Source§

impl Mul<ImproperRotation> for OppositeGroupPoint

Rotates a copy of self according to an ImproperRotation. Switches Geometric Group.

Source§

type Output = ReferenceGroupPoint

Output belongs to the other Geometric Group.

Source§

fn mul(self, x: ImproperRotation) -> Self::Output

The ImproperRotation is not examined bit-by-bit. Instead, a look-up on a 2-D LUT produces the result directly.

Source§

impl Mul<ImproperRotation> for OppositeGroupPoint

Rotates a copy of self in a way that switches its Geometric Group.

Source§

type Output = ReferenceGroupPoint

Output belongs to the other Geometric Group.

Source§

fn mul(self, other: ImproperRotation) -> ReferenceGroupPoint

Multiplies one OppositeGroupPoint with one ImproperRotation, producing one ReferenceGroupPoint as a result. Useful for static confirmation of Geometric Groups.

Source§

impl Mul<ImproperRotation> for ProperRotation

Implements multiplication between rotations, such that rot_a * rot_b * point_x can be computed as either rot_a * (rot_b * point_x) or (rot_a * rot_b) * point_x, with no change to the result computed.

Important note: Rotations are essentially highly simplified matrices. This means that, in the general case, commutativity does not hold, and therefore rot_a * rot_b and rot_b * rot_a are not necessarily equal.

Source§

type Output = ImproperRotation

The output type tells us all we know about the propriety of the result.

Source§

fn mul(self, other: ImproperRotation) -> Self::Output

Implemented by multiplying the second rotation’s corresponding point with the first one.

Source§

impl Mul<ImproperRotation> for ReferenceGroupPoint

Rotates a copy of self according to an ImproperRotation. Switches Geometric Group.

Source§

type Output = OppositeGroupPoint

Output belongs to the other Geometric Group.

Source§

fn mul(self, x: ImproperRotation) -> Self::Output

The ImproperRotation is not examined bit-by-bit. Instead, a look-up on a 2-D LUT produces the result directly.

Source§

impl Mul<ImproperRotation> for ReferenceGroupPoint

Rotates a copy of self in a way that switches its Geometric Group.

Source§

type Output = OppositeGroupPoint

Output belongs to the other Geometric Group.

Source§

fn mul(self, other: ImproperRotation) -> OppositeGroupPoint

Multiplies one ReferenceGroupPoint with one ImproperRotation, producing one OppositeGroupPoint as a result. Useful for static confirmation of Geometric Groups.

Source§

impl Mul<OppositeGroupPoint> for ImproperRotation

Source§

type Output = ReferenceGroupPoint

Output belongs to the other Geometric Group.

Source§

fn mul(self, x: OppositeGroupPoint) -> Self::Output

The ImproperRotation is not examined bit-by-bit. Instead, a look-up on a 2-D LUT produces the result directly.

Source§

impl Mul<OppositeGroupPoint> for ImproperRotation

Rotates a copy the argument in a way that switches its Geometric Group.

Source§

type Output = ReferenceGroupPoint

Output belongs to the other Geometric Group.

Source§

fn mul(self, x: OppositeGroupPoint) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<ProperRotation> for ImproperRotation

Implements multiplication between rotations, such that rot_a * rot_b * point_x can be computed as either rot_a * (rot_b * point_x) or (rot_a * rot_b) * point_x, with no change to the result computed.

Important note: Rotations are essentially highly simplified matrices. This means that, in the general case, commutativity does not hold, and therefore rot_a * rot_b and rot_b * rot_a are not necessarily equal.

Source§

type Output = ImproperRotation

The output type tells us all we know about the propriety of the result.

Source§

fn mul(self, other: ProperRotation) -> Self::Output

Implemented by multiplying the second rotation’s corresponding point with the first one.

Source§

impl Mul<ReferenceGroupPoint> for ImproperRotation

Source§

type Output = OppositeGroupPoint

Output belongs to the other Geometric Group.

Source§

fn mul(self, x: ReferenceGroupPoint) -> Self::Output

The ImproperRotation is not examined bit-by-bit. Instead, a look-up on a 2-D LUT produces the result directly.

Source§

impl Mul<ReferenceGroupPoint> for ImproperRotation

Rotates a copy the argument in a way that switches its Geometric Group.

Source§

type Output = OppositeGroupPoint

Output belongs to the other Geometric Group.

Source§

fn mul(self, x: ReferenceGroupPoint) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul for ImproperRotation

Implements multiplication between rotations, such that rot_a * rot_b * point_x can be computed as either rot_a * (rot_b * point_x) or (rot_a * rot_b) * point_x, with no change to the result computed.

Important note: Rotations are essentially highly simplified matrices. This means that, in the general case, commutativity does not hold, and therefore rot_a * rot_b and rot_b * rot_a are not necessarily equal.

Source§

type Output = ProperRotation

The output type tells us all we know about the propriety of the result.

Source§

fn mul(self, other: ImproperRotation) -> Self::Output

Implemented by multiplying the second rotation’s corresponding point with the first one.

Source§

impl MulAssign<ImproperRotation> for CubeSurfacePoint

Rotates self in a way that switches its Geometric Group.

Source§

fn mul_assign(&mut self, x: ImproperRotation)

The data-type remains the same, despite the Geometric Group changing. Thus, the result can be directly assigned.

Source§

impl MulAssign<ImproperRotation> for CubeSurfacePoint<false>

Rotates self according to a ImproperRotation. Switches Geometric Group.

Source§

fn mul_assign(&mut self, x: ImproperRotation)

The data-type remains the same, despite the Geometric Group changing. Thus, the result can be directly assigned.

The ImproperRotation is not examined bit-by-bit. Instead, a look-up on a 2-D LUT produces the result directly.

While this could have been implemented using smaller LUTs than the ones used for Mul<Rotation>, it was deemed a useless middle solution.

Source§

impl MulAssign<ImproperRotation> for CubeSurfacePoint<true>

Rotates self according to an ImproperRotation. Switches Geometric Group.

Source§

fn mul_assign(&mut self, x: ImproperRotation)

The data-type remains the same, despite the Geometric Group changing. Thus, the result can be directly assigned.

The ImproperRotation is not examined bit-by-bit. Instead, a look-up on a 2-D LUT produces the result directly.

While this could have been implemented using smaller LUTs than the ones used for Mul<Rotation>, it was deemed a useless middle solution.

Source§

impl Ord for ImproperRotation

Source§

fn cmp(&self, other: &ImproperRotation) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for ImproperRotation

Source§

fn eq(&self, other: &ImproperRotation) -> 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 ImproperRotation

Source§

fn partial_cmp(&self, other: &ImproperRotation) -> 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 TryFrom<Rotation> for ImproperRotation

Discriminates a Rotation based on impropriety.

Source§

type Error = ProperRotation

If a Rotation is not improper, it must by necessity be proper.

Source§

fn try_from(x: Rotation) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl Copy for ImproperRotation

Source§

impl Eq for ImproperRotation

Source§

impl StructuralPartialEq for ImproperRotation

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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, 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.