CSIBCRotationd Class Reference

Class representing a generic rotation object. More...

#include <SIBCRotationd.h>

List of all members.

Public Member Functions

  CSIBCRotationd ()
  CSIBCRotationd (const CSIBCQuaterniond &in_quat)
  CSIBCRotationd (const CSIBCRotMatd &in_matRot)
  CSIBCRotationd (const CSIBCVector3Dd &in_vctXYZAngles)
  CSIBCRotationd (double in_dX, double in_dY, double in_dZ)
  CSIBCRotationd (const E3DAxisType in_axis, const double in_dAngle)
  CSIBCRotationd (const CSIBCVector3Dd &in_vctAxis, const double in_dAngle)
  CSIBCRotationd (const CSIBCVector3Dd &in_vctFrom, const CSIBCVector3Dd &in_vctTo)
CSIBCRotationd SetIdentity ()
bool  IsIdentity ()
bool  IsAlmostIdentity (const double &in_rdTolerance=PICO_EPS) const
CSIBCQuaterniond GetQuat (CSIBCQuaterniond &out_quat)
const CSIBCRotMatd GetMatrix ()
CSIBCRotMatd GetMatrix (CSIBCRotMatd &out_matRot)
CSIBCVector3Dd GetXYZAngles (CSIBCVector3Dd &out_vctXYZAngles)
void  GetXYZAngles (double &out_dX, double &out_dY, double &out_dZ)
void  GetAxisAngle (CSIBCVector3Dd &out_vctAxis, double &out_dAngle)
CSIBCRotationd Set (const CSIBCRotationd &in_rot)
CSIBCRotationd Set (const CSIBCQuaterniond &in_quat)
CSIBCRotationd Set (const CSIBCRotMatd &in_matRot)
CSIBCRotationd Set (const CSIBCVector3Dd &in_vctXYZAngles)
CSIBCRotationd Set (double in_dX, double in_dY, double in_dZ)
CSIBCRotationd Set (const E3DAxisType in_axis, const double in_dAngle)
CSIBCRotationd Set (const CSIBCVector3Dd &in_vctAxis, const double in_dAngle)
bool  Set (const CSIBCVector3Dd &in_vctFrom, const CSIBCVector3Dd &in_vctTo, int &out_bFlip)
CSIBCRotationd Set (const CSIBCVector3Dd &in_vctX, const CSIBCVector3Dd &in_vctY, const CSIBCVector3Dd &in_vctZ)
bool  MinAlignToX (const CSIBCVector3Dd &in_vct, int &out_bFlip)
bool  MinAlignToY (const CSIBCVector3Dd &in_vct, int &out_bFlip)
bool  MinAlignToZ (const CSIBCVector3Dd &in_vct, int &out_bFlip)
bool  AlignToX (const CSIBCVector3Dd &in_vct, int &out_bFlip)
bool  AlignToY (const CSIBCVector3Dd &in_vct, int &out_bFlip)
bool  AlignToZ (const CSIBCVector3Dd &in_vct, int &out_bFlip)
bool  AlignAxesToVct (const E3DAxisType in_eFirstAxis, const CSIBCVector3Dd &in_vct1, const E3DAxisType in_eSecondAxis, const CSIBCVector3Dd &in_vct2, int &out_bFlip)
CSIBCRotationd Mul (CSIBCRotationd &in_rot1, CSIBCRotationd &in_rot2)
CSIBCRotationd Mul (CSIBCRotationd &in_rot)
CSIBCRotationd LeftMul (CSIBCRotationd &in_rot)
CSIBCRotationd MulUsingEulerAnglesTarget (CSIBCRotationd &in_rot1, CSIBCRotationd &in_rot2, CSIBCVector3Dd &in_oEulerAngles)
CSIBCRotationd MulAndUpdateEulerAngles (CSIBCRotationd &in_rot1, CSIBCRotationd &in_rot2, ULONG in_ulUseRot1OrUseRot2AsTarget)
CSIBCRotationd Invert (CSIBCRotationd &in_rot)
CSIBCRotationd Invert ()
CSIBCRotationd Interpolate (CSIBCRotationd &in_rot1, CSIBCRotationd &in_rot2, const double in_dU)
CSIBCVector3Dd RotateVct (const CSIBCVector3Dd &in_vct, CSIBCVector3Dd &out_vct)
void  RotateVct (const CSIBCVector3Dd *in_vcts, const LONG in_lNbVcts, CSIBCVector3Dd *out_vcts)
CSIBCVector3Dd InvRotateVct (const CSIBCVector3Dd &in_vct, CSIBCVector3Dd &out_vct)
void  InvRotateVct (const CSIBCVector3Dd *in_vcts, const LONG in_lNbVcts, CSIBCVector3Dd *out_vcts)
bool  operator== (const CSIBCRotationd &in_rot) const
bool  operator!= (const CSIBCRotationd &in_rot) const

