Home | Download | Screen shots | Discussion | Documentation |
---|
#include <openvrml/basetypes.h>
Public Member Functions | |
quatf () throw () | |
Default constructor. | |
quatf (float x, float y, float z, float w) throw () | |
Construct from four values. | |
quatf (const float(&quat)[4]) throw () | |
Construct from an array of four values. | |
quatf (const rotation &rot) throw () | |
Construct from an rotation. | |
quatf (const mat4f &mat) throw () | |
Construct from a rotation matrix. | |
quatf & | operator *= (const quatf &quat) throw () |
Multiply by a quaternion. | |
quatf & | operator *= (float scalar) throw () |
Multiply by a scalar. | |
quatf & | operator/= (float scalar) throw () |
Divide by a scalar. | |
quatf & | operator+= (const quatf &quat) throw () |
Add a quaternion. | |
quatf & | operator-= (const quatf &quat) throw () |
Subtract a quaternion. | |
const float & | operator[] (size_t index) const throw () |
Array element dereference operator (const version). | |
float & | operator[] (size_t index) throw () |
Array element dereference operator (non-const version). | |
float | x () const throw () |
Get the x component. | |
float | y () const throw () |
Get the y component. | |
float | z () const throw () |
Get the z component. | |
float | w () const throw () |
Get the w component. | |
void | x (float value) throw () |
Set the x component. | |
void | y (float value) throw () |
Set the y component. | |
void | z (float value) throw () |
Set the z component. | |
void | w (float value) throw () |
Set the w component. | |
const quatf | conjugate () const throw () |
Get the conjugate. | |
const quatf | inverse () const throw () |
Get the inverse. | |
float | norm () const throw () |
Get the norm. | |
const quatf | normalize () const throw () |
Normalize the quaternion. | |
Private Attributes | |
float | quat [4] |
An array comprising the quaternion components. | |
Friends | |
std::istream & | operator>> (std::istream &in, quatf &q) |
Stream input. | |
Related Functions | |
(Note that these are not member functions.) | |
const openvrml::quatf | operator * (const quatf &lhs, const quatf &rhs) throw() |
Multiply two quaternions. | |
const openvrml::quatf | operator * (const quatf &quat, const float scalar) throw() |
Multiply a quaternion by a scalar. | |
const openvrml::quatf | operator * (const float scalar, const quatf &quat) throw() |
Multiply a scalar by a quaternion. | |
const openvrml::quatf | operator/ (const quatf &quat, const float scalar) throw() |
Divide a quaternion by a scalar. | |
const openvrml::quatf | operator+ (const quatf &lhs, const quatf &rhs) throw() |
Add two quaternions. | |
const openvrml::quatf | operator- (const quatf &lhs, const quatf &rhs) throw() |
Take the difference between two quaternions. | |
std::ostream & | operator<< (std::ostream &out, const quatf &quat) |
Stream output. | |
bool | operator== (const quatf &lhs, const quatf &rhs) throw() |
Compare for equality. | |
bool | operator!= (const quatf &lhs, const quatf &rhs) throw() |
Compare for inequality. |
openvrml::quatf::quatf | ( | ) | throw () |
Default constructor.
openvrml::quatf::quatf | ( | float | x, | |
float | y, | |||
float | z, | |||
float | w | |||
) | throw () |
Construct from four values.
[in] | x | the x vector component. |
[in] | y | the y vector component. |
[in] | z | the z vector component. |
[in] | w | the scalar value w. |
openvrml::quatf::quatf | ( | const float & | quat[4] | ) | throw () [explicit] |
Construct from an array of four values.
[in] | quat | the first three values in the array are used for the x, y, and z vector components, respectively. The fourth value in the array is used for the scalar part of the quaternion. |
openvrml::quatf::quatf | ( | const rotation & | rot | ) | throw () [explicit] |
Construct from an rotation.
[in] | rot | a rotation. |
openvrml::quatf::quatf | ( | const mat4f & | mat | ) | throw () [explicit] |
Construct from a rotation matrix.
[in] | mat | a rotation matrix. |
openvrml::quatf & openvrml::quatf::operator *= | ( | const quatf & | quat | ) | throw () |
Multiply by a quaternion.
[in] | quat | the quaternion by which to multiply. |
openvrml::quatf & openvrml::quatf::operator *= | ( | float | scalar | ) | throw () |
Multiply by a scalar.
[in] | scalar | value by which to multiply. |
openvrml::quatf & openvrml::quatf::operator/= | ( | float | scalar | ) | throw () |
Divide by a scalar.
[in] | scalar | value by which to divide. |
openvrml::quatf & openvrml::quatf::operator+= | ( | const quatf & | quat | ) | throw () |
Add a quaternion.
[in] | quat | the quaternion to add. |
openvrml::quatf & openvrml::quatf::operator-= | ( | const quatf & | quat | ) | throw () |
Subtract a quaternion.
[in] | quat | the quaternion to subtract. |
const float & openvrml::quatf::operator[] | ( | size_t | index | ) | const throw () [inline] |
Array element dereference operator (const version).
[in] | index | an index from 0–3. |
index
is not larger than 3. float & openvrml::quatf::operator[] | ( | size_t | index | ) | throw () [inline] |
Array element dereference operator (non-const version).
[in] | index | an index from 0–3. |
index
is not larger than 3. float openvrml::quatf::x | ( | ) | const throw () [inline] |
Get the x component.
float openvrml::quatf::y | ( | ) | const throw () [inline] |
Get the y component.
float openvrml::quatf::z | ( | ) | const throw () [inline] |
Get the z component.
float openvrml::quatf::w | ( | ) | const throw () [inline] |
Get the w component.
void openvrml::quatf::x | ( | float | value | ) | throw () [inline] |
Set the x component.
[in] | value | x component value. |
void openvrml::quatf::y | ( | float | value | ) | throw () [inline] |
Set the y component.
[in] | value | y component value. |
void openvrml::quatf::z | ( | float | value | ) | throw () [inline] |
Set the z component.
[in] | value | z component value. |
void openvrml::quatf::w | ( | float | value | ) | throw () [inline] |
Set the w component.
[in] | value | w component value. |
const openvrml::quatf openvrml::quatf::conjugate | ( | ) | const throw () |
Get the conjugate.
const openvrml::quatf openvrml::quatf::inverse | ( | ) | const throw () |
Get the inverse.
float openvrml::quatf::norm | ( | ) | const throw () |
Get the norm.
const openvrml::quatf openvrml::quatf::normalize | ( | ) | const throw () |
Normalize the quaternion.
std::istream& operator>> | ( | std::istream & | in, | |
quatf & | q | |||
) | [friend] |
Stream input.
Consistent with the VRML97 convention, commas (“,”) in the input are treated as whitespace.
[in,out] | in | input stream. |
[out] | q | a quatf . |
in
. const openvrml::quatf operator * | ( | const quatf & | lhs, | |
const quatf & | rhs | |||
) | throw() [related] |
Multiply two quaternions.
[in] | lhs | left-hand operand. |
[in] | rhs | right-hand operand. |
lhs
and rhs
. const openvrml::quatf operator * | ( | const quatf & | quat, | |
const float | scalar | |||
) | throw() [related] |
Multiply a quaternion by a scalar.
[in] | quat | quaternion. |
[in] | scalar | scalar. |
quat
and scalar
. const openvrml::quatf operator * | ( | const float | scalar, | |
const quatf & | quat | |||
) | throw() [related] |
Multiply a scalar by a quaternion.
[in] | scalar | scalar. |
[in] | quat | quaternion. |
scalar
and quat
. const openvrml::quatf operator/ | ( | const quatf & | quat, | |
const float | scalar | |||
) | throw() [related] |
Divide a quaternion by a scalar.
[in] | quat | quaternion. |
[in] | scalar | scalar. |
quat
by scalar
. const openvrml::quatf operator+ | ( | const quatf & | lhs, | |
const quatf & | rhs | |||
) | throw() [related] |
Add two quaternions.
[in] | lhs | left-hand operand. |
[in] | rhs | right-hand operand. |
lhs
and rhs
. const openvrml::quatf operator- | ( | const quatf & | lhs, | |
const quatf & | rhs | |||
) | throw() [related] |
Take the difference between two quaternions.
[in] | lhs | left-hand operand. |
[in] | rhs | right-hand operand. |
lhs
and rhs
. std::ostream & operator<< | ( | std::ostream & | out, | |
const quatf & | quat | |||
) | [related] |
Stream output.
[in,out] | out | an output stream. |
[in] | quat | a quaternion. |
out
. Compare for equality.
[in] | lhs | left-hand operand. |
[in] | rhs | right-hand operand. |
true
if lhs
and rhs
are equal; false
otherwise. Compare for inequality.
[in] | lhs | left-hand operand. |
[in] | rhs | right-hand operand. |
true
if lhs
and rhs
are not equal; false
otherwise.
float openvrml::quatf::quat[4] [private] |
An array comprising the quaternion components.
For internal use only.