Struct EulerSequence
- Namespace
- Hi.NcParsers.NcWriteback
- Assembly
- HiMech.dll
An euler rotation sequence: three axis rotations applied in
First → Second → Third order,
composing to R(Third)·R(Second)·R(First) in this codebase's
row-vector matrix convention (mirroring how
IsoG68p2TiltSyntax composes
G68.2 I/J/K). Adjacent axes must differ; the twelve valid
sequences split into the proper-euler family
(First == Third, e.g. ZXZ) and the
Tait-Bryan family (all three axes distinct, e.g. XYZ roll-pitch-yaw).
public readonly record struct EulerSequence : IEquatable<EulerSequence>
- Implements
- Inherited Members
- Extension Methods
Constructors
EulerSequence(EulerAxis, EulerAxis, EulerAxis)
Creates a sequence; adjacent axes must differ (a repeated adjacent axis folds two rotations into one and cannot span SO(3)).
public EulerSequence(EulerAxis first, EulerAxis second, EulerAxis third)
Parameters
Exceptions
- ArgumentException
When
secondequalsfirstorthird.
Fields
Xyz
Roll-pitch-yaw (X, then Y, then Z) — e.g. the Fanuc G68.2 P1 format.
public static readonly EulerSequence Xyz
Field Value
Zxz
The Fanuc G68.2 standard-format sequence (euler angles about Z, then X, then Z) — the default this writeback layer emits.
public static readonly EulerSequence Zxz
Field Value
Properties
First
Axis of the first applied rotation (G68.2 I in the ZXZ default).
public EulerAxis First { get; }
Property Value
IsProperEuler
True for the proper-euler family (first axis reused as the third).
public bool IsProperEuler { get; }
Property Value
Second
Axis of the second applied rotation (G68.2 J in the ZXZ default).
public EulerAxis Second { get; }
Property Value
Third
Axis of the third applied rotation (G68.2 K in the ZXZ default).
public EulerAxis Third { get; }
Property Value
Methods
ToString()
Returns the fully qualified type name of this instance.
public override string ToString()
Returns
- string
The fully qualified type name.