Friends

CSIBCVector3Dd MapDirSpaceToWorld (CSIBCRotationd &in_rotFrom, const CSIBCVector3Dd &in_vctDir, CSIBCVector3Dd &out_vctDir)
CSIBCVector3Dd MapDirWorldToSpace (CSIBCRotationd &in_rotTo, const CSIBCVector3Dd &in_vctDir, CSIBCVector3Dd &out_vctDir)
CSIBCVector3Dd MapDirSpaceToSpace (CSIBCRotationd &in_rotFrom, CSIBCRotationd &in_rotTo, const CSIBCVector3Dd &in_vctDir, CSIBCVector3Dd &out_vctDir)
bool  AreAlmostEqual (const CSIBCRotationd &in_rot1, const CSIBCRotationd &in_rot2, const double in_dEpsilon=PICO_EPS)


Detailed Description

Class representing a generic rotation object.

This class is a generic method for representing rotations. It provides a method for representing a rotation without relying on it specific representation. It acts as an interface between different methods of storing rotations. For all operations on rotation objects, double-precision floating point numbers are used. Several useful functions for rotations can be found in Utility functions for angles and rotations.

There are several different specific methods used to store rotations, such as: rotation matricies as in CSIBCRotMatd, quaternions as in CSIBCQuaternion and CSIBCQuaterniond, euler angles, rotations about axis, etc.


Constructor & Destructor Documentation

CSIBCRotationd (  ) 

Default Constructor. Creates a rotation object representing the identity rotation.

See also:
CSIBCRotationd::SetIdentity

CSIBCRotationd ( const CSIBCQuaterniond in_quat  ) 

Constructs a rotation object representing the rotation given by the quaternion in_quat.

Parameters:
[in]  in_quat  Quaternion representing the rotation for the new rotation object.

CSIBCRotationd ( const CSIBCRotMatd in_matRot  ) 

Constructs a rotation object representing the rotation given by the rotation matrix in_matRot.

Parameters:
[in]  in_matRot  Rotation matrix representing the rotation for the new rotation object.

CSIBCRotationd ( const CSIBCVector3Dd in_vctXYZAngles  ) 

Constructs a rotation object representing the rotation given by the set of euler angles (pitch-roll-yaw) in_vctXYZAngles.

Parameters:
[in]  in_vctXYZAngles  Set of euler angles representing the rotation for the new rotation object.

CSIBCRotationd ( double  in_dX,
double  in_dY,
double  in_dZ  
)

Constructs a rotation object representing the rotation given by the set of euler angles (pitch-roll-yaw) in in_dX, in_dY and in_dZ.

Parameters:
[in]  in_dX  The euler angle containing the pitch angle (in radians).
[in]  in_dY  The euler angle containing the roll angle (in radians).
[in]  in_dZ  The euler angle containing the yaw angle (in radians).

CSIBCRotationd ( const E3DAxisType  in_axis,
const double  in_dAngle  
)

