45 for(
int i = 0; i < 4; i++) {
74 if(rotation.size() == 9) {
79 else if(rotation.size() == 4) {
83 std::string msg =
"Input vector of unexpected size for matrix or quaternion";
92 std::vector<double> matrix(9);
93 q2m_c(&
p_quaternion[0], (SpiceDouble( *)[3]) &matrix[0]);
134 std::vector<double> qout(4);
138 (SpiceDouble *) & (qout[0]));
191 double scalar2 = scalar * scalar;
195 unitizer = sqrt(unitizer);
198 std::string msg =
"Unable to make quaternion a unit quaternion";
204 for(
int i = 1; i < 4; i++) {
217 for(
int i = 1; i < 4; i++) {
232 if(vin.size() != 3) {
233 std::string msg =
"Unexpected vector size -- 3 expected";
277 std::vector<double> rotationMatrix =
ToMatrix();
278 SpiceDouble ang1, ang2, ang3;
280 m2eul_c((SpiceDouble *) &rotationMatrix[0], axis3, axis2, axis1,
281 &ang3, &ang2, &ang1);
283 std::vector<double> angles;
284 angles.push_back(ang1);
285 angles.push_back(ang2);
286 angles.push_back(ang3);
Quaternion & operator=(const Quaternion &quat)
Assign value of quaternion class to another quaternion.
Provide operations for quaternion arithmetic.
void Set(std::vector< double >)
Sets the quaternion value.
std::vector< double > p_quaternion
Quaternion.
Quaternion operator*(const Quaternion &quat) const
Multiply two Naif quaternions to create a new quaternion.
void Polish(Quaternion &quat)
Polish the quaternion – make the first component positive.
This error is for when a programmer made an API call that was illegal.
Quaternion & operator*=(const Quaternion &quat)
Multiply current Naif quaternion by another Naif quaternion, replacing the current quaternion...
#define _FILEINFO_
Macro for the filename and line number.
Quaternion Conjugate()
Returns the conjugate of the quaternion.
std::vector< double > ToAngles(int axis3, int axis2, int axis1)
Return the camera angles (right ascension, declination, and twist) for the quaternion.
std::vector< double > ToMatrix()
Converts quaternion to 3x3 rotational matrix.
std::vector< double > Qxv(const std::vector< double > &vin)
Multiply a vector by a quaternion (rotate the vector)
static void CheckErrors(bool resetNaif=true)
This method looks for any naif errors that might have occurred.
Quaternion()
Constructs an empty quaternion.
Namespace for ISIS/Bullet specific routines.
~Quaternion()
Destroys the Quaternion object.