Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::Quat Class Reference

List of all members.

Public Types

typedef double value_type

Public Member Functions

 Quat ()
 Quat (value_type x, value_type y, value_type z, value_type w)
 Quat (const Vec4f &v)
 Quat (const Vec4d &v)
 Quat (value_type angle, const Vec3f &axis)
 Quat (value_type angle, const Vec3d &axis)
 Quat (value_type angle1, const Vec3f &axis1, value_type angle2, const Vec3f &axis2, value_type angle3, const Vec3f &axis3)
 Quat (value_type angle1, const Vec3d &axis1, value_type angle2, const Vec3d &axis2, value_type angle3, const Vec3d &axis3)
Quat & operator= (const Quat &v)
bool operator== (const Quat &v) const
bool operator!= (const Quat &v) const
bool operator< (const Quat &v) const
Vec4d asVec4 () const
Vec3d asVec3 () const
void set (value_type x, value_type y, value_type z, value_type w)
void set (const osg::Vec4f &v)
void set (const osg::Vec4d &v)
void set (const Matrixf &matrix)
void set (const Matrixd &matrix)
void get (Matrixf &matrix) const
void get (Matrixd &matrix) const
value_type & operator[] (int i)
value_type operator[] (int i) const
value_type & x ()
value_type & y ()
value_type & z ()
value_type & w ()
value_type x () const
value_type y () const
value_type z () const
value_type w () const
bool zeroRotation () const
const Quat operator * (value_type rhs) const
 Multiply by scalar.
Quat & operator *= (value_type rhs)
 Unary multiply by scalar.
const Quat operator * (const Quat &rhs) const
 Binary multiply.
Quat & operator *= (const Quat &rhs)
 Unary multiply.
Quat operator/ (value_type rhs) const
 Divide by scalar.
Quat & operator/= (value_type rhs)
 Unary divide by scalar.
const Quat operator/ (const Quat &denom) const
 Binary divide.
Quat & operator/= (const Quat &denom)
 Unary divide.
const Quat operator+ (const Quat &rhs) const
 Binary addition.
Quat & operator+= (const Quat &rhs)
 Unary addition.
const Quat operator- (const Quat &rhs) const
 Binary subtraction.
Quat & operator-= (const Quat &rhs)
 Unary subtraction.
const Quat operator- () const
value_type length () const
 Length of the quaternion = sqrt( vec . vec ).
value_type length2 () const
 Length of the quaternion = vec . vec.
Quat conj () const
 Conjugate.
const Quat inverse () const
 Multiplicative inverse method: q^(-1) = q^*/(q.q^*).
void makeRotate (value_type angle, value_type x, value_type y, value_type z)
void makeRotate (value_type angle, const Vec3f &vec)
void makeRotate (value_type angle, const Vec3d &vec)
void makeRotate (value_type angle1, const Vec3f &axis1, value_type angle2, const Vec3f &axis2, value_type angle3, const Vec3f &axis3)
void makeRotate (value_type angle1, const Vec3d &axis1, value_type angle2, const Vec3d &axis2, value_type angle3, const Vec3d &axis3)
void makeRotate (const Vec3f &vec1, const Vec3f &vec2)
void makeRotate (const Vec3d &vec1, const Vec3d &vec2)
void getRotate (value_type &angle, value_type &x, value_type &y, value_type &z) const
void getRotate (value_type &angle, Vec3f &vec) const
void getRotate (value_type &angle, Vec3d &vec) const
void slerp (value_type t, const Quat &from, const Quat &to)
Vec3f operator * (const Vec3f &v) const
Vec3d operator * (const Vec3d &v) const

Public Attributes

value_type _v [4]

Friends

std::ostream & operator<< (std::ostream &output, const Quat &vec)

Detailed Description

A quaternion class. It can be used to represent an orientation in 3D space.


Member Typedef Documentation

typedef double osg::Quat::value_type
 


Constructor & Destructor Documentation

osg::Quat::Quat (   )  [inline]
 

osg::Quat::Quat (  value_type  x,
value_type  y,
value_type  z,
value_type  w
)  [inline]
 

osg::Quat::Quat (  const Vec4f &  v  )  [inline]
 

osg::Quat::Quat (  const Vec4d &  v  )  [inline]
 

osg::Quat::Quat (  value_type  angle,
const Vec3f &  axis
)  [inline]
 

osg::Quat::Quat (  value_type  angle,
const Vec3d &  axis
)  [inline]
 

osg::Quat::Quat (  value_type  angle1,
const Vec3f &  axis1,
value_type  angle2,
const Vec3f &  axis2,
value_type  angle3,
const Vec3f &  axis3
)  [inline]
 

osg::Quat::Quat (  value_type  angle1,
const Vec3d &  axis1,
value_type  angle2,
const Vec3d &  axis2,
value_type  angle3,
const Vec3d &  axis3
)  [inline]
 


Member Function Documentation

Vec3d osg::Quat::asVec3 (   )  const [inline]
 

Vec4d osg::Quat::asVec4 (   )  const [inline]
 

Quat osg::Quat::conj (   )  const [inline]
 

Conjugate.

void osg::Quat::get (  Matrixd &  matrix  )  const
 

void osg::Quat::get (  Matrixf &  matrix  )  const
 

void osg::Quat::getRotate (  value_type &  angle,
Vec3d &  vec
)  const
 

Return the angle and vector represented by the quaternion.

void osg::Quat::getRotate (  value_type &  angle,
Vec3f &  vec
)  const
 

Return the angle and vector represented by the quaternion.

void osg::Quat::getRotate (  value_type &  angle,
value_type &  x,
value_type &  y,
value_type &  z
)  const
 

