HDK
|
#include <dualQuatd.h>
Public Types | |
typedef double | ScalarType |
Public Member Functions | |
GfDualQuatd () | |
The default constructor leaves the dual quaternion undefined. More... | |
GfDualQuatd (double realVal) | |
GfDualQuatd (const GfQuatd &real) | |
GfDualQuatd (const GfQuatd &real, const GfQuatd &dual) | |
This constructor initializes the real and dual parts. More... | |
GfDualQuatd (const GfQuatd &rotation, const GfVec3d &translation) | |
This constructor initializes from a rotation and a translation components. More... | |
GF_API | GfDualQuatd (const GfDualQuatf &other) |
Implicitly convert from GfDualQuatf. More... | |
GF_API | GfDualQuatd (const GfDualQuath &other) |
Implicitly convert from GfDualQuath. More... | |
void | SetReal (const GfQuatd &real) |
Sets the real part of the dual quaternion. More... | |
void | SetDual (const GfQuatd &dual) |
Sets the dual part of the dual quaternion. More... | |
const GfQuatd & | GetReal () const |
Returns the real part of the dual quaternion. More... | |
const GfQuatd & | GetDual () const |
Returns the dual part of the dual quaternion. More... | |
GF_API std::pair< double, double > | GetLength () const |
Returns geometric length of this dual quaternion. More... | |
GF_API GfDualQuatd | GetNormalized (double eps=GF_MIN_VECTOR_LENGTH) const |
GF_API std::pair< double, double > | Normalize (double eps=GF_MIN_VECTOR_LENGTH) |
GF_API GfDualQuatd | GetConjugate () const |
Returns the conjugate of this dual quaternion. More... | |
GF_API GfDualQuatd | GetInverse () const |
Returns the inverse of this dual quaternion. More... | |
GF_API void | SetTranslation (const GfVec3d &translation) |
Set the translation component of this dual quaternion. More... | |
GF_API GfVec3d | GetTranslation () const |
Get the translation component of this dual quaternion. More... | |
bool | operator== (const GfDualQuatd &dq) const |
bool | operator!= (const GfDualQuatd &dq) const |
GfDualQuatd & | operator+= (const GfDualQuatd &dq) |
Component-wise unary sum operator. More... | |
GfDualQuatd & | operator-= (const GfDualQuatd &dq) |
Component-wise unary difference operator. More... | |
GF_API GfDualQuatd & | operator*= (const GfDualQuatd &dq) |
Post-multiplies dual quaternion dq into this dual quaternion. More... | |
GfDualQuatd & | operator*= (double s) |
Scales this dual quaternion by s . More... | |
GfDualQuatd & | operator/= (double s) |
Scales this dual quaternion by 1 / s . More... | |
GF_API GfVec3d | Transform (const GfVec3d &vec) const |
Transforms the row vector vec by the dual quaternion. More... | |
Static Public Member Functions | |
static GfDualQuatd | GetZero () |
static GfDualQuatd | GetIdentity () |
Friends | |
size_t | hash_value (const GfDualQuatd &dq) |
Hash. More... | |
GfDualQuatd | operator+ (const GfDualQuatd &dq1, const GfDualQuatd &dq2) |
Component-wise binary sum operator. More... | |
GfDualQuatd | operator- (const GfDualQuatd &dq1, const GfDualQuatd &dq2) |
Component-wise binary difference operator. More... | |
GfDualQuatd | operator* (const GfDualQuatd &dq1, const GfDualQuatd &dq2) |
Returns the product of dual quaternions dq1 and dq2 . More... | |
GfDualQuatd | operator* (const GfDualQuatd &dq, double s) |
Returns the product of dual quaternion dq and scalar s . More... | |
GfDualQuatd | operator* (double s, const GfDualQuatd &dq) |
Returns the product of dual quaternion dq and scalar s . More... | |
GfDualQuatd | operator/ (const GfDualQuatd &dq, double s) |
Returns the product of dual quaternion dq and scalar 1 / s . More... | |
Basic type: a real part quaternion and a dual part quaternion.
This class represents a generalized dual quaternion that has a real part and a dual part quaternions. Dual quaternions are used to represent a combination of rotation and translation.
References: https://www.cs.utah.edu/~ladislav/kavan06dual/kavan06dual.pdf https://faculty.sites.iastate.edu/jia/files/inline-files/dual-quaternion.pdf
Definition at line 49 of file dualQuatd.h.
typedef double GfDualQuatd::ScalarType |
Definition at line 52 of file dualQuatd.h.
|
inline |
The default constructor leaves the dual quaternion undefined.
Definition at line 55 of file dualQuatd.h.
|
inlineexplicit |
Initialize the real part to realVal
and the imaginary part to zero quaternion.
Since quaternions typically must be normalized, reasonable values for realVal
are -1, 0, or 1. Other values are legal but are likely to be meaningless.
Definition at line 64 of file dualQuatd.h.
|
inlineexplicit |
Initialize the real part to real
quaternion and the imaginary part to zero quaternion.
Definition at line 69 of file dualQuatd.h.
This constructor initializes the real and dual parts.
Definition at line 74 of file dualQuatd.h.
This constructor initializes from a rotation and a translation components.
Definition at line 79 of file dualQuatd.h.
GF_API GfDualQuatd::GfDualQuatd | ( | const GfDualQuatf & | other | ) |
Implicitly convert from GfDualQuatf.
GF_API GfDualQuatd::GfDualQuatd | ( | const GfDualQuath & | other | ) |
Implicitly convert from GfDualQuath.
GF_API GfDualQuatd GfDualQuatd::GetConjugate | ( | ) | const |
Returns the conjugate of this dual quaternion.
|
inline |
Returns the dual part of the dual quaternion.
Definition at line 107 of file dualQuatd.h.
|
inlinestatic |
Returns the identity dual quaternion, which has a real part of (1,0,0,0) and a dual part of (0,0,0,0).
Definition at line 119 of file dualQuatd.h.
GF_API GfDualQuatd GfDualQuatd::GetInverse | ( | ) | const |
Returns the inverse of this dual quaternion.
GF_API std::pair<double, double> GfDualQuatd::GetLength | ( | ) | const |
Returns geometric length of this dual quaternion.
GF_API GfDualQuatd GfDualQuatd::GetNormalized | ( | double | eps = GF_MIN_VECTOR_LENGTH | ) | const |
Returns a normalized (unit-length) version of this dual quaternion. If the length of this dual quaternion is smaller than eps
, this returns the identity dual quaternion.
|
inline |
Returns the real part of the dual quaternion.
Definition at line 102 of file dualQuatd.h.
Get the translation component of this dual quaternion.
|
inlinestatic |
Returns the zero dual quaternion, which has a real part of (0,0,0,0) and a dual part of (0,0,0,0).
Definition at line 113 of file dualQuatd.h.
GF_API std::pair<double, double> GfDualQuatd::Normalize | ( | double | eps = GF_MIN_VECTOR_LENGTH | ) |
Normalizes this dual quaternion in place. Normalizes this dual quaternion in place to unit length, returning the length before normalization. If the length of this dual quaternion is smaller than eps
, this sets the dual quaternion to identity.
|
inline |
Component-wise dual quaternion inequality test. The real and dual parts must match exactly for dual quaternions to be considered equal.
Definition at line 170 of file dualQuatd.h.
GF_API GfDualQuatd& GfDualQuatd::operator*= | ( | const GfDualQuatd & | dq | ) |
Post-multiplies dual quaternion dq
into this dual quaternion.
|
inline |
Scales this dual quaternion by s
.
Definition at line 193 of file dualQuatd.h.
|
inline |
Component-wise unary sum operator.
Definition at line 175 of file dualQuatd.h.
|
inline |
Component-wise unary difference operator.
Definition at line 182 of file dualQuatd.h.
|
inline |
Scales this dual quaternion by 1 / s
.
Definition at line 200 of file dualQuatd.h.
|
inline |
Component-wise dual quaternion equality test. The real and dual parts must match exactly for dual quaternions to be considered equal.
Definition at line 163 of file dualQuatd.h.
Sets the dual part of the dual quaternion.
Definition at line 97 of file dualQuatd.h.
Sets the real part of the dual quaternion.
Definition at line 92 of file dualQuatd.h.
Set the translation component of this dual quaternion.
Transforms the row vector vec by the dual quaternion.
|
friend |
Hash.
Definition at line 157 of file dualQuatd.h.
|
friend |
Returns the product of dual quaternions dq1
and dq2
.
Definition at line 219 of file dualQuatd.h.
|
friend |
Returns the product of dual quaternion dq
and scalar s
.
Definition at line 226 of file dualQuatd.h.
|
friend |
Returns the product of dual quaternion dq
and scalar s
.
Definition at line 232 of file dualQuatd.h.
|
friend |
Component-wise binary sum operator.
Definition at line 205 of file dualQuatd.h.
|
friend |
Component-wise binary difference operator.
Definition at line 212 of file dualQuatd.h.
|
friend |
Returns the product of dual quaternion dq
and scalar 1 / s
.
Definition at line 238 of file dualQuatd.h.