Field containing a rotation. More...
#include <Inventor/fields/SoSFRotation.h>
Public Member Functions | |
virtual SoType | getTypeId () const |
const SoSFRotation & | operator= (const SoSFRotation &f) |
SoSFRotation () | |
virtual | ~SoSFRotation () |
const SbRotation & | getValue () const |
void | setValue (const SbRotation &newValue) |
const SbRotation & | operator= (const SbRotation &newValue) |
int | operator== (const SoSFRotation &f) const |
int | operator!= (const SoSFRotation &f) const |
virtual size_t | getValueSize () const |
void | getValue (SbVec3f &axis, float &angle) const |
void | setValue (float q0, float q1, float q2, float q3) |
void | setValue (const float q[4]) |
void | setValue (const SbVec3f &axis, float angle) |
void | setValue (const SbRotationd &rotd) |
Static Public Member Functions | |
static SoType | getClassTypeId () |
Field containing a rotation.
A field containing a single SbRotation (an arbitrary rotation).
SoSFRotations are written to file as four floating point values separated by whitespace. The 4 values represent an axis of rotation followed by the amount of right-handed rotation about that axis, in radians. For example, a 180 degree rotation about the Y axis is:
0 1 0 3.14159265
NOTE: When you specify an SoSFRotation value using setValue with 4 floating point values, those values will be interpreted as a quaternion (x, y, z, w) rather than an axis and a rotation. To specify an SoSFRotation value using an axis and a rotation, you must use the following method: setValue(const SbVec3f &axis, float angle).
SbRotation, SoField, SoSField, SoMFRotation
SoSFRotation::SoSFRotation | ( | ) |
Default constructor.
virtual SoSFRotation::~SoSFRotation | ( | ) | [virtual] |
Destructor.
static SoType SoSFRotation::getClassTypeId | ( | ) | [static] |
Returns the type identifier for this class.
Reimplemented from SoSField.
virtual SoType SoSFRotation::getTypeId | ( | ) | const [virtual] |
Returns the type identifier for this specific instance.
Implements SoTypedObject.
void SoSFRotation::getValue | ( | SbVec3f & | axis, | |
float & | angle | |||
) | const [inline] |
Gets the value of the field as an axis/angle.
const SbRotation& SoSFRotation::getValue | ( | ) | const [inline] |
Returns this field's value.
virtual size_t SoSFRotation::getValueSize | ( | ) | const [inline, virtual] |
Get size of the value.
Reimplemented from SoField.
int SoSFRotation::operator!= | ( | const SoSFRotation & | f | ) | const [inline] |
Returns FALSE if otherField is of the same type and has the same value as this field.
Reimplemented from SoField.
const SbRotation& SoSFRotation::operator= | ( | const SbRotation & | newValue | ) | [inline] |
Sets this field to newValue.
const SoSFRotation& SoSFRotation::operator= | ( | const SoSFRotation & | f | ) |
Copy from another field of same type.
int SoSFRotation::operator== | ( | const SoSFRotation & | f | ) | const |
Returns TRUE if otherField is of the same type and has the same value as this field.
Reimplemented from SoField.
void SoSFRotation::setValue | ( | const SbRotationd & | rotd | ) |
Convenience method that allows you to specify a field value using a double precision variable.
Note that Open Inventor fields still store only single precision values, not double precision values. The specified value is converted to single precision, then stored.
void SoSFRotation::setValue | ( | const SbVec3f & | axis, | |
float | angle | |||
) |
Sets the field to the rotation given by axis/angle.
void SoSFRotation::setValue | ( | const float | q[4] | ) |
Sets the field to the given quaternion (x, y, z, w).
void SoSFRotation::setValue | ( | float | q0, | |
float | q1, | |||
float | q2, | |||
float | q3 | |||
) |
Sets the field to the given quaternion (x, y, z, w).
void SoSFRotation::setValue | ( | const SbRotation & | newValue | ) |
Sets this field to newValue.