![]() |
SystemEX
Lacking
Additional generic collection types missing in .net
|
Dual quaternion using single-precision floating point values. Represents a rigid 3D transformation consisting of rotation (real part) and translation (dual part). Provides stable, non-drifting transformations compared to matrix-based approaches. More...
Public Member Functions | |
| DQuatf (Quatf rotation) | |
| Creates a dual quaternion with rotation only. Translation is initialized to zero. | |
| DQuatf (Quatf rotation, Vec3f translation) | |
| Creates a dual quaternion from rotation and translation. | |
| void | Normalize () |
| Normalizes both rotation and dual components. Required for stable interpolation and accumulation. | |
| void | Rotation (Quatf rotation) |
| Sets the rotation component of the dual quaternion. | |
| void | Translation (Vec3f translation) |
| Sets the translation component of the dual quaternion. Translation is encoded into the dual part using: qd = 0.5 * (translation_quat * rotation). | |
| void | RotationTranslation (Quatf rotation, Vec3f translation) |
| Sets both rotation and translation components. Translation is encoded into the dual part. | |
| DQuatf | Invert () |
| Computes the inverse of the dual quaternion. Inverts rotation and adjusts translation accordingly. | |
| Vec3f | Transform (Vec3f v) |
| Transforms a vector using the dual quaternion. Applies rotation and translation without matrix drift. | |
Static Public Member Functions | |
| static DQuatf | Slerp (DQuatf a, DQuatf b, float t) |
| Performs screw-motion interpolation between two dual quaternions. Interpolates rotation and translation simultaneously. | |
| static DQuatf | operator* (DQuatf a, DQuatf b) |
| Multiplies two dual quaternions, combining their transformations. | |
| static DQuatf | operator+ (DQuatf a, DQuatf b) |
| Linear addition of dual quaternions. Not a valid rigid transformation; used for blending only. | |
| static DQuatf | operator- (DQuatf a, DQuatf b) |
| Linear subtraction of dual quaternions. Not a valid rigid transformation; used for blending only. | |
| static DQuatf | operator/ (DQuatf a, float s) |
| Divides both components by a scalar. Useful for normalization and weighted blending. | |
| static DQuatf | FromRotationTranslation (Quatf rotation, Vec3f translation) |
| Creates a dual quaternion from rotation and translation. Translation is encoded into the dual part using: qd = 0.5 * (translation_quat * rotation). | |
| static DQuatf | FromRotationTranslationConjugated (Quatf rotation, Vec3f translation) |
| Creates a dual quaternion using the conjugated rotation. Useful for inverse transformation chains. | |
Public Attributes | |
| Quatf | m_rot |
| Rotation component (real part). | |
| Quatf | m_translation |
| Translation component (dual part). | |
Properties | |
| Quatf | Real [get] |
| Gets the rotation component of the dual quaternion. | |
| Quatf | Dual [get] |
| Gets the translation component of the dual quaternion. | |
Dual quaternion using single-precision floating point values. Represents a rigid 3D transformation consisting of rotation (real part) and translation (dual part). Provides stable, non-drifting transformations compared to matrix-based approaches.
| SystemEx.Numeric.DQuatf.DQuatf | ( | Quatf | rotation | ) |
Creates a dual quaternion with rotation only. Translation is initialized to zero.
Creates a dual quaternion from rotation and translation.
Creates a dual quaternion from rotation and translation. Translation is encoded into the dual part using: qd = 0.5 * (translation_quat * rotation).
|
static |
Creates a dual quaternion using the conjugated rotation. Useful for inverse transformation chains.
| DQuatf SystemEx.Numeric.DQuatf.Invert | ( | ) |
Computes the inverse of the dual quaternion. Inverts rotation and adjusts translation accordingly.
| void SystemEx.Numeric.DQuatf.Normalize | ( | ) |
Normalizes both rotation and dual components. Required for stable interpolation and accumulation.
Multiplies two dual quaternions, combining their transformations.
Linear addition of dual quaternions. Not a valid rigid transformation; used for blending only.
Linear subtraction of dual quaternions. Not a valid rigid transformation; used for blending only.
Divides both components by a scalar. Useful for normalization and weighted blending.
| void SystemEx.Numeric.DQuatf.Rotation | ( | Quatf | rotation | ) |
Sets the rotation component of the dual quaternion.
Sets both rotation and translation components. Translation is encoded into the dual part.
Performs screw-motion interpolation between two dual quaternions. Interpolates rotation and translation simultaneously.
Transforms a vector using the dual quaternion. Applies rotation and translation without matrix drift.
| void SystemEx.Numeric.DQuatf.Translation | ( | Vec3f | translation | ) |
Sets the translation component of the dual quaternion. Translation is encoded into the dual part using: qd = 0.5 * (translation_quat * rotation).
| Quatf SystemEx.Numeric.DQuatf.m_rot |
Rotation component (real part).
| Quatf SystemEx.Numeric.DQuatf.m_translation |
Translation component (dual part).
|
get |
Gets the translation component of the dual quaternion.
|
get |
Gets the rotation component of the dual quaternion.