Canonical Quaternion with tests (#81)

This commit is contained in:
kritz
2019-08-22 15:05:14 +02:00
committed by Julian Kent
parent 56b069956d
commit 84b3da227c
2 changed files with 35 additions and 0 deletions
+24
View File
@@ -352,6 +352,30 @@ public:
-q(3)/normSq);
}
/**
* Bring quaternion to canonical form
*/
void canonicalize()
{
*this = this->canonical();
}
/**
* Return canonical form of the quaternion
*
* @return quaternion in canonical from
*/
Quaternion canonical() const
{
const Quaternion &q = *this;
if(q(0)<Type(0)) {
return Quaternion(-q(0),-q(1),-q(2),-q(3));
} else {
return Quaternion(q(0),q(1),q(2),q(3));
}
}
/**
* Rotate quaternion from rotation vector
*