Constructs a rotation object representing the rotation given by the rotation of in_dAngle radians about one of the major axis, determined by in_axis.

Parameters:
[in]  in_axis  Major axis of rotation.
[in]  in_dAngle  Angle of rotation about the given major axis (in radians).

CSIBCRotationd ( const CSIBCVector3Dd in_vctAxis,
const double  in_dAngle  
)

Constructs a rotation object representing the rotation given by the rotation of in_dAngle radians about an arbitrary axis, in_vctAxis.

Parameters:
[in]  in_vctAxis  Axis of rotation.
[in]  in_dAngle  Angle of rotation about the given axis (in radians).

CSIBCRotationd ( const CSIBCVector3Dd in_vctFrom,
const CSIBCVector3Dd in_vctTo  
)

Constructs a rotation object representing the rotation required to rotated in_vctFrom to in_vctTo.

Parameters:
[in]  in_vctFrom  Starting point of rotation.
[in]  in_vctTo  Ending point of rotation.
See also:
CSIBCRotationd::Set(const CSIBCVector3Dd&, const CSIBCVector3Dd&, int&)


Member Function Documentation

CSIBCRotationd& SetIdentity (  ) 

Sets this rotation to the identity rotation (no rotation).

Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::IsIdentity

CSIBCRotationd::IsAlmostIdentity

bool IsIdentity (  ) 

Determines whether this rotation is the identity rotation (no rotation).

Note:
This function uses no floating-point error range, meaning that the rotation object must be exactly the identity rotation.
Return values:
true  if the rotation object is the identity rotation
false  otherwise
See also:
CSIBCRotationd::IsAlmostIdentity

CSIBCRotationd::SetIdentity

bool IsAlmostIdentity ( const double &  in_rdTolerance = PICO_EPS  )  const

Determines whether this rotation is the identity rotation (no rotation). Since this function uses floating-point comparison, a threshhold value of in_dEpsilon is used for equality comparison.

Parameters:
[in]  in_rdTolerance  Floating-point comparison error range. Defaults to PICO_EPS.
Return values:
true  if the rotation object is the identity rotation
false  otherwise
See also:
CSIBCRotationd::IsIdentity

CSIBCRotationd::SetIdentity

CSIBCQuaterniond& GetQuat ( CSIBCQuaterniond out_quat  ) 

Returns the quaternion representation of this rotation object.

Parameters:
[out]  out_quat  Receives the quaternion representation of this object.
Returns:
Reference to out_quat.
See also:
CSIBCRotationd::GetMatrix

CSIBCRotationd::GetXYZAngles

CSIBCRotationd::GetAxisAngles

const CSIBCRotMatd* GetMatrix (  ) 

Returns the rotation matrix representation of this rotation object.

Note:
The return value of this function should not be freed.
Returns:
Pointer to the rotation matrix representation of this rotation object.
See also:
CSIBCRotationd::GetQuat

CSIBCRotationd::GetMatrix

CSIBCRotationd::GetXYZAngles

CSIBCRotationd::GetAxisAngles

CSIBCRotMatd& GetMatrix ( CSIBCRotMatd out_matRot  ) 

Returns the rotation matrix representation of this rotation object.

Parameters:
[out]  out_matRot  Receives the rotation matrix representation of this rotation object.
Returns:
Reference to out_matRot.
See also:
CSIBCRotationd::GetQuat

CSIBCRotationd::GetMatrix

CSIBCRotationd::GetXYZAngles

CSIBCRotationd::GetAxisAngles

CSIBCVector3Dd& GetXYZAngles ( CSIBCVector3Dd out_vctXYZAngles  ) 

Returns the euler angles representation of this rotation object (pitch-roll-yaw, in radians).

Parameters:
[out]  out_vctXYZAngles  Receives the euler angles representation of this rotation object.
Returns:
Reference to out_vctXYZAngles.
See also:
CSIBCRotationd::GetXYZAngles

