Useful when creating transformation from rotation only.
@ -110,7 +110,7 @@ template<class T> class DualComplex: public Dual<Complex<T>> {
* \hat c = c_0 + \epsilon c_\epsilon
* @f]
*/
inline constexpr /*implicit*/ DualComplex(const Complex<T>& real, const Complex<T>& dual): Dual<Complex<T>>(real, dual) {}
inline constexpr /*implicit*/ DualComplex(const Complex<T>& real, const Complex<T>& dual = Complex<T>(T(0), T(0))): Dual<Complex<T>>(real, dual) {}
/**
* @brief Construct dual complex number from vector
@ -115,7 +115,7 @@ template<class T> class DualQuaternion: public Dual<Quaternion<T>> {
* \hat q = q_0 + \epsilon q_\epsilon
inline constexpr /*implicit*/ DualQuaternion(const Quaternion<T>& real, const Quaternion<T>& dual): Dual<Quaternion<T>>(real, dual) {}
inline constexpr /*implicit*/ DualQuaternion(const Quaternion<T>& real, const Quaternion<T>& dual = Quaternion<T>({}, T(0))): Dual<Quaternion<T>>(real, dual) {}
* @brief Construct dual quaternion from vector
@ -107,6 +107,9 @@ void DualComplexTest::construct() {
constexpr Complex c = a.dual();
CORRADE_COMPARE(b, Complex(-1.0f, 2.5f));
CORRADE_COMPARE(c, Complex(3.0f, -7.5f));
constexpr DualComplex d(Complex(-1.0f, 2.5f));
CORRADE_COMPARE(d, DualComplex({-1.0f, 2.5f}, {0.0f, 0.0f}));
}
void DualComplexTest::constructDefault() {
@ -105,6 +105,9 @@ void DualQuaternionTest::construct() {
constexpr Quaternion c = a.dual();
CORRADE_COMPARE(c, Quaternion({0.5f, -3.1f, 3.3f}, 2.0f));
constexpr DualQuaternion d({{1.0f, 2.0f, 3.0f}, -4.0f});
CORRADE_COMPARE(d, DualQuaternion({{1.0f, 2.0f, 3.0f}, -4.0f}, {{0.0f, 0.0f, 0.0f}, 0.0f}));
void DualQuaternionTest::constructDefault() {