openvrml::sfrotation Class Reference
[Field Values]

Inheritance diagram for openvrml::sfrotation:
[legend]

List of all members.


Detailed Description

A rotation node field value.

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:

Model of
FieldValue

Public Types

typedef rotation value_type
 Type of value.

Public Member Functions

 sfrotation (const rotation &rot=rotation()) throw ()
 Construct.
virtual ~sfrotation () throw ()
 Destroy.
virtual std::auto_ptr
< field_value
clone () const throw (std::bad_alloc)
 Virtual copy constructor.
virtual field_valueassign (const field_value &value) throw (std::bad_cast)
 Virtual assignment.
virtual type_id type () const throw ()
 Get the field_value::type_id associated with this class.

Public Attributes

rotation value
 Rotation value.

Private Member Functions

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.

Member Typedef Documentation

Type of value.


Constructor & Destructor Documentation

openvrml::sfrotation::sfrotation ( const rotation rot = rotation()  )  throw () [explicit]

Construct.

Parameters:
rot initial value.

openvrml::sfrotation::~sfrotation (  )  throw () [virtual]

Destroy.


Member Function Documentation

std::auto_ptr< field_value > openvrml::sfrotation::clone (  )  const throw (std::bad_alloc) [virtual]

Virtual copy constructor.

Returns:
a pointer to a copy of the object.
Exceptions:
std::bad_alloc if memory allocation fails.

Implements openvrml::field_value.

field_value & openvrml::sfrotation::assign ( const field_value value  )  throw (std::bad_cast) [virtual]

Virtual assignment.

Parameters:
value the new value to give the object.
Returns:
a reference to the object.
Exceptions:
std::bad_cast if value is not an sfrotation.

Implements openvrml::field_value.

field_value::type_id openvrml::sfrotation::type (  )  const throw () [virtual]

Get the field_value::type_id associated with this class.

Returns:
field_value::sfrotation.

Implements openvrml::field_value.

void openvrml::sfrotation::print ( std::ostream &  out  )  const [private, virtual]

Print to an output stream.

Parameters:
out an output stream.

Implements openvrml::field_value.


Friends And Related Function Documentation

bool operator== ( const sfrotation lhs,
const sfrotation rhs 
) throw() [related]

Compare for equality.

Parameters:
lhs left-hand operand.
rhs right-hand operand.
Returns:
true if lhs and rhs have the same value; false otherwise.

bool operator!= ( const sfrotation lhs,
const sfrotation rhs 
) throw() [related]

Compare for inequality.

Parameters:
lhs left-hand operand.
rhs right-hand operand.
Returns:
true if lhs and rhs do not have the same value; false otherwise.


Member Data Documentation

Rotation value.