openvrml::sfrotation Class Reference

A rotation node field value. More...

#include <openvrml/field_value.h>

Inheritance diagram for openvrml::sfrotation:

List of all members.


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.
sfrotationoperator= (const sfrotation &sfr) throw ( std::bad_alloc )
 Assign.
const value_typevalue () 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 sfrotationdo_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.

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
Field Value

Member Typedef Documentation


Constructor & Destructor Documentation

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

Construct.

Parameters:
[in] rot initial value.

openvrml::sfrotation::sfrotation ( const sfrotation sfr  ) 

Construct a copy.

Parameters:
[in] sfr the instance to copy.

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

Destroy.


Member Function Documentation

openvrml::sfrotation & openvrml::sfrotation::operator= ( const sfrotation sfr  )  throw ( std::bad_alloc )

Assign.

Parameters:
[in] sfr the value to assign.
Returns:
a reference to the instance.
Exceptions:
std::bad_alloc if memory allocation fails.

const openvrml::sfrotation::value_type & openvrml::sfrotation::value (  )  const throw ()

Access.

Returns:
the rotation value.

Reimplemented from openvrml::field_value.

void openvrml::sfrotation::value ( const value_type val  )  throw ( std::bad_alloc )

Mutate.

Parameters:
[in] val the new value.
Exceptions:
std::bad_alloc if memory allocation fails.

void openvrml::sfrotation::swap ( sfrotation sfr  )  throw ()

Swap.

Parameters:
[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.

Returns:
a pointer to a copy of the object.
Exceptions:
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.

Parameters:
[in] 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.

openvrml::field_value::type_id openvrml::sfrotation::do_type (  )  const throw () [private, 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:
[in,out] 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:
[in] lhs left-hand operand.
[in] 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:
[in] lhs left-hand operand.
[in] rhs right-hand operand.
Returns:
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.

Parameters:
[in,out] a 
[in,out] b 


Member Data Documentation