CSIBCRotationd::GetQuat

CSIBCRotationd::GetMatrix

CSIBCRotationd::GetAxisAngles

void GetXYZAngles ( double &  out_dX,
double &  out_dY,
double &  out_dZ  
)

Returns the euler angles representation of this rotation object (pitch-roll-yaw in radians).

Parameters:
[out]  out_dX  Receives the pitch euler angle representation of this rotation object.
[out]  out_dY  Receives the roll euler angle representation of this rotation object.
[out]  out_dZ  Receives the yaw euler angle representation of this rotation object.
See also:
CSIBCRotationd::GetXYZAngles

CSIBCRotationd::GetQuat

CSIBCRotationd::GetMatrix

CSIBCRotationd::GetAxisAngles

void GetAxisAngle ( CSIBCVector3Dd out_vctAxis,
double &  out_dAngle  
)

Returns the axis rotation representation of this rotation object.

Parameters:
[out]  out_vctAxis  Receives the arbitrary axis of rotation of this rotation object.
[out]  out_dAngle  Receives the angle of rotation (in radians) about the axis of rotation for this rotation object.
See also:
CSIBCRotationd::GetXYZAngles

CSIBCRotationd::GetQuat

CSIBCRotationd::GetMatrix

CSIBCRotationd& Set ( const CSIBCRotationd in_rot  ) 

Sets this rotation object from another rotation object in_rot.

Parameters:
[in]  in_rot  Rotation object to set this object equal to.
Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Set

CSIBCRotationd& Set ( const CSIBCQuaterniond in_quat  ) 

Sets this rotation object from a quaternionion, in_quat.

Parameters:
[in]  in_quat  Quaternion representing the rotation to set this object equal to.
Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Set

CSIBCRotationd& Set ( const CSIBCRotMatd in_matRot  ) 

Sets this rotation object from a rotation matrix, in_matRot.

Parameters:
[in]  in_matRot  Rotation matrix representing the rotation to set this object equal to.
Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Set

CSIBCRotationd& Set ( const CSIBCVector3Dd in_vctXYZAngles  ) 

Sets this rotation object from a set of euler angles (pitch-roll-yaw, in radians), in_vctXYZAngles.

Parameters:
[in]  in_vctXYZAngles  Sets of euler angles representing the rotation to set this object equal to.
Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Set

CSIBCRotationd& Set ( double  in_dX,
double  in_dY,
double  in_dZ  
)

Sets this rotation object from a set of euler angles (pitch-roll-yaw, in radians), in_dX, in_dY and in_dZ.

Parameters:
[in]  in_dX  Pitch euler angle representing the rotation to set this object equal to.
[in]  in_dY  Roll euler angle representing the rotation to set this object equal to.
[in]  in_dZ  Yaw euler angle representing the rotation to set this object equal to.
Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Set

CSIBCRotationd& Set ( const E3DAxisType  in_axis,
const double  in_dAngle  
)

Sets this rotation object from a rotation angle in_dAngle about a major axis given by in_axis.

Parameters:
[in]  in_axis  Axis of rotation.
[in]  in_dAngle  Angle of rotation about in_axis to set this rotation object equal to.
Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Set

CSIBCRotationd& Set ( const CSIBCVector3Dd in_vctAxis,
const double  in_dAngle  
)

Sets this rotation object from a rotation angle in_dAngle about an arbitrary axis given by in_vctAxis.

Parameters:
[in]  in_vctAxis  Axis of rotation.
[in]  in_dAngle  Angle of rotation about in_vctAxis to set this rotation object equal to.
Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Set

bool Set ( const CSIBCVector3Dd in_vctFrom,
const CSIBCVector3Dd in_vctTo,
int &  out_bFlip  
)

Sets this object to a rotation that will rotate around the normal of the plane defined by the two given vectors in_vctFrom and in_vctTo (right-hand rule), with an angle defined by the angle between those two vectors.

