Provide operations for quaternion arithmetic. More...
#include <Quaternion.h>

Public Member Functions | |
| Quaternion () | |
| Constructs an empty quaternion. | |
| Quaternion (const std::vector< double > matrix) | |
| Construct a Quaternion class from a matrix stored as a vector < double > with 9 elements or from a quaternion stored as a vector < double > with 4 elements. | |
| ~Quaternion () | |
| Destroys the Quaternion object. | |
| std::vector< double > | ToMatrix () |
| Converts quaternion to 3x3 rotational matrix. | |
| std::vector< double > | ToAngles (int axis3, int axis2, int axis1) |
| Return the camera angles (right ascension, declination, and twist) for the quaternion. | |
| void | Set (std::vector< double >) |
| Sets the quaternion value. | |
| std::vector< double > | GetQuaternion () const |
| Return the quaternion as a vector. | |
| Quaternion & | operator= (const Quaternion &quat) |
| Assign value of quaternion class to another quaternion. | |
| Quaternion & | operator*= (const Quaternion &quat) |
| Multiply current Naif quaternion by another Naif quaternion, replacing the current quaternion. | |
| Quaternion | operator* (const Quaternion &quat) const |
| Multiply two Naif quaternions to create a new quaternion. | |
| Quaternion | operator* (const double &scalar) |
| Multiply a quaternion by a scalar. | |
| double & | operator[] (int index) |
| Return a member of a quaternion. | |
| std::vector< double > | Qxv (const std::vector< double > &vin) |
| Multiply a vector by a quaternion (rotate the vector) | |
| Quaternion | Conjugate () |
| Returns the conjugate of the quaternion. | |
Provide operations for quaternion arithmetic.
This class provides a wrapper for existing Naif quaternion functions and also includes other operators and methods useful for working with quaternions.
| Isis::Quaternion::Quaternion | ( | ) |
Constructs an empty quaternion.
Referenced by Conjugate(), operator*(), operator*(), operator*=(), operator=(), and Qxv().
| Isis::Quaternion::Quaternion | ( | const std::vector< double > | rotation | ) |
Construct a Quaternion class from a matrix stored as a vector < double > with 9 elements or from a quaternion stored as a vector < double > with 4 elements.
| rotation | rotation defined as either a matrix or another quaternion loaded as a vector |
References Set().
| Isis::Quaternion::~Quaternion | ( | ) |
Destroys the Quaternion object.
| Quaternion Isis::Quaternion::Conjugate | ( | ) |
|
inline |
Return the quaternion as a vector.
| Quaternion Isis::Quaternion::operator* | ( | const double & | scalar | ) |
Multiply a quaternion by a scalar.
Just multiply the rotation part and polish the resulting quaternion so it is still a unit quaternion with positive rotation. For example,
| [in] | scalar | (const double &) scalar value to be multiplied times the current quaternion |
References _FILEINFO_, Isis::IException::Programmer, and Quaternion().
| Quaternion Isis::Quaternion::operator* | ( | const Quaternion & | quat | ) | const |
Multiply two Naif quaternions to create a new quaternion.
For example,
More information is available on quaternions and the multiplication algorithm in the Naif routine qxq_c.c
| [in] | quat | (const Quaternion &) quaternion to multiply on the right |
References Quaternion().
| Quaternion & Isis::Quaternion::operator*= | ( | const Quaternion & | quat | ) |
Multiply current Naif quaternion by another Naif quaternion, replacing the current quaternion.
For example,
More information on quaternions and the multiplication algorithm is available in the Naif routine qxq_c.
| [in] | quat | (const Quaternion &) quaternion to multiply on the right |
References Quaternion().
| Quaternion & Isis::Quaternion::operator= | ( | const Quaternion & | quat | ) |
Assign value of quaternion class to another quaternion.
For example,
| quat | The Quaternion to copy |
References Quaternion().
|
inline |
Return a member of a quaternion.
For example,
| [in] | index | (const int &) quaternion member to return |
| std::vector< double > Isis::Quaternion::Qxv | ( | const std::vector< double > & | vin | ) |
Multiply a vector by a quaternion (rotate the vector)
| [in] | vin | (const std::vector<double>(3)) Vector to be multiplied (rotated) |
References _FILEINFO_, Conjugate(), Isis::IException::Programmer, and Quaternion().
| void Isis::Quaternion::Set | ( | std::vector< double > | rotation | ) |
Sets the quaternion value.
| rotation | rotation defined as either a matrix or a set of 3 angles |
References _FILEINFO_, Isis::NaifStatus::CheckErrors(), and Isis::IException::Programmer.
Referenced by Quaternion().
| std::vector< double > Isis::Quaternion::ToAngles | ( | int | axis3, |
| int | axis2, | ||
| int | axis1 ) |
Return the camera angles (right ascension, declination, and twist) for the quaternion.
References Isis::NaifStatus::CheckErrors(), and ToMatrix().
| std::vector< double > Isis::Quaternion::ToMatrix | ( | ) |
Converts quaternion to 3x3 rotational matrix.
Referenced by Isis::SpiceRotation::LoadCache(), Isis::SpiceRotation::LoadCache(), and ToAngles().