Return the angle and vector components represented by the quaternion.

const Quat osg::Quat::inverse (   )  const [inline]
 

Multiplicative inverse method: q^(-1) = q^*/(q.q^*).

value_type osg::Quat::length (   )  const [inline]
 

Length of the quaternion = sqrt( vec . vec ).

value_type osg::Quat::length2 (   )  const [inline]
 

Length of the quaternion = vec . vec.

void osg::Quat::makeRotate (  const Vec3d &  vec1,
const Vec3d &  vec2
) 
 

Make a rotation Quat which will rotate vec1 to vec2. Generally take a dot product to get the angle between these and then use a cross product to get the rotation axis Watch out for the two special cases of when the vectors are co-incident or opposite in direction.

void osg::Quat::makeRotate (  const Vec3f &  vec1,
const Vec3f &  vec2
) 
 

Make a rotation Quat which will rotate vec1 to vec2. Generally take a dot product to get the angle between these and then use a cross product to get the rotation axis Watch out for the two special cases when the vectors are co-incident or opposite in direction.

void osg::Quat::makeRotate (  value_type  angle1,
const Vec3d &  axis1,
value_type  angle2,
const Vec3d &  axis2,
value_type  angle3,
const Vec3d &  axis3
) 
 

void osg::Quat::makeRotate (  value_type  angle1,
const Vec3f &  axis1,
value_type  angle2,
const Vec3f &  axis2,
value_type  angle3,
const Vec3f &  axis3
) 
 

void osg::Quat::makeRotate (  value_type  angle,
const Vec3d &  vec
) 
 

void osg::Quat::makeRotate (  value_type  angle,
const Vec3f &  vec
) 
 

void osg::Quat::makeRotate (  value_type  angle,
value_type  x,
value_type  y,
value_type  z
) 
 

Vec3d osg::Quat::operator * (  const Vec3d &  v  )  const [inline]
 

Rotate a vector by this quaternion.

Vec3f osg::Quat::operator * (  const Vec3f &  v  )  const [inline]
 

Rotate a vector by this quaternion.

const Quat osg::Quat::operator * (  const Quat &  rhs  )  const [inline]
 

Binary multiply.

const Quat osg::Quat::operator * (  value_type  rhs  )  const [inline]
 

Multiply by scalar.

Quat& osg::Quat::operator *= (  const Quat &  rhs  )  [inline]
 

Unary multiply.

Quat& osg::Quat::operator *= (  value_type  rhs  )  [inline]
 

Unary multiply by scalar.

bool osg::Quat::operator!= (  const Quat &  v  )  const [inline]
 

const Quat osg::Quat::operator+ (  const Quat &  rhs  )  const [inline]
 

Binary addition.

Quat& osg::Quat::operator+= (  const Quat &  rhs  )  [inline]
 

Unary addition.

const Quat osg::Quat::operator- (   )  const [inline]
 

Negation operator - returns the negative of the quaternion. Basically just calls operator - () on the Vec4

const Quat osg::Quat::operator- (  const Quat &  rhs  )  const [inline]
 

Binary subtraction.

Quat& osg::Quat::operator-= (  const Quat &  rhs  )  [inline]
 

Unary subtraction.

const Quat osg::Quat::operator/ (  const Quat &  denom  )  const [inline]
 

Binary divide.

Quat osg::Quat::operator/ (  value_type  rhs  )  const [inline]
 

Divide by scalar.

Quat& osg::Quat::operator/= (  const Quat &  denom  )  [inline]
 

Unary divide.

Quat& osg::Quat::operator/= (  value_type  rhs  )  [inline]
 

Unary divide by scalar.

bool osg::Quat::operator< (  const Quat &  v  )  const [inline]
 

Quat& osg::Quat::operator= (  const Quat &  v  )  [inline]
 

bool osg::Quat::operator== (  const Quat &  v  )  const [inline]
 

value_type osg::Quat::operator[] (  int  i  )  const [inline]
 

value_type& osg::Quat::operator[] (  int  i  )  [inline]
 

void osg::Quat::set (  const Matrixd &  matrix  ) 
 

void osg::Quat::set (  const Matrixf &  matrix  ) 
 

void osg::Quat::set (  const osg::Vec4d &  v  )  [inline]
 

void osg::Quat::set (  const osg::Vec4f &  v  )  [inline]
 

void osg::Quat::set (  value_type  x,
value_type  y,
value_type  z,
value_type  w
)  [inline]
 

void osg::Quat::slerp (  value_type  t,
const Quat &  from,
const Quat &  to
) 
 

Spherical Linear Interpolation. As t goes from 0 to 1, the Quat object goes from "from" to "to".

value_type osg::Quat::w (   )  const [inline]
 

value_type& osg::Quat::w (   )  [inline]
 

value_type osg::Quat::x (   )  const [inline]
 

value_type& osg::Quat::x (   )  [inline]
 

value_type osg::Quat::y (   )  const [inline]
 

value_type& osg::Quat::y (   )  [inline]
 

value_type osg::Quat::z (   )  const [inline]
 

value_type& osg::Quat::z (   )  [inline]
 

bool osg::Quat::zeroRotation (   )  const [inline]
 

return true if the Quat represents a zero rotation, and therefore can be ignored in computations.


Friends And Related Function Documentation

std::ostream& operator<< (  std::ostream &  output,
const Quat &  vec
)  [friend]
 


Member Data Documentation

value_type osg::Quat::_v[4]
 


The documentation for this class was generated from the following file:
Generated on Fri May 13 15:15:48 2005 for openscenegraph by  doxygen 1.4.2