pub struct ProperRotation { /* private fields */ }Expand description
As per a Rotation, but one that specifically needs no reflections.
Trait Implementations§
Source§impl Clone for ProperRotation
impl Clone for ProperRotation
Source§fn clone(&self) -> ProperRotation
fn clone(&self) -> ProperRotation
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProperRotation
impl Debug for ProperRotation
Source§impl Div<ImproperRotation> for ProperRotation
Implements division between rotations, such that
(rot_a * rot_b) / rot_b == rot_a.
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
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
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.
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
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
fn div(self, other: ProperRotation) -> Self::Output
Implemented by dividing the two corresponding points with one another.
Source§impl Div for ProperRotation
Implements division between rotations, such that
(rot_a * rot_b) / rot_b == rot_a.
impl Div 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 = ProperRotation
type Output = ProperRotation
The output type tells us all we know about the propriety of the result.
Source§fn div(self, other: ProperRotation) -> Self::Output
fn div(self, other: ProperRotation) -> Self::Output
Implemented by dividing the two corresponding points with one another.
Source§impl From<ProperRotation> for ReferenceGroupPoint
impl From<ProperRotation> for ReferenceGroupPoint
Source§fn from(x: ProperRotation) -> Self
fn from(x: ProperRotation) -> Self
Source§impl From<ProperRotation> for ReferenceGroupPoint
impl From<ProperRotation> for ReferenceGroupPoint
Source§fn from(x: ProperRotation) -> Self
fn from(x: ProperRotation) -> Self
Source§impl From<ProperRotation> for Rotation
Discards any notion of propriety, producing a general Rotation.
impl From<ProperRotation> for Rotation
Discards any notion of propriety, producing a general Rotation.
Source§fn from(x: ProperRotation) -> Self
fn from(x: ProperRotation) -> Self
Source§impl From<ReferenceGroupPoint> for ProperRotation
impl From<ReferenceGroupPoint> for ProperRotation
Source§fn from(corresponding_point: ReferenceGroupPoint) -> Self
fn from(corresponding_point: ReferenceGroupPoint) -> Self
Source§impl From<ReferenceGroupPoint> for ProperRotation
impl From<ReferenceGroupPoint> for ProperRotation
Source§fn from(corresponding_point: ReferenceGroupPoint) -> Self
fn from(corresponding_point: ReferenceGroupPoint) -> Self
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.
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
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
fn mul(self, other: ImproperRotation) -> Self::Output
Implemented by multiplying the second rotation’s corresponding point with the first one.
Source§impl Mul<OppositeGroupPoint> for ProperRotation
impl Mul<OppositeGroupPoint> for ProperRotation
Source§type Output = OppositeGroupPoint
type Output = OppositeGroupPoint
Output belongs to the same Geometric Group.
Source§fn mul(self, x: OppositeGroupPoint) -> Self::Output
fn mul(self, x: OppositeGroupPoint) -> Self::Output
The ProperRotation is not examined bit-by-bit. Instead,
a look-up on a 2-D LUT produces the result directly.
Source§impl Mul<OppositeGroupPoint> for ProperRotation
Rotates a copy the argument in a way that maintains its Geometric
Group.
impl Mul<OppositeGroupPoint> for ProperRotation
Rotates a copy the argument in a way that maintains its Geometric Group.
Source§type Output = OppositeGroupPoint
type Output = OppositeGroupPoint
Same Geometric Group, so same data-type.
Source§impl Mul<ProperRotation> for CubeSurfacePoint
Rotates a copy of self in a way that maintains its Geometric Group.
impl Mul<ProperRotation> for CubeSurfacePoint
Rotates a copy of self in a way that maintains its Geometric Group.
Source§type Output = CubeSurfacePoint
type Output = CubeSurfacePoint
The Geometric Group doesn’t change. Even if it did, this data-type is group-agnostic.
Source§fn mul(self, rotation: ProperRotation) -> Self
fn mul(self, rotation: ProperRotation) -> Self
* operation. Read moreSource§impl Mul<ProperRotation> for CubeSurfacePoint<false>
Rotates a copy of self according to a ProperRotation.
Maintains Geometric Group.
impl Mul<ProperRotation> for CubeSurfacePoint<false>
Rotates a copy of self according to a ProperRotation.
Maintains Geometric Group.
Source§type Output = CubeSurfacePoint<false>
type Output = CubeSurfacePoint<false>
The Geometric Group doesn’t change. Even if it did, this data-type is group-agnostic.
Source§fn mul(self, x: ProperRotation) -> Self
fn mul(self, x: ProperRotation) -> Self
The rotation happens Elementary-Reflection-by-Elementary-Reflection as usual, but each Elementary Reflection is performed with a LUT.
Source§impl Mul<ProperRotation> for CubeSurfacePoint<true>
Rotates a copy of self according to a ProperRotation.
Maintains Geometric Group.
impl Mul<ProperRotation> for CubeSurfacePoint<true>
Rotates a copy of self according to a ProperRotation.
Maintains Geometric Group.
Source§type Output = CubeSurfacePoint<true>
type Output = CubeSurfacePoint<true>
The Geometric Group doesn’t change. Even if it did, this data-type is group-agnostic.
Source§fn mul(self, x: ProperRotation) -> Self
fn mul(self, x: ProperRotation) -> Self
The ProperRotation 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<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.
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
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
fn mul(self, other: ProperRotation) -> Self::Output
Implemented by multiplying the second rotation’s corresponding point with the first one.
Source§impl Mul<ProperRotation> for OppositeGroupPoint
Rotates a copy of self according to a ProperRotation.
Maintains Geometric Group.
impl Mul<ProperRotation> for OppositeGroupPoint
Rotates a copy of self according to a ProperRotation.
Maintains Geometric Group.
Source§type Output = OppositeGroupPoint
type Output = OppositeGroupPoint
Output belongs to the same Geometric Group.
Source§fn mul(self, x: ProperRotation) -> Self::Output
fn mul(self, x: ProperRotation) -> Self::Output
The ProperRotation is not examined bit-by-bit. Instead, a
look-up on a 2-D LUT produces the result directly.
Source§impl Mul<ProperRotation> for OppositeGroupPoint
Rotates a copy of self in a way that maintains its Geometric Group.
impl Mul<ProperRotation> for OppositeGroupPoint
Rotates a copy of self in a way that maintains its Geometric Group.
Source§type Output = OppositeGroupPoint
type Output = OppositeGroupPoint
Same Geometric Group, so same data-type.
Source§fn mul(self, other: ProperRotation) -> OppositeGroupPoint
fn mul(self, other: ProperRotation) -> OppositeGroupPoint
Multiplies one OppositeGroupPoint with one ProperRotation, producing one OppositeGroupPoint as a result.
Useful for static confirmation of Geometric Groups.
Source§impl Mul<ProperRotation> for ReferenceGroupPoint
Rotates a copy of self according to a ProperRotation.
Maintains Geometric Group.
impl Mul<ProperRotation> for ReferenceGroupPoint
Rotates a copy of self according to a ProperRotation.
Maintains Geometric Group.
Source§type Output = ReferenceGroupPoint
type Output = ReferenceGroupPoint
Output belongs to the same Geometric Group.
Source§fn mul(self, x: ProperRotation) -> Self::Output
fn mul(self, x: ProperRotation) -> Self::Output
The ProperRotation is not examined bit-by-bit. Instead, a
look-up on a 2-D LUT produces the result directly.
Source§impl Mul<ProperRotation> for ReferenceGroupPoint
Rotates a copy of self in a way that maintains its Geometric Group.
impl Mul<ProperRotation> for ReferenceGroupPoint
Rotates a copy of self in a way that maintains its Geometric Group.
Source§type Output = ReferenceGroupPoint
type Output = ReferenceGroupPoint
Same Geometric Group, so same data-type.
Source§fn mul(self, other: ProperRotation) -> ReferenceGroupPoint
fn mul(self, other: ProperRotation) -> ReferenceGroupPoint
Multiplies one ReferenceGroupPoint with one ProperRotation, producing one ReferenceGroupPoint as a result.
Useful for static confirmation of Geometric Groups.
Source§impl Mul<ReferenceGroupPoint> for ProperRotation
impl Mul<ReferenceGroupPoint> for ProperRotation
Source§type Output = ReferenceGroupPoint
type Output = ReferenceGroupPoint
Output belongs to the same Geometric Group.
Source§fn mul(self, x: ReferenceGroupPoint) -> Self::Output
fn mul(self, x: ReferenceGroupPoint) -> Self::Output
The ProperRotation is not examined bit-by-bit. Instead,
a look-up on a 2-D LUT produces the result directly.
Source§impl Mul<ReferenceGroupPoint> for ProperRotation
Rotates a copy the argument in a way that maintains its Geometric
Group.
impl Mul<ReferenceGroupPoint> for ProperRotation
Rotates a copy the argument in a way that maintains its Geometric Group.
Source§type Output = ReferenceGroupPoint
type Output = ReferenceGroupPoint
Same Geometric Group, so same data-type.
Source§impl Mul 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.
impl Mul 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 = ProperRotation
type Output = ProperRotation
The output type tells us all we know about the propriety of the result.
Source§fn mul(self, other: ProperRotation) -> Self::Output
fn mul(self, other: ProperRotation) -> Self::Output
Implemented by multiplying the second rotation’s corresponding point with the first one.
Source§impl MulAssign<ProperRotation> for CubeSurfacePoint
Rotates self in a way that maintains its Geometric Group.
impl MulAssign<ProperRotation> for CubeSurfacePoint
Rotates self in a way that maintains its Geometric Group.
Source§fn mul_assign(&mut self, x: ProperRotation)
fn mul_assign(&mut self, x: ProperRotation)
Neither the Geometric Group nor the data-type change, so the result can be directly assigned.
Source§impl MulAssign<ProperRotation> for CubeSurfacePoint<false>
Rotates self according to a ProperRotation. Maintains Geometric
Group.
impl MulAssign<ProperRotation> for CubeSurfacePoint<false>
Rotates self according to a ProperRotation. Maintains Geometric
Group.
Source§fn mul_assign(&mut self, x: ProperRotation)
fn mul_assign(&mut self, x: ProperRotation)
Neither the Geometric Group nor the data-type change, so the result can be directly assigned.
The ProperRotation 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<ProperRotation> for CubeSurfacePoint<true>
Rotates self according to a ProperRotation. Maintains Geometric
Group.
impl MulAssign<ProperRotation> for CubeSurfacePoint<true>
Rotates self according to a ProperRotation. Maintains Geometric
Group.
Source§fn mul_assign(&mut self, x: ProperRotation)
fn mul_assign(&mut self, x: ProperRotation)
Neither the Geometric Group nor the data-type change, so the result can be directly assigned.
The ProperRotation 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<ProperRotation> for OppositeGroupPoint
Rotates self according to a ProperRotation. Maintains
Geometric Group.
impl MulAssign<ProperRotation> for OppositeGroupPoint
Rotates self according to a ProperRotation. Maintains
Geometric Group.
Source§fn mul_assign(&mut self, x: ProperRotation)
fn mul_assign(&mut self, x: ProperRotation)
The data-type doesn’t change, so the result can be directly assigned.
The ProperRotation is not examined bit-by-bit. Instead, a
look-up on a 2-D LUT produces the result directly.
Source§impl MulAssign<ProperRotation> for OppositeGroupPoint
Rotates self in a way that maintains its Geometric Group.
impl MulAssign<ProperRotation> for OppositeGroupPoint
Rotates self in a way that maintains its Geometric Group.
Source§fn mul_assign(&mut self, x: ProperRotation)
fn mul_assign(&mut self, x: ProperRotation)
The data-type doesn’t change, so the result can be directly assigned.
Source§impl MulAssign<ProperRotation> for ReferenceGroupPoint
Rotates self according to a ProperRotation. Maintains
Geometric Group.
impl MulAssign<ProperRotation> for ReferenceGroupPoint
Rotates self according to a ProperRotation. Maintains
Geometric Group.
Source§fn mul_assign(&mut self, x: ProperRotation)
fn mul_assign(&mut self, x: ProperRotation)
The data-type doesn’t change, so the result can be directly assigned.
The ProperRotation is not examined bit-by-bit. Instead, a
look-up on a 2-D LUT produces the result directly.
Source§impl MulAssign<ProperRotation> for ReferenceGroupPoint
Rotates self in a way that maintains its Geometric Group.
impl MulAssign<ProperRotation> for ReferenceGroupPoint
Rotates self in a way that maintains its Geometric Group.
Source§fn mul_assign(&mut self, x: ProperRotation)
fn mul_assign(&mut self, x: ProperRotation)
The data-type doesn’t change, so the result can be directly assigned.
Source§impl Ord for ProperRotation
impl Ord for ProperRotation
Source§fn cmp(&self, other: &ProperRotation) -> Ordering
fn cmp(&self, other: &ProperRotation) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for ProperRotation
impl PartialEq for ProperRotation
Source§impl PartialOrd for ProperRotation
impl PartialOrd for ProperRotation
Source§impl TryFrom<Rotation> for ProperRotation
Discriminates a Rotation based on propriety.
impl TryFrom<Rotation> for ProperRotation
Discriminates a Rotation based on propriety.