Parameters:
[in]  in_vctFrom  Starting point of rotation.
[in]  in_vctTo  Ending point of rotation.
[out]  out_bFlip  Set to true if in_vctFrom and in_vctTo are diametrically opposed, in this case, an arbitrary rotation is chosen between in_vctFrom and in_vctTo, false otherwise.
Return values:
true  if the operation was successful and the rotation object was set
false  if one or both of the input vectors is the null vector
See also:
CSIBCRotationd::Set

CSIBCRotationd& Set ( const CSIBCVector3Dd in_vctX,
const CSIBCVector3Dd in_vctY,
const CSIBCVector3Dd in_vctZ  
)

Sets this rotation object to the rotation defined by the X, Y and Z axis of a rotation given by in_vctX, in_vctY and in_vctZ respectively. It is up to the user to ensure that the axis are unity vectors orthogonal to each other.

Parameters:
[in]  in_vctX  X-axis for the rotation to set this rotation object equal to.
[in]  in_vctY  Y-axis for the rotation to set this rotation object equal to.
[in]  in_vctZ  Z-axis for the rotation to set this rotation object equal to.
Returns:
Reference to this rotation object.

bool MinAlignToX ( const CSIBCVector3Dd in_vct,
int &  out_bFlip  
)

Sets this rotation object to align with a given X world axis, using the minimal angular displacement.

Parameters:
[in]  in_vct  X-axis for the world vector to align with.
[out]  out_bFlip  Set to true if the current rotation object is diametrically opposed to in_vct, and indicates that a sudden flip in the rotation object has occurred, false otherwise.
Return values:
true  if the alignment was successful
false  if the input vector in_vct is the null vector.
See also:
CSIBCRotationd::MinAlignToY

CSIBCRotationd::MinAlignToZ

CSIBCRotationd::AlignToX

CSIBCRotationd::AlignAxesToVct

bool MinAlignToY ( const CSIBCVector3Dd in_vct,
int &  out_bFlip  
)

Sets this rotation object to align with a given Y world axis, using the minimal angular displacement.

Parameters:
[in]  in_vct  Y-axis for the world vector to align with.
[out]  out_bFlip  Set to true if the current rotation object is diametrically opposed to in_vct, and indicates that a sudden flip in the rotation object has occurred, false otherwise.
Return values:
true  if the alignment was successful
false  if the input vector in_vct is the null vector.
See also:
CSIBCRotationd::MinAlignToX

CSIBCRotationd::MinAlignToZ

CSIBCRotationd::AlignToY

CSIBCRotationd::AlignAxesToVct

bool MinAlignToZ ( const CSIBCVector3Dd in_vct,
int &  out_bFlip  
)

Sets this rotation object to align with a given Z world axis, using the minimal angular displacement.

Parameters:
[in]  in_vct  Z-axis for the world vector to align with.
[out]  out_bFlip  Set to true if the current rotation object is diametrically opposed to in_vct, and indicates that a sudden flip in the rotation object has occurred, false otherwise.
Return values:
true  if the alignment was successful
false  if the input vector in_vct is the null vector.
See also:
CSIBCRotationd::MinAlignToX

CSIBCRotationd::MinAlignToY

CSIBCRotationd::AlignToZ

CSIBCRotationd::AlignAxesToVct

bool AlignToX ( const CSIBCVector3Dd in_vct,
int &  out_bFlip  
)

Aligns this rotation object to align with a given X world axis.

Parameters:
[in]  in_vct  X-axis for the world vector to align with.
[out]  out_bFlip  Set to true if the current rotation object is diametrically opposed to in_vct, and indicates that a sudden flip in the rotation object has occurred, false otherwise.
Return values:
true  if the alignment was successful
false  if the input vector in_vct is the null vector.
See also:
CSIBCRotationd::AlignToY

CSIBCRotationd::AlignToZ

CSIBCRotationd::MinAlignToX

CSIBCRotationd::AlignAxesToVct

