Home | Download | Screen shots | Discussion | Documentation |
---|
#include <openvrml/field_value.h>
Per the VRML97 specification, the axis of an sfrotation is a normalized vector (5.8). The specification leaves undefined how to deal with an attempt to construct an sfrotation from an axis vector that is not normalized. In order to allow users of the library to minimize the number of normalizations, openvrml takes the following approach:
Public Types | |
typedef rotation | value_type |
Type of value. | |
Public Member Functions | |
sfrotation (const rotation &rot=rotation()) throw () | |
Construct. | |
sfrotation (const sfrotation &sfr) | |
Construct a copy. | |
virtual | ~sfrotation () throw () |
Destroy. | |
sfrotation & | operator= (const sfrotation &sfr) throw ( std::bad_alloc ) |
Assign. | |
const value_type & | value () const throw () |
Access. | |
void | value (const value_type &val) throw ( std::bad_alloc ) |
Mutate. | |
void | swap (sfrotation &sfr) throw () |
Swap. | |
Static Public Attributes | |
static const type_id | field_value_type_id = sfrotation_id |
field_value::type_id for this class. | |
Private Member Functions | |
virtual std::auto_ptr < field_value > | do_clone () const throw ( std::bad_alloc ) |
Polymorphically construct a copy. | |
virtual sfrotation & | do_assign (const field_value &value) throw ( std::bad_cast ) |
Virtual assignment. | |
virtual type_id | do_type () const throw () |
Get the field_value::type_id associated with this class. | |
virtual void | print (std::ostream &out) const |
Print to an output stream. | |
Related Functions | |
(Note that these are not member functions.) | |
bool | operator== (const sfrotation &lhs, const sfrotation &rhs) throw() |
Compare for equality. | |
bool | operator!= (const sfrotation &lhs, const sfrotation &rhs) throw() |
Compare for inequality. | |
template<> void | swap (openvrml::sfrotation &a, openvrml::sfrotation &b) |
Swap the values of a and b . |
Type of value.
Construct.
[in] | rot | initial value. |
openvrml::sfrotation::sfrotation | ( | const sfrotation & | sfr | ) |
Construct a copy.
[in] | sfr | the instance to copy. |
openvrml::sfrotation::~sfrotation | ( | ) | throw () [virtual] |
Destroy.
openvrml::sfrotation & openvrml::sfrotation::operator= | ( | const sfrotation & | sfr | ) | throw ( std::bad_alloc ) |
Assign.
[in] | sfr | the value to assign. |
std::bad_alloc | if memory allocation fails. |
const openvrml::sfrotation::value_type & openvrml::sfrotation::value | ( | ) | const throw () |
void openvrml::sfrotation::value | ( | const value_type & | val | ) | throw ( std::bad_alloc ) |
Mutate.
[in] | val | the new value. |
std::bad_alloc | if memory allocation fails. |
void openvrml::sfrotation::swap | ( | sfrotation & | sfr | ) | throw () |
Swap.
[in,out] | sfr | the value to swap with this one. |
std::auto_ptr< openvrml::field_value > openvrml::sfrotation::do_clone | ( | ) | const throw ( std::bad_alloc ) [private, virtual] |
Polymorphically construct a copy.
std::bad_alloc | if memory allocation fails. |
Implements openvrml::field_value.
openvrml::sfrotation & openvrml::sfrotation::do_assign | ( | const field_value & | value | ) | throw ( std::bad_cast ) [private, virtual] |
Virtual assignment.
[in] | value | the new value to give the object. |
std::bad_cast | if value is not an sfrotation. |
Implements openvrml::field_value.
openvrml::field_value::type_id openvrml::sfrotation::do_type | ( | ) | const throw () [private, virtual] |
Get the field_value::type_id
associated with this class.
field_value::sfrotation
. Implements openvrml::field_value.
void openvrml::sfrotation::print | ( | std::ostream & | out | ) | const [private, virtual] |
Print to an output stream.
[in,out] | out | an output stream. |
Implements openvrml::field_value.
bool operator== | ( | const sfrotation & | lhs, | |
const sfrotation & | rhs | |||
) | throw() [related] |
Compare for equality.
[in] | lhs | left-hand operand. |
[in] | rhs | right-hand operand. |
true
if lhs
and rhs
have the same value; false
otherwise. bool operator!= | ( | const sfrotation & | lhs, | |
const sfrotation & | rhs | |||
) | throw() [related] |
Compare for inequality.
[in] | lhs | left-hand operand. |
[in] | rhs | right-hand operand. |
true
if lhs
and rhs
do not have the same value; false
otherwise. template<> void swap | ( | openvrml::sfrotation & | a, | |
openvrml::sfrotation & | b | |||
) | [related] |
Swap the values of a
and b
.
Does not throw.
[in,out] | a | |
[in,out] | b |
const openvrml::field_value::type_id openvrml::sfrotation::field_value_type_id = sfrotation_id [static] |
field_value::type_id
for this class.