Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

srm::Orientation Class Reference

The Orientation class. More...

#include <Orientation.h>

Inheritance diagram for srm::Orientation:

Inheritance graph
[legend]
Collaboration diagram for srm::Orientation:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual Orientationoperator= (const Orientation &other)
 Assignment operator.

virtual SRM_Matrix_3x3 getMatrix3x3 () const
 Gets the orientation in matrix 3x3 representation.

virtual SRM_Axis_Angle_Params getAxisAngle () const
 Gets the orientation in (axis, angle) representation.

virtual SRM_Euler_Angles_ZXZ_Params getEulerAnglesZXZ () const
 Gets the orientation in Euler angles (ZXZ) representation.

virtual SRM_Tait_Bryan_Angles_Params getTaitBryanAngles () const
 Gets the orientation in Tait-Bryan angles representation.

virtual SRM_Quaternion_Params getQuaternion () const
 Gets the orientation in Quaternion representation.

virtual void setMatrix3x3 (const SRM_Matrix_3x3 &params)
 Sets the Matrix 3x3 orientation representation.

virtual void setMatrix3x3 (SRM_Long_Float a11, SRM_Long_Float a12, SRM_Long_Float a13, SRM_Long_Float a21, SRM_Long_Float a22, SRM_Long_Float a23, SRM_Long_Float a31, SRM_Long_Float a32, SRM_Long_Float a33)
 Sets the orientation using elements of the matrix (mat) 3x3 parameter.

virtual void setAxisAngle (const SRM_Axis_Angle_Params &params)
 Sets the (axis, angle) orientation representation.

virtual void setAxisAngle (const SRM_Vector_3D &axis, SRM_Long_Float angle)
 Sets the orientation using (axis, angle) parameters.

virtual void setEulerAnglesZXZ (const SRM_Euler_Angles_ZXZ_Params &params)
 Sets the Euler angles (ZXZ) orientation representation.

virtual void setEulerAnglesZXZ (SRM_Long_Float spin, SRM_Long_Float nutation, SRM_Long_Float precession)
 Sets the orientation using spin, nutation, and precession parameters.

virtual void setTaitBryanAngles (const SRM_Tait_Bryan_Angles_Params &params)
 Sets the Tait-Bryan angles orientation representation.

virtual void setTaitBryanAngles (SRM_Long_Float roll, SRM_Long_Float pitch, SRM_Long_Float yaw)
 Sets the orientation using roll, pitch and yaw parameters.

virtual void setQuaternion (const SRM_Quaternion_Params &params)
 Sets the quaternion orientation representation.

virtual void setQuaternion (SRM_Long_Float e0, SRM_Long_Float e1, SRM_Long_Float e2, SRM_Long_Float e3)
 Sets the orientation using quaternion (e0, e1, e2, e3 ) parameters.

virtual std::string toString () const=0
 Returns the string for the orientation values.

virtual SRM_Ori_Rep_Type getOriRep () const=0
 Returns the native orientation representation type.

virtual SRM_Vector_3D transformVector (const SRM_Vector_3D &vec) const
 Applies this orientation to the input vector and sets the result in the return vector.

virtual bool equivalence (const Orientation &compare_instance, SRM_Long_Float tolerance=Orientation::epsilon) const
bool operator== (Orientation &rhs)
 The equality operator.


Static Public Member Functions

bool equivalence (const Orientation &instance1, const Orientation &instance2, SRM_Long_Float tolerance=Orientation::epsilon)

Static Public Attributes

const SRM_Long_Float epsilon
 Epsilon value for equivalence tests.


Protected Member Functions

const SRM_Matrix_3x3_get_matrix_base () const
 Internal matrix 3x3 representation (for now) used for calculations.

const SRM_Matrix_3x3_get_matrix_base_unch () const
void _set_matrix_base (const SRM_Matrix_3x3 &matrix_base) const
bool _get_internal_data_is_current () const
 is set to true when the internal data is equivalent to the representation class data.

void _set_internal_data_is_current (bool internal_data_is_current) const
virtual void _updateIntData () const=0
 the virtual function to convert the data from native representation to the internal representation

virtual void _updateRepData ()=0
 the virtual function to convert the data from internal representation to the native representation


Detailed Description

The Orientation class.

Author:
David Shen, Warren Macchi

Definition at line 103 of file Orientation.h.


Member Function Documentation

bool srm::Orientation::operator== Orientation rhs  ) 
 

The equality operator.

Note:
This operator is deprecated. Use equivalence() method.

virtual void srm::Orientation::setAxisAngle const SRM_Vector_3D axis,
SRM_Long_Float  angle
[virtual]
 

Sets the orientation using (axis, angle) parameters.

Parameters:
axis in: the axis of rotation, which is a unit vector
angle in: the angle of rotation, which is in radians in the range of [-2PI, 2PI]
Exceptions:
This method throws srm::Exception

Reimplemented in srm::OrientationAxisAngle.