bool AlignToY ( const CSIBCVector3Dd in_vct,
int &  out_bFlip  
)

Aligns this rotation object to align with a given Y world axis.

Parameters:
[in]  in_vct  Y-axis for the world vector to align with.
[out]  out_bFlip  Set to true if the current rotation object is diametrically opposed to in_vct, and indicates that a sudden flip in the rotation object has occurred, false otherwise.
Return values:
true  if the alignment was successful
false  if the input vector in_vct is the null vector.
See also:
CSIBCRotationd::AlignToX

CSIBCRotationd::AlignToZ

CSIBCRotationd::MinAlignToY

CSIBCRotationd::AlignAxesToVct

bool AlignToZ ( const CSIBCVector3Dd in_vct,
int &  out_bFlip  
)

Aligns this rotation object to align with a given Z world axis.

Parameters:
[in]  in_vct  Z-axis for the world vector to align with.
[out]  out_bFlip  Set to true if the current rotation object is diametrically opposed to in_vct, and indicates that a sudden flip in the rotation object has occurred, false otherwise.
Return values:
true  if the alignment was successful
false  if the input vector in_vct is the null vector.
See also:
CSIBCRotationd::AlignToX

CSIBCRotationd::AlignToY

CSIBCRotationd::MinAlignToZ

CSIBCRotationd::AlignAxesToVct

bool AlignAxesToVct ( const E3DAxisType  in_eFirstAxis,
const CSIBCVector3Dd in_vct1,
const E3DAxisType  in_eSecondAxis,
const CSIBCVector3Dd in_vct2,
int &  out_bFlip  
)

Aligns this rotation object first with the major axis given by in_eFirstAxis, with an axis vector of in_vct1, then aligns the rotation object with the major axis given by in_eSecondAxis, with an axis vector of in_vct2.

Parameters:
[in]  in_eFirstAxis  The major axis of the first alignment.
[in]  in_vct1  The world vector for the major axis defined by in_eFirstAxis.
[in]  in_eSecondAxis  The major axis of the secodn alignment.
[in]  in_vct2  The world vector for the major axis defined by in_eSecondAxis.
[out]  out_bFlip  Set to true if the current rotation object is diametrically opposed to in_vct1, during the first alignment, or in_vct2, during the second alignment. If true, indicates that a sudden flip in the rotation object has occurred, false otherwise.
Return values:
true  if the alignment was successful
false  if the alignment axes in in_eFirstAxis and in_eSecondAxis are the same.
See also:
CSIBCRotationd::AlignToX

CSIBCRotationd::AlignToY

CSIBCRotationd::AlignToZ

CSIBCRotationd& Mul ( CSIBCRotationd in_rot1,
CSIBCRotationd in_rot2  
)

Computes the multiplication of in_rot1 and in_rot2 (in_rot1 * in_rot2), and stores the result in this rotation object.

Parameters:
[in]  in_rot1  First rotation object in the multiplication (on the left).
[in]  in_rot2  Second rotation object in the multiplication (on the right).
Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Mul

CSIBCRotationd::LeftMul

CSIBCRotationd::MulUsingEulerAnglesTarget

CSIBCRotationd::MulAndUpdateEulerAngles

CSIBCRotationd& Mul ( CSIBCRotationd in_rot  ) 

Computes the multiplication of this rotation object and in_rot (this * in_rot), and stores the result in this rotation object.

Parameters:
[in]  in_rot  Rotation object in the multiplication (on the right).
Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Mul

CSIBCRotationd::LeftMul

CSIBCRotationd::MulUsingEulerAnglesTarget

CSIBCRotationd::MulAndUpdateEulerAngles

CSIBCRotationd& LeftMul ( CSIBCRotationd in_rot  ) 

Computes the multiplication of in_rot and this rotation object (in_rot * this), and stores the result in this rotation object.

Parameters:
[in]  in_rot  Rotation object in the multiplication (on the left).
Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Mul

