#include <Rotation.h>
Inheritance diagram for O_SESSAME::Quaternion:
The 4-element quaternion set, contains no singularities similar to those found in an Euler angle set. The quaternion, , can be determined from the Euler-axis parameters set ( , ) as follows:
The quaternion representation has the useful characteristic that it should have unit length. Therefore, the quaternion can be normalized during computations to help accuracy, . Also, the quaternion is not unique, but can also equal its negative .
Definition at line 301 of file Rotation.h.
Public Member Functions | |
Quaternion () | |
Create a quaternion with initial value of [0,0,0,1]^T. | |
Quaternion (double _q1, double _q2, double _q3, double _q4) | |
Create a quaternion with initial values; will be normalized to a unit quaternion automatically. | |
Quaternion (const Vector &_qVector) | |
Create a quaternion with initial value of the input 4x1 matrix. Create a quaternion with initial value of the input 4x1 vector; will be normalized to a unit quaternion automatically. | |
Quaternion (const DirectionCosineMatrix &_DCM) | |
Create a quaternion from a direction cosine matrix (DCM). | |
Quaternion (const Vector &_EulerAngles, const int &_Sequence) | |
Create a quaternion from a set of Euler Angles and Sequence. | |
Quaternion (const Vector &_EulerAxis, const Angle &_EulerAngle) | |
Create a quaternion from the transformation about an Euler Axis by a set angle. | |
Quaternion (const ModifiedRodriguezParameters &_MRP) | |
Create a Quaternion from the transformation of Modified Rodriguez Paramaters (MRP). | |
void | Set (const Quaternion &_qIn) |
Set the quaternion to a copy of another quaternion. | |
void | Set (double _q1, double _q2, double _q3, double _q4) |
Sets the quaternion to the values specified. | |
void | Set (const Vector &_qVector) |
Sets the quaternion with the values of the input 4x1 matrix. Sets the quaternion with the values of the input 4x1 vector. | |
void | Set (const DirectionCosineMatrix &_DCM) |
Sets the current quaternion from a converted Direction Cosine Matrix (DCM). | |
void | Set (const Vector &_EulerAngles, const int &_Sequence) |
Set the quaternion to the transformation of set of Euler Angles. | |
void | Set (const Vector &_EulerAxis, const Angle &_EulerAngle) |
Set the quaternion to the transformation about an Euler Axis by a set angle. | |
void | Set (const ModifiedRodriguezParameters &_MRP) |
Set the Quaternion to the transformation of Modified Rodriguez Paramaters (MRP). | |
DirectionCosineMatrix | GetDCM () const |
Convert the quaternion to a Direction Cosine Matrix (DCM). Uses the DirectionCosineMatrix(Quaternion) constructor. | |
Vector | GetEulerAngles (const int &_Sequence) const |
Convert the quaternion to a set of Euler Angles. | |
Vector | GetEulerAxisAngle (Vector &_EulerAxis, Angle &_EulerAngle) const |
Convert the quaternion to an Euler Axis and Angle. | |
Vector | GetEulerAxisAngle () const |
Convert the quaternion to an Euler Axis and Angle. | |
ModifiedRodriguezParameters | GetMRP () const |
Convert the quaternion to an MRP representation. Uses the ModifiedRodriguezParameters(Quaternion) constructor. | |
void | Normalize () |
Quaternion | operator+ (const Quaternion &_quat2) const |
Determine the successive rotation from the summation of two quaternions. | |
Quaternion | operator- (const Quaternion &_quat2) const |
Determine the relative rotation from the difference of two quaternions. | |
void | initialize () |
void | initialize (const CAMdoubleVector &A) |
void | initialize (const CAMvectorBase &A) |
void | initialize (long n) |
void | initialize (const CAMrange &R1) |
void | initialize (int d_type) |
void | initialize (int d_type, const CAMrange &R1) |
double & | operator() (long i1) |
const double & | operator() (long i1) const |
CAMdoubleVector | operator() (const CAMrange &R1) |
const CAMdoubleVector | operator() (const CAMrange &R1) const |
double * | getDataPointer () const |
void * | getDataPointer (long i1, long i2) const |
CAMvectorBase | operator- () const |
CAMvectorBase | operator- (const CAMvectorBase &A) const |
CAMmatrixBase | operator- (const CAMmatrixBase &A) const |
CAMvectorBase | operator- (const double value) const |
CAMvectorBase | operator+ (const CAMvectorBase &A) const |
CAMmatrixBase | operator+ (const CAMmatrixBase &A) const |
CAMvectorBase | operator+ (const double value) const |
CAMmatrixBase | operator * (const CAMvectorBase &A) const |
CAMvectorBase | operator * (const CAMmatrixBase &A) const |
CAMvectorBase | operator * (double value) const |
void | operator+= (const CAMvectorBase &A) |
void | operator+= (const CAMmatrixBase &A) |
void | operator+= (const double value) |
void | operator-= (const CAMvectorBase &A) |
void | operator-= (const CAMmatrixBase &A) |
void | operator-= (const double value) |
CAMvectorBase | operator~ () const |
CAMvectorBase | transpose () const |
long | CAMvectorBase::getIndexBase () const |
long | CAMvectorBase::getIndexBound () const |
long | CAMvectorBase::getIndexStride () const |
long | CAMvectorBase::getIndexCount () const |
void | CAMvectorBase::setIndexBase (long i) |
void | CAMvectorBase::setIndexStride (long i) |
CAMvectorBase | operator/ (double value) const |
void | operator *= (double value) |
void | operator/= (double value) |
void | setToValue (double value) |
CAMvectorBase | plusValue (double value) |
CAMvectorBase | minusValue (double value) |
void | setTemporaryFlag () |
void | initializeReturnArgument (const CAMstructureBase &S, int dataT) |
void | initializeReturnArgument (const CAMvectorBase &A) |
void | initializeMinDuplicate (const CAMvectorBase &A) |
CAMmatrixBase | asMatrix () const |
CAMarrayBase | asArray () const |
long | getDimension () const |
void | incrementReferenceCount () |
void | decrementReferenceCount () |
int | getReferenceCount () const |
void | setReferenceCount (int refValue) |
double | max () const |
double | min () const |
double | maxAbs () const |
double | minAbs () const |
double | infNorm () const |
double | pNorm (int p) const |
double | pNorm (long p) const |
double | pNorm (float p) const |
double | pNorm (double p) const |
double | dot (const CAMvectorBase &V) const |
void | exchangeContentsWith (CAMvectorBase &B) |
void | initializeReferenceDuplicate (const CAMvectorBase &B) |
Static Public Member Functions | |
void | referenceCountError () |
void | indexCheck (const CAMstructureBase &S, long i1, long i2) |
void | indexErrorMessage (long indexDimension, long base, long bound, long index) |
void | nonConformingMessage (const CAMstructureBase &A, const CAMstructureBase &B) |
void | doubleConversionError (const CAMstructureBase &A) |
void | objectConversionError (const CAMstructureBase &A) |
void | nullOperandError () |
void | nullOperandError (char *Operation) |
void | inputSizeError () |
Public Attributes | |
CAMstructureBase | Structure |
CAMdataHandler * | DataP |
int | typeValue |
int | referenceFlag |
long | vectorBaseReferenceCount |
Friends | |
class | CAMmatrixBase |
__IMPEXP__ friend ostream & | operator<< (ostream &out_stream, const CAMvectorBase &A) |
__IMPEXP__ friend istream & | operator>> (istream &in_stream, CAMvectorBase &A) |
__IMPEXP__ friend CAMvectorBase | operator- (const double value, const CAMvectorBase &A) |
__IMPEXP__ friend CAMvectorBase | operator+ (const double value, const CAMvectorBase &A) |
__IMPEXP__ friend CAMvectorBase | operator * (double value, const CAMvectorBase &A) |
__IMPEXP__ friend CAMvectorBase | operator/ (double value, const CAMvectorBase &A) |
|
Create a quaternion with initial value of [0,0,0,1]^T.
Definition at line 1048 of file Rotation.cpp. |
|
Create a quaternion with initial values; will be normalized to a unit quaternion automatically.
Definition at line 1061 of file Rotation.cpp. |
|
Create a quaternion with initial value of the input 4x1 matrix. Create a quaternion with initial value of the input 4x1 vector; will be normalized to a unit quaternion automatically.
Definition at line 1082 of file Rotation.cpp. |
|
Create a quaternion from a direction cosine matrix (DCM).
Definition at line 1092 of file Rotation.cpp. |
|
Create a quaternion from a set of Euler Angles and Sequence.
Definition at line 1101 of file Rotation.cpp. |
|
Create a quaternion from the transformation about an Euler Axis by a set angle.
Definition at line 1111 of file Rotation.cpp. |
|
Create a Quaternion from the transformation of Modified Rodriguez Paramaters (MRP).
Definition at line 1119 of file Rotation.cpp. |
|
Set the quaternion to a copy of another quaternion.
Definition at line 1127 of file Rotation.cpp. |
|
Sets the quaternion to the values specified.
Definition at line 1143 of file Rotation.cpp. |
|
Sets the quaternion with the values of the input 4x1 matrix. Sets the quaternion with the values of the input 4x1 vector.
Definition at line 1176 of file Rotation.cpp. |
|
Sets the current quaternion from a converted Direction Cosine Matrix (DCM).
Definition at line 1200 of file Rotation.cpp. |
|
Set the quaternion to the transformation of set of Euler Angles.
Definition at line 1218 of file Rotation.cpp. |
|
Set the quaternion to the transformation about an Euler Axis by a set angle.
Definition at line 1234 of file Rotation.cpp. |
|
Set the Quaternion to the transformation of Modified Rodriguez Paramaters (MRP).
Definition at line 1249 of file Rotation.cpp. |
|
Convert the quaternion to a Direction Cosine Matrix (DCM). Uses the DirectionCosineMatrix(Quaternion) constructor.
Definition at line 1266 of file Rotation.cpp. |
|
Convert the quaternion to a set of Euler Angles.
Definition at line 1275 of file Rotation.cpp. |
|
Convert the quaternion to an Euler Axis and Angle.
Definition at line 1290 of file Rotation.cpp. |
|
Convert the quaternion to an Euler Axis and Angle.
Definition at line 1304 of file Rotation.cpp. |
|
Convert the quaternion to an MRP representation. Uses the ModifiedRodriguezParameters(Quaternion) constructor.
Definition at line 1316 of file Rotation.cpp. |
|
Definition at line 1324 of file Rotation.cpp. |
|
Determine the successive rotation from the summation of two quaternions.
Definition at line 1352 of file Rotation.cpp. |
|
Determine the relative rotation from the difference of two quaternions.
Definition at line 1397 of file Rotation.cpp. |
|
Reimplemented from CAMvectorBase. |
|
|
|
Reimplemented from CAMvectorBase. |
|
|
|
|
|
Definition at line 248 of file vecbse.cpp. |
|
Definition at line 292 of file vecbse.cpp. |
|
|
|
|
|
|
|
|
|
Reimplemented from CAMvectorBase. |
|
Definition at line 1132 of file vecbse.cpp. |
|
Definition at line 378 of file vecbse.cpp. |
|
Definition at line 424 of file vecbse.cpp. |
|
Definition at line 440 of file vecbse.cpp. |
|
Definition at line 867 of file vecbse.cpp. |
|
Definition at line 391 of file vecbse.cpp. |
|
Definition at line 408 of file vecbse.cpp. |
|
Definition at line 836 of file vecbse.cpp. |
|
Definition at line 457 of file vecbse.cpp. |
|
Definition at line 550 of file vecbse.cpp. |
|
Definition at line 923 of file vecbse.cpp. |
|
Definition at line 650 of file vecbse.cpp. |
|
Definition at line 666 of file vecbse.cpp. |
|
Definition at line 899 of file vecbse.cpp. |
|
Definition at line 676 of file vecbse.cpp. |
|
Definition at line 686 of file vecbse.cpp. |
|
Definition at line 911 of file vecbse.cpp. |
|
Definition at line 807 of file vecbse.cpp. |
|
Definition at line 697 of file vecbse.cpp. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 945 of file vecbse.cpp. |
|
Definition at line 967 of file vecbse.cpp. |
|
Definition at line 975 of file vecbse.cpp. |
|
Definition at line 982 of file vecbse.cpp. |
|
Definition at line 990 of file vecbse.cpp. |
|
Definition at line 1001 of file vecbse.cpp. |
|
|
|
Definition at line 322 of file vecbse.cpp. |
|
Definition at line 316 of file vecbse.cpp. |
|
Definition at line 328 of file vecbse.cpp. |
|
Definition at line 1080 of file vecbse.cpp. |
|
Definition at line 1106 of file vecbse.cpp. |
|
|
|
Definition at line 1154 of file vecbse.cpp. |
|
|
|
|
|
|
|
Definition at line 1160 of file vecbse.cpp. |
|
Definition at line 1172 of file vecbse.cpp. |
|
Definition at line 1197 of file vecbse.cpp. |
|
Definition at line 1205 of file vecbse.cpp. |
|
Definition at line 1222 of file vecbse.cpp. |
|
Definition at line 1235 of file vecbse.cpp. |
|
Definition at line 1247 of file vecbse.cpp. |
|
Definition at line 1253 of file vecbse.cpp. |
|
Definition at line 1259 of file vecbse.cpp. |
|
Definition at line 13 of file vecutl.cpp. |
|
Definition at line 39 of file vecutl.cpp. |
|
Definition at line 65 of file vecutl.cpp. |
|
Definition at line 91 of file vecutl.cpp. |
|
Definition at line 118 of file vecutl.cpp. |
|
Definition at line 170 of file vecutl.cpp. |
|
Definition at line 171 of file vecutl.cpp. |
|
Definition at line 172 of file vecutl.cpp. |
|
Definition at line 144 of file vecutl.cpp. |
|
Definition at line 173 of file vecutl.cpp. |
|
Definition at line 1017 of file vecbse.cpp. |
|
Definition at line 1048 of file vecbse.cpp. |
|
|
|
Definition at line 182 of file vecbse.cpp. |
|
Definition at line 210 of file vecbse.cpp. |
|
Definition at line 883 of file vecbse.cpp. |
|
Definition at line 851 of file vecbse.cpp. |
|
Definition at line 934 of file vecbse.cpp. |
|
Definition at line 956 of file vecbse.cpp. |
|
|
|
|
|
|
|
|
|
|