virtual void srm::Orientation::setAxisAngle const SRM_Axis_Angle_Params params  )  [virtual]
 

Sets the (axis, angle) orientation representation.

Note:
the input axis is a unit vector

the input angle is in radians in the range of [-2PI, 2PI]

Exceptions:
This method throws srm::Exception

Reimplemented in srm::OrientationAxisAngle.

virtual void srm::Orientation::setEulerAnglesZXZ SRM_Long_Float  spin,
SRM_Long_Float  nutation,
SRM_Long_Float  precession
[virtual]
 

Sets the orientation using spin, nutation, and precession parameters.

Parameters:
spin in: the spin angle, which is in radians in the range of [-2PI, 2PI]
nutation in: the nutation angle is in radians in the range of [-2PI, 2PI]
precession in: the precession angle, which is in radians in the range of [-2PI, 2PI]
Exceptions:
This method throws srm::Exception

Reimplemented in srm::OrientationEulerAnglesZXZ.

virtual void srm::Orientation::setEulerAnglesZXZ const SRM_Euler_Angles_ZXZ_Params params  )  [virtual]
 

Sets the Euler angles (ZXZ) orientation representation.

Note:
the spin angle is in radians in the range of [-2PI, 2PI]

the nutation angle is in radians in the range of [-2PI, 2PI]

the precession angle is in radians in the range of [-2PI, 2PI]

Exceptions:
This method throws srm::Exception

Reimplemented in srm::OrientationEulerAnglesZXZ.

virtual void srm::Orientation::setMatrix3x3 SRM_Long_Float  a11,
SRM_Long_Float  a12,
SRM_Long_Float  a13,
SRM_Long_Float  a21,
SRM_Long_Float  a22,
SRM_Long_Float  a23,
SRM_Long_Float  a31,
SRM_Long_Float  a32,
SRM_Long_Float  a33
[virtual]
 

Sets the orientation using elements of the matrix (mat) 3x3 parameter.

Note:
the INV(mat)=TRANSPOSE(mat), consequently, mat*TRANSPOSE(mat)=I
Exceptions:
This method throws srm::Exception

virtual void srm::Orientation::setMatrix3x3 const SRM_Matrix_3x3 params  )  [virtual]
 

Sets the Matrix 3x3 orientation representation.

Note:
the INV(mat)=TRANSPOSE(mat), consequently, mat*TRANSPOSE(mat)=I
Exceptions:
This method throws srm::Exception

virtual void srm::Orientation::setQuaternion SRM_Long_Float  e0,
SRM_Long_Float  e1,
SRM_Long_Float  e2,
SRM_Long_Float  e3
[virtual]
 

Sets the orientation using quaternion (e0, e1, e2, e3 ) parameters.

Note:
q = e0 + e1*i + e2*j + e3*k

e0^2 + e1^2 + e2^2 + e3^2 = 1

Parameters:
e0 in: the scale (real) parameter
e1 in: the vector multiplier in (i) direction
e2 in: the vector multiplier in (j) direction
e3 in: the vector multiplier in (k) direction
Exceptions:
This method throws srm::Exception

Reimplemented in srm::OrientationQuaternion.

virtual void srm::Orientation::setQuaternion const SRM_Quaternion_Params params  )  [virtual]
 

Sets the quaternion orientation representation.

Note:
q = e0 + e1*i + e2*j + e3*k

e0^2 + e1^2 + e2^2 + e3^2 = 1

Exceptions:
This method throws srm::Exception

Reimplemented in srm::OrientationQuaternion.

virtual void srm::Orientation::setTaitBryanAngles SRM_Long_Float  roll,
SRM_Long_Float  pitch,
SRM_Long_Float  yaw
[virtual]
 

Sets the orientation using roll, pitch and yaw parameters.

Parameters:
roll in: the roll angle, which is in radians in the range of [-2PI, 2PI]
pitch in: the pitch angle, which is in radians in the range of [-2PI, 2PI]
yaw in: the yaw angle, which is in radians in the range of [-2PI, 2PI]
Exceptions:
This method throws srm::Exception

Reimplemented in srm::OrientationTaitBryanAngles.

virtual void srm::Orientation::setTaitBryanAngles const SRM_Tait_Bryan_Angles_Params params  )  [virtual]
 

Sets the Tait-Bryan angles orientation representation.

Note:
the roll angle is in radians in the range of [-2PI, 2PI]

the pitch angle is in radians in the range of [-2PI, 2PI]

the yaw angle is in radians in the range of [-2PI, 2PI]

Exceptions:
This method throws srm::Exception

Reimplemented in srm::OrientationTaitBryanAngles.

virtual SRM_Vector_3D srm::Orientation::transformVector const SRM_Vector_3D vec  )  const [virtual]
 

Applies this orientation to the input vector and sets the result in the return vector.

Exceptions:
This method throws srm::Exception


The documentation for this class was generated from the following file:
Spatial Reference Model C++ API Version 4.4 - December 7, 2009
Copyright © 2009 SEDRIS Docs by Doxygen 1.3.2