23 #ifndef FREECAD_BASE_DUAL_QUATERNION_H 24 #define FREECAD_BASE_DUAL_QUATERNION_H 52 : x(x), y(y), z(z), w(w) {}
53 DualQuat(
double x,
double y,
double z,
double w,
double dx,
double dy,
double dz,
double dw)
54 : x(x, dx), y(y, dy), z(z, dz), w(w, dw) {}
56 : x(x), y(y), z(z), w(w) {}
80 double theta()
const {
return 2.0 * atan2(vec().length(), w.
re);}
96 DualQuat
operator+(DualQuat a, DualQuat b);
97 DualQuat
operator-(DualQuat a, DualQuat b);
98 DualQuat
operator*(DualQuat a, DualQuat b);
100 DualQuat
operator*(DualQuat a,
double b);
101 DualQuat
operator*(
double a, DualQuat b);
102 DualQuat
operator*(DualQuat a, DualNumber b);
103 DualQuat
operator*(DualNumber a, DualQuat b);
DualQuat dual() const
return a real-only quaternion made from dual part of this quaternion.
Definition: DualQuaternion.h:68
double du
Definition: DualNumber.h:42
DualNumber z
Definition: DualQuaternion.h:46
DualQuat real() const
return a copy with dual part zeroed out
Definition: DualQuaternion.h:65
DualQuat(DualNumber x, DualNumber y, DualNumber z, DualNumber w)
Definition: DualQuaternion.h:51
DualNumber operator-(DualNumber a, DualNumber b)
Definition: DualNumber.h:61
double theta() const
angle of rotation represented by this quaternion, in radians
Definition: DualQuaternion.h:80
DualQuat(double x, double y, double z, double w, double dx, double dy, double dz, double dw)
Definition: DualQuaternion.h:53
DualQuat(double x, double y, double z, double w)
Definition: DualQuaternion.h:55
static DualQuat identity()
returns dual quaternion for identity placement
Definition: DualQuaternion.h:62
Dual Numbers aer 2-part numbers like complex numbers, but different algebra. They are denoted as a + ...
Definition: DualNumber.h:38
double re
Definition: DualNumber.h:41
DualNumber w
Definition: DualQuaternion.h:47
DualQuat vec() const
return vector part (with scalar part zeroed out)
Definition: DualQuaternion.h:74
DualNumber x
Definition: DualQuaternion.h:44
The DualQuat class represents a dual quaternion, as a quaternion of dual number components....
Definition: DualQuaternion.h:42
DualNumber operator+(DualNumber a, DualNumber b)
Definition: DualNumber.h:51
DualQuat operator-() const
Definition: DualQuaternion.h:88
Definition: AbstractXMLReader.h:5
DualQuat conj() const
conjugate
Definition: DualQuaternion.h:71
DualQuat()
default constructor: init with zeros
Definition: DualQuaternion.h:50
double length() const
magnitude of the quaternion
Definition: DualQuaternion.h:77
DualNumber operator *(DualNumber a, DualNumber b)
Definition: DualNumber.h:71
DualNumber pow(DualNumber a, double pw)
Definition: DualNumber.h:88
DualNumber y
Definition: DualQuaternion.h:45