#[repr(u8)]pub enum ReferenceGroupPoint {
Show 24 variants
PosOnePosTwoPosThree = 0,
PosOneNegTwoNegThree = 3,
NegOnePosTwoNegThree = 5,
NegOneNegTwoPosThree = 6,
PosThreePosTwoNegOne = 9,
PosThreeNegTwoPosOne = 10,
NegThreePosTwoPosOne = 12,
NegThreeNegTwoNegOne = 15,
PosOnePosThreeNegTwo = 17,
PosOneNegThreePosTwo = 18,
NegOnePosThreePosTwo = 20,
NegOneNegThreeNegTwo = 23,
PosThreePosOnePosTwo = 24,
PosThreeNegOneNegTwo = 27,
NegThreePosOneNegTwo = 29,
NegThreeNegOnePosTwo = 30,
PosTwoPosOneNegThree = 33,
PosTwoNegOnePosThree = 34,
NegTwoPosOnePosThree = 36,
NegTwoNegOneNegThree = 39,
PosTwoPosThreePosOne = 40,
PosTwoNegThreeNegOne = 43,
NegTwoPosThreeNegOne = 45,
NegTwoNegThreePosOne = 46,
}Expand description
The set of CubeSurfacePoints that can be made to coincide with the
Reference Point using just one proper rotation.
Not coincidentally, their binary representations all have an even number of ones.
Variants§
PosOnePosTwoPosThree = 0
The point [1, 2, 3]. Also the Point of Reference. Divided by itself,
it yields –unsurprisingly enough– the identity operation.
PosOneNegTwoNegThree = 3
The point [1, -2, -3]. Divided by the Reference Point, it yields a
rotation of 180° around the x axis.
NegOnePosTwoNegThree = 5
The point [-1, 2, -3]. Divided by the Reference Point, it yields a
rotation of 180° around the y axis.
NegOneNegTwoPosThree = 6
The point [-1, -2, 3]. Divided by the Reference Point, it yields a
rotation of 180° around the z axis.
PosThreePosTwoNegOne = 9
The point [3, 2, -1]. Divided by the Reference Point, it yields a
rotation of 90° around the y axis.
PosThreeNegTwoPosOne = 10
The point [3, -2, 1]. Divided by the Reference Point, it yields a
rotation of 180° around the y = 0, z = x axis.
NegThreePosTwoPosOne = 12
The point [-3, 2, 1]. Divided by the Reference Point, it yields a
rotation of -90° around the y axis.
NegThreeNegTwoNegOne = 15
The point [-3, -2, -1]. Divided by the Reference Point, it yields a
rotation of 180° around the y = 0, z = -x axis.
PosOnePosThreeNegTwo = 17
The point [1, 3, -2]. Divided by the Reference Point, it yields a
rotation of -90° around the x axis.
PosOneNegThreePosTwo = 18
The point [1, -3, 2]. Divided by the Reference Point, it yields a
rotation of 90° around the x axis.
NegOnePosThreePosTwo = 20
The point [-1, 3, 2]. Divided by the Reference Point, it yields a
rotation of 180° around the x = 0, y = z axis.
NegOneNegThreeNegTwo = 23
The point [-1, -3, -2]. Divided by the Reference Point, it yields a
rotation of 180° around the x = 0, y = -z axis.
PosThreePosOnePosTwo = 24
The point [3, 1, 2]. Divided by the Reference Point, it yields a
rotation of 120° around the x = y = z axis.
PosThreeNegOneNegTwo = 27
The point [3, -1, -2]. Divided by the Reference Point, it yields a
rotation of -120° around the x = -y = z axis.
NegThreePosOneNegTwo = 29
The point [-3, 1, -2]. Divided by the Reference Point, it yields a
rotation of -120° around the x = y = -z axis.
NegThreeNegOnePosTwo = 30
The point [-3, -1, 2]. Divided by the Reference Point, it yields a
rotation of 120° around the x = -y = -z axis.
PosTwoPosOneNegThree = 33
The point [2, 1, -3]. Divided by the Reference Point, it yields a
rotation of 180° around the z = 0, x = y axis.
PosTwoNegOnePosThree = 34
The point [2, -1, 3]. Divided by the Reference Point, it yields a
rotation of -90° around the z axis.
NegTwoPosOnePosThree = 36
The point [-2, 1, 3]. Divided by the Reference Point, it yields a
rotation of 90° around the z axis.
NegTwoNegOneNegThree = 39
The point [-2, -1, -3]. Divided by the Reference Point, it yields a
rotation of 180° around the z = 0, x = -y axis.
PosTwoPosThreePosOne = 40
The point [2, 3, 1]. Divided by the Reference Point, it yields a
rotation of -120° around the x = y = z axis.
PosTwoNegThreeNegOne = 43
The point [2, -3, -1]. Divided by the Reference Point, it yields a
rotation of 120° around the x = y = -z axis.
NegTwoPosThreeNegOne = 45
The point [-2, 3, -1]. Divided by the Reference Point, it yields a
rotation of -120° around the x = -y = -z axis.
NegTwoNegThreePosOne = 46
The point [-2, -3, 1]. Divided by the Reference Point, it yields a
rotation of 120° around the x = -y = z axis.
Implementations§
Source§impl ReferenceGroupPoint
impl ReferenceGroupPoint
Sourcepub const fn downcast(self) -> CubeSurfacePoint
pub const fn downcast(self) -> CubeSurfacePoint
Down-casts one ReferenceGroupPoint to a CubeSurfacePoint.
Sourcepub const fn beside(self) -> OppositeGroupPoint
pub const fn beside(self) -> OppositeGroupPoint
Please refer to the function of the same name
in CubeSurfacePoint.
Sourcepub const fn opposite(self) -> OppositeGroupPoint
pub const fn opposite(self) -> OppositeGroupPoint
Please refer to the function of the same name
in CubeSurfacePoint.
Sourcepub const fn opposite_then_beside(self) -> Self
pub const fn opposite_then_beside(self) -> Self
Please refer to the function of the same name
in CubeSurfacePoint.
Sourcepub const fn one_right_angle_cw(self) -> Self
pub const fn one_right_angle_cw(self) -> Self
Please refer to the function of the same name
in CubeSurfacePoint.
Sourcepub const fn one_right_angle_acw(self) -> Self
pub const fn one_right_angle_acw(self) -> Self
Please refer to the function of the same name
in CubeSurfacePoint.
Sourcepub const fn flip_sign_of_2(self) -> OppositeGroupPoint
pub const fn flip_sign_of_2(self) -> OppositeGroupPoint
Please refer to the function of the same name
in CubeSurfacePoint.
Sourcepub const fn flip_2_and_3(self) -> Self
pub const fn flip_2_and_3(self) -> Self
Please refer to the function of the same name
in CubeSurfacePoint.
Sourcepub const fn n_right_angles_cw(self, angle: u8) -> Self
pub const fn n_right_angles_cw(self, angle: u8) -> Self
Please refer to the function of the same name
in CubeSurfacePoint.
Sourcepub const fn n_right_angles_acw(self, angle: u8) -> Self
pub const fn n_right_angles_acw(self, angle: u8) -> Self
Please refer to the function of the same name
in CubeSurfacePoint.
Sourcepub const fn mul_prop(self, other: ProperRotation) -> ReferenceGroupPoint
pub const fn mul_prop(self, other: ProperRotation) -> ReferenceGroupPoint
Multiplies one ReferenceGroupPoint with one ProperRotation, producing one ReferenceGroupPoint as a result.
Useful for static confirmation of Geometric Groups.
Sourcepub const fn mul_improp(self, other: ImproperRotation) -> OppositeGroupPoint
pub const fn mul_improp(self, other: ImproperRotation) -> OppositeGroupPoint
Multiplies one ReferenceGroupPoint with one ImproperRotation, producing one OppositeGroupPoint as a result.
Useful for static confirmation of Geometric Groups.
Sourcepub const fn div_prop(self, other: ReferenceGroupPoint) -> ProperRotation
pub const fn div_prop(self, other: ReferenceGroupPoint) -> ProperRotation
Divides one ReferenceGroupPoint by one ReferenceGroupPoint, producing one ProperRotation as a result.
Useful for static confirmation of Geometric Group.
Sourcepub const fn div_improp(self, other: OppositeGroupPoint) -> ImproperRotation
pub const fn div_improp(self, other: OppositeGroupPoint) -> ImproperRotation
Divides one ReferenceGroupPoint by one OppositeGroupPoint, producing one ImproperRotation as a result.
Useful for static confirmation of Geometric Group.
Sourcepub const fn direction(self) -> Direction
pub const fn direction(self) -> Direction
Please refer to
the function of the same name
in CubeSurfacePoint.
Trait Implementations§
Source§impl Clone for ReferenceGroupPoint
impl Clone for ReferenceGroupPoint
Source§fn clone(&self) -> ReferenceGroupPoint
fn clone(&self) -> ReferenceGroupPoint
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ReferenceGroupPoint
impl Debug for ReferenceGroupPoint
Source§impl Div<OppositeGroupPoint> for ReferenceGroupPoint
Extracts the improper rotation that must occur so that the divisor
point ends up coinciding with self, ie the dividend.
impl Div<OppositeGroupPoint> for ReferenceGroupPoint
Extracts the improper rotation that must occur so that the divisor
point ends up coinciding with self, ie the dividend.
Source§type Output = ImproperRotation
type Output = ImproperRotation
This operation needs an improper rotation.
Source§fn div(self, other: OppositeGroupPoint) -> ImproperRotation
fn div(self, other: OppositeGroupPoint) -> ImproperRotation
Divides one Self by one OppositeGroupPoint, producing one ImproperRotation as a result.
Useful for static confirmation of Geometric Group.
Source§impl Div<ReferenceGroupPoint> for OppositeGroupPoint
Extracts the improper rotation that must occur so that the divisor
point ends up coinciding with self, ie the dividend.
impl Div<ReferenceGroupPoint> for OppositeGroupPoint
Extracts the improper rotation that must occur so that the divisor
point ends up coinciding with self, ie the dividend.
Source§type Output = ImproperRotation
type Output = ImproperRotation
This operation needs an improper rotation.
Source§fn div(self, other: ReferenceGroupPoint) -> ImproperRotation
fn div(self, other: ReferenceGroupPoint) -> ImproperRotation
Divides one Self by one ReferenceGroupPoint, producing one ImproperRotation as a result.
Useful for static confirmation of Geometric Group.
Source§impl Div for ReferenceGroupPoint
Extracts the proper rotation that must occur so that the divisor
point ends up coinciding with self, ie the dividend.
impl Div for ReferenceGroupPoint
Extracts the proper rotation that must occur so that the divisor
point ends up coinciding with self, ie the dividend.
Source§type Output = ProperRotation
type Output = ProperRotation
A proper rotation is enough for this operation.
Source§fn div(self, other: Self) -> ProperRotation
fn div(self, other: Self) -> ProperRotation
Divides one Self by one Self, producing one ProperRotation as a result.
Useful for static confirmation of Geometric Group.
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<ReferenceGroupPoint> for CubeSurfacePoint
Discards any knowledge of Geometric Group, producing a general
CubeSurfacePoint.
impl From<ReferenceGroupPoint> for CubeSurfacePoint
Discards any knowledge of Geometric Group, producing a general
CubeSurfacePoint.
Source§fn from(x: ReferenceGroupPoint) -> Self
fn from(x: 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 ReferenceGroupPoint
Rotates a copy of self in a way that switches its Geometric Group.
impl Mul<ImproperRotation> for ReferenceGroupPoint
Rotates a copy of self in a way that switches its Geometric Group.
Source§type Output = OppositeGroupPoint
type Output = OppositeGroupPoint
Output belongs to the other Geometric Group.
Source§fn mul(self, other: ImproperRotation) -> OppositeGroupPoint
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<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 ImproperRotation
Rotates a copy the argument in a way that switches its Geometric
Group.
impl Mul<ReferenceGroupPoint> for ImproperRotation
Rotates a copy the argument in a way that switches its Geometric Group.
Source§type Output = OppositeGroupPoint
type Output = OppositeGroupPoint
Output belongs to the other Geometric Group.
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 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 OctahedrallySymmetricPoint for ReferenceGroupPoint
impl OctahedrallySymmetricPoint for ReferenceGroupPoint
Source§fn beside(self) -> Self::OtherGroup
fn beside(self) -> Self::OtherGroup
Please refer to the function of the same name
in CubeSurfacePoint.
Source§fn opposite(self) -> Self::OtherGroup
fn opposite(self) -> Self::OtherGroup
Please refer to the function of the same name
in CubeSurfacePoint.
Source§fn flip_sign_of_2(self) -> Self::OtherGroup
fn flip_sign_of_2(self) -> Self::OtherGroup
Please refer to the function of the same name
in CubeSurfacePoint.
Source§fn opposite_then_beside(self) -> Self
fn opposite_then_beside(self) -> Self
Please refer to the function of the same name
in CubeSurfacePoint.
Source§fn flip_2_and_3(self) -> Self
fn flip_2_and_3(self) -> Self
Please refer to the function of the same name
in CubeSurfacePoint.
Source§fn one_right_angle_cw(self) -> Self
fn one_right_angle_cw(self) -> Self
Please refer to the function of the same name
in CubeSurfacePoint.
Source§fn one_right_angle_acw(self) -> Self
fn one_right_angle_acw(self) -> Self
Please refer to the function of the same name
in CubeSurfacePoint.
Source§fn n_right_angles_cw(self, angle: u8) -> Self
fn n_right_angles_cw(self, angle: u8) -> Self
Please refer to the function of the same name
in CubeSurfacePoint.
Source§fn n_right_angles_acw(self, angle: u8) -> Self
fn n_right_angles_acw(self, angle: u8) -> Self
Please refer to the function of the same name
in CubeSurfacePoint.
Source§type OtherGroup = OppositeGroupPoint
type OtherGroup = OppositeGroupPoint
self belongs.Source§fn odd_ones(self) -> bool
fn odd_ones(self) -> bool
Source§fn even_ones(self) -> bool
fn even_ones(self) -> bool
Self::odd_ones by definition.Source§fn n_right_angles<const CLOCKWISE: bool>(self, angle: u8) -> Self
fn n_right_angles<const CLOCKWISE: bool>(self, angle: u8) -> Self
self, as viewed from the face on which both are located.Source§fn beside_then_opposite(self) -> Self
fn beside_then_opposite(self) -> Self
CubeSurfacePoint::opposite_then_beside. Read moreSource§fn flip_1_and_3(self) -> Self
fn flip_1_and_3(self) -> Self
CubeSurfacePoint::opposite_then_beside. Read moreSource§fn flip_sign_of_1(self) -> Self::OtherGroup
fn flip_sign_of_1(self) -> Self::OtherGroup
CubeSurfacePoint::besideSource§fn flip_sign_of_3(self) -> Self::OtherGroup
fn flip_sign_of_3(self) -> Self::OtherGroup
CubeSurfacePoint::oppositeSource§fn flip_1_and_2(self) -> Self
fn flip_1_and_2(self) -> Self
Source§impl Ord for ReferenceGroupPoint
impl Ord for ReferenceGroupPoint
Source§fn cmp(&self, other: &ReferenceGroupPoint) -> Ordering
fn cmp(&self, other: &ReferenceGroupPoint) -> 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 ReferenceGroupPoint
impl PartialEq for ReferenceGroupPoint
Source§impl PartialOrd for ReferenceGroupPoint
impl PartialOrd for ReferenceGroupPoint
Source§impl TryFrom<CubeSurfacePoint> for ReferenceGroupPoint
Please refer to CubeSurfacePoint::determine_group.
impl TryFrom<CubeSurfacePoint> for ReferenceGroupPoint
Please refer to CubeSurfacePoint::determine_group.
Source§type Error = OppositeGroupPoint
type Error = OppositeGroupPoint
If a certain CubeSurfacePoint does not belong to the ReferenceGroupPoints, it must by necessity belong to the OppositeGroupPoints.