CSIBCRotationd::LeftMul

CSIBCRotationd::MulUsingEulerAnglesTarget

CSIBCRotationd::MulAndUpdateEulerAngles

CSIBCRotationd& MulUsingEulerAnglesTarget ( CSIBCRotationd in_rot1,
CSIBCRotationd in_rot2,
CSIBCVector3Dd in_oEulerAngles  
)

Computes the multiplication of in_rot1 and in_rot2 (in_rot1 * in_rot2), and stores the result in this rotation object. The result sets the euler angles associated with the resultant rotation object closest to the set of euler angles given by in_oEulerAngles.

Parameters:
[in]  in_rot1  First rotation object in the multiplication (on the left).
[in]  in_rot2  Second rotation object in the multiplication (on the right).
[in]  in_oEulerAngles  Euler angles most closely representing the desired euler angles (used only with euler angle extraction of this object).
Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Mul

CSIBCRotationd::LeftMul

CSIBCRotationd::MulAndUpdateEulerAngles

CSIBCRotationd& MulAndUpdateEulerAngles ( CSIBCRotationd in_rot1,
CSIBCRotationd in_rot2,
ULONG  in_ulUseRot1OrUseRot2AsTarget  
)

Computes the multiplication of in_rot1 and in_rot2 (in_rot1 * in_rot2), and stores the result in this rotation object. The result sets the euler angles associated with the resultant rotation object closest to the set of euler angles given by in_rot1 or in_rot2 depending on the value of in_ulUseRot1OrUseRot2AsTarget.

Parameters:
[in]  in_rot1  First rotation object in the multiplication (on the left).
[in]  in_rot2  Second rotation object in the multiplication (on the right).
[in]  in_ulUseRot1OrUseRot2AsTarget  If 1, uses in_rot1 as the euler angle target, if 2, uses in_rot2 as the euler angle target.
Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Mul

CSIBCRotationd::LeftMul

CSIBCRotationd::MulUsingEulerAnglesTarget

CSIBCRotationd& Invert ( CSIBCRotationd in_rot  ) 

Sets this rotation object to the inverse of in_rot.

Parameters:
[in]  in_rot  Rotation object containing the inverse to set as this rotation object.
Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Invert

CSIBCRotationd& Invert (  ) 

Sets this rotation object to its inverse.

Returns:
Reference to this rotation object.
See also:
CSIBCRotationd::Invert

CSIBCRotationd& Interpolate ( CSIBCRotationd in_rot1,
CSIBCRotationd in_rot2,
const double  in_dU  
)

Sets this rotation object to the interpolation between the rotation objects in_rot1, and in_rot2 at a point of in_dU between them.

Parameters:
[in]  in_rot1  Starting point for rotation interpolation.
[in]  in_rot2  Ending point for rotation interpolation.
[in]  in_dU  Interpolation between in_rot1 and in_rot2, in the range [0.0f, 1.0f].
Returns:
Reference to this rotation object.

CSIBCVector3Dd& RotateVct ( const CSIBCVector3Dd in_vct,
CSIBCVector3Dd out_vct  
)

Applies this rotation object to a single vector.

Parameters:
[in]  in_vct  The vector to be rotated.
[out]  out_vct  Receives the rotated vector.
Returns:
Reference to out_vct.
See also:
CSIBCRotationd::RotateVct

CSIBCRotationd::InvRotateVct

void RotateVct ( const CSIBCVector3Dd in_vcts,
const LONG  in_lNbVcts,
CSIBCVector3Dd out_vcts  
)

Applies this rotation object to multiple vectors.

Parameters:
[in]  in_vcts  Array of vectors.
[in]  in_lNbVcts  Number of vectors in in_vcts (and out_vcts).
[out]  out_vcts  Array of vectors receiving the array rotated vectors.
See also:
CSIBCRotationd::RotateVct

CSIBCRotationd::InvRotateVct

CSIBCVector3Dd& InvRotateVct ( const CSIBCVector3Dd in_vct,
CSIBCVector3Dd out_vct  
)

Applies the inverse of this rotation object to a single vector.

Parameters:
[in]  in_vct  The vector to be rotated.
[out]  out_vct  Receives the rotated vector.
Returns:
Reference to out_vct.
See also:
CSIBCRotationd::InvRotateVct

CSIBCRotationd::RotateVct

void InvRotateVct ( const CSIBCVector3Dd in_vcts,
const LONG  in_lNbVcts,
CSIBCVector3Dd out_vcts  
)

Applies the inverse of this rotation object to multiple vectors.

Parameters:
[in]  in_vcts  Array of vectors.
[in]  in_lNbVcts  Number of vectors in in_vcts (and out_vcts).
[out]  out_vcts  Array of vectors receiving the array rotated vectors.
See also:
CSIBCRotationd::InvRotateVct

CSIBCRotationd::RotateVct

bool operator== ( const CSIBCRotationd in_rot  )  const

Not implemented yet

Parameters:
in_rot  n/a

bool operator!= ( const CSIBCRotationd in_rot  )  const

Not implemented yet

Parameters:
in_rot  n/a


Friends And Related Function Documentation

CSIBCVector3Dd& MapDirSpaceToWorld ( CSIBCRotationd in_rotFrom,
const CSIBCVector3Dd in_vctDir,
CSIBCVector3Dd out_vctDir  
) [friend]

Maps a direction vector in_vctDir from an orientation space, given by in_rotFrom, to world orientation space.

Parameters:
[in]  in_rotFrom  Rotation object representing the orientation space which in_vctDir is defined in.
[in]  in_vctDir  The direction vector, defined in in_rotFrom.
[out]  out_vctDir  Receives in_vctDir mapped from in_rotFrom to world orientation space. return Reference to out_vctDir
See also:
CSIBCRotationd::MapDirWorldToSpace

CSIBCRotationd::MapDirSpaceToSpace

CSIBCVector3Dd& MapDirWorldToSpace ( CSIBCRotationd in_rotTo,
const CSIBCVector3Dd in_vctDir,
CSIBCVector3Dd out_vctDir  
) [friend]

Maps a direction vector in_vctDir from world orientation space, to an orientation space given by in_rotTo.

Parameters:
[in]  in_rotTo  The orientation space to map in_vctDir to.
[in]  in_vctDir  The direction vector, defined in world orientation space.
[out]  out_vctDir  Receives in_vctDir mapped from world orientation space to in_rotFrom. return Reference to out_vctDir
See also:
CSIBCRotationd::MapDirSpaceToWorld

CSIBCRotationd::MapDirSpaceToSpace

CSIBCVector3Dd& MapDirSpaceToSpace ( CSIBCRotationd in_rotFrom,
CSIBCRotationd in_rotTo,
const CSIBCVector3Dd in_vctDir,
CSIBCVector3Dd out_vctDir  
) [friend]

Maps a direction vector in_vctDir from one orientation space in_rotFrom, to an another orientation space in_rotTo.

Parameters:
[in]  in_rotFrom  Rotation object representing the orientation space which in_vctDir is defined in.
[in]  in_rotTo  The orientation space to map in_vctDir to.
[in]  in_vctDir  The direction vector, defined in world orientation space.
[out]  out_vctDir  Receives in_vctDir mapped from world orientation space to in_rotFrom. return Reference to out_vctDir
See also:
CSIBCRotationd::MapDirSpaceToWorld

CSIBCRotationd::MapDirWorldToSpace

bool AreAlmostEqual ( const CSIBCRotationd in_rot1,
const CSIBCRotationd in_rot2,
const double  in_dEpsilon = PICO_EPS  
) [friend]

Not implemented yet

Parameters:
in_rot1  n/a
in_rot2  n/a
in_dEpsilon  n/a


The documentation for this class was generated from the following file: