Home | Download | Screen shots | Discussion | Documentation |
---|
Abstract base class for the VRML field types. More...
#include <openvrml/field_value.h>
Classes | |
class | value_type_constructor_tag |
This struct exists only to disambiguate field_value 's constructor template from its copy constructor. More... |
Public Types | |
enum | type_id { invalid_type_id, sfbool_id, sfcolor_id, sfcolorrgba_id, sffloat_id, sfdouble_id, sfimage_id, sfint32_id, sfnode_id, sfrotation_id, sfstring_id, sftime_id, sfvec2f_id, sfvec2d_id, sfvec3f_id, sfvec3d_id, mfbool_id, mfcolor_id, mfcolorrgba_id, mffloat_id, mfdouble_id, mfimage_id, mfint32_id, mfnode_id, mfrotation_id, mfstring_id, mftime_id, mfvec2f_id, mfvec2d_id, mfvec3f_id, mfvec3d_id } |
Used to identify field_value types. More... |
Public Member Functions | |
virtual | ~field_value ()=0 throw () |
Destroy. | |
std::auto_ptr< field_value > | clone () const throw ( std::bad_alloc ) |
Polymorphically construct a copy. | |
field_value & | assign (const field_value &value) throw ( std::bad_cast , std::bad_alloc ) |
Virtual assignment. | |
type_id | type () const throw () |
Get the field type. | |
template<typename FieldValue > | |
const FieldValue::value_type & | value () const throw () |
Access. | |
template<typename FieldValue > | |
void | value (const typename FieldValue::value_type &val) throw ( std::bad_alloc ) |
Mutate. | |
template<typename FieldValue > | |
void | swap (FieldValue &val) throw () |
Swap. |
Static Public Member Functions | |
static std::auto_ptr< field_value > | create (type_id type) throw ( std::bad_alloc ) |
Create a default instance of the type specified by type . |
Protected Member Functions | |
template<typename ValueType > | |
field_value (const ValueType &value, const value_type_constructor_tag &) throw ( std::bad_alloc ) | |
Construct. | |
field_value (const field_value &value) throw ( std::bad_alloc ) | |
Construct a copy. | |
template<typename FieldValue > | |
FieldValue & | operator= (const FieldValue &fv) throw ( std::bad_alloc ) |
Assignment operator. |
Private Member Functions | |
virtual std::auto_ptr < field_value > | do_clone () const =0 throw ( std::bad_alloc ) |
Polymorphically construct a copy. | |
virtual field_value & | do_assign (const field_value &value)=0 throw ( std::bad_cast , std::bad_alloc ) |
Virtual assignment. | |
virtual type_id | do_type () const =0 throw () |
Get the field type. | |
virtual void | print (std::ostream &out) const =0 |
Print to an output stream. |
Related Functions | |
(Note that these are not member functions.) | |
std::ostream & | operator<< (std::ostream &out, const field_value &value) |
Stream output. | |
std::ostream & | operator<< (std::ostream &out, const field_value::type_id type_id) |
Stream output. | |
std::istream & | operator>> (std::istream &in, field_value::type_id &type_id) |
Stream input. |
Abstract base class for the VRML field types.
Subclasses of field_value
are models of Field Value. These subclasses have copy-on-write semantics.
Used to identify field_value types.
These tags are typically used to designate an expected type or to avoid a dynamic_cast
.
invalid_type_id |
Zero value typically used to indicate failure. |
sfbool_id |
Designates an |
sfcolor_id |
Designates an |
sfcolorrgba_id |
Designates an |
sffloat_id |
Designates an |
sfdouble_id |
Designates an |
sfimage_id |
Designates an |
sfint32_id |
Designates an |
sfnode_id |
Designates an |
sfrotation_id |
Designates an |
sfstring_id |
Designates an |
sftime_id |
Designates an |
sfvec2f_id |
Designates an |
sfvec2d_id |
Designates an |
sfvec3f_id |
Designates an |
sfvec3d_id |
Designates an |
mfbool_id |
Designates an |
mfcolor_id |
Designates an |
mfcolorrgba_id |
Designates an |
mffloat_id |
Designates an |
mfdouble_id |
Designates an |
mfimage_id |
Designates an |
mfint32_id |
Designates an |
mfnode_id |
Designates an |
mfrotation_id |
Designates an |
mfstring_id |
Designates an |
mftime_id |
Designates an |
mfvec2f_id |
Designates an |
mfvec2d_id |
Designates an |
mfvec3f_id |
Designates an |
mfvec3d_id |
Designates an |
|
pure virtual |
Destroy.
|
protected |
Construct.
ValueType | a Field Value value_type . |
[in] | value | initial value. |
std::bad_alloc | if memory allocation fails. |
|
protected |
Construct a copy.
[in] | fv | field value to copy. |
std::bad_alloc | if memory allocation fails. |
|
static |
Create a default instance of the type specified by type
.
[in] | type | field value type identifier. |
type
.std::bad_alloc | if memory allocation fails. |
std::auto_ptr< openvrml::field_value > openvrml::field_value::clone | ( | ) | const throw ( std::bad_alloc ) |
Polymorphically construct a copy.
This function delegates to field_value::do_clone
.
field_value
identical to this one.std::bad_alloc | if memory allocation fails. |
openvrml::field_value & openvrml::field_value::assign | ( | const field_value & | value | ) | throw ( std::bad_cast , std::bad_alloc ) |
Virtual assignment.
Thus function delegates to field_value::do_assign
.
[in] | value | the value to assign to the object. |
openvrml::field_value::type_id openvrml::field_value::type | ( | ) | const throw () |
Get the field type.
This function delegates to field_value::do_type
.
type_id
enumerant corresponding to the field_value
's type. const FieldValue::value_type & openvrml::field_value::value | ( | ) | const throw () |
Access.
FieldValue | a Field Value. |
Reimplemented in openvrml::mfvec3d, openvrml::mfvec3f, openvrml::mfvec2d, openvrml::mfvec2f, openvrml::mftime, openvrml::mfstring, openvrml::mfrotation, openvrml::mfnode, openvrml::mfint32, openvrml::mfimage, openvrml::mfdouble, openvrml::mffloat, openvrml::mfcolorrgba, openvrml::mfcolor, openvrml::mfbool, openvrml::sfvec3d, openvrml::sfvec3f, openvrml::sfvec2d, openvrml::sfvec2f, openvrml::sftime, openvrml::sfstring, openvrml::sfrotation, openvrml::sfnode, openvrml::sfint32, openvrml::sfimage, openvrml::sfdouble, openvrml::sffloat, openvrml::sfcolorrgba, openvrml::sfcolor, and openvrml::sfbool.
void openvrml::field_value::value | ( | const typename FieldValue::value_type & | val | ) | throw ( std::bad_alloc ) |
Mutate.
FieldValue | a Field Value. |
[in] | val | new value. |
std::bad_alloc | if memory allocation fails. |
void openvrml::field_value::swap | ( | FieldValue & | val | ) | throw () |
Swap.
FieldValue | a Field Value. |
[in,out] | val | the value to swap with this one. |
|
protected |
Assignment operator.
FieldValue | a Field Value. |
[in] | fv | field value to assign. |
|
privatepure virtual |
Polymorphically construct a copy.
std::bad_alloc | if memory allocation fails. |
|
privatepure virtual |
Virtual assignment.
[in] | value | the value to assign to the object. |
std::bad_cast | if value is not of the same concrete type as this object. |
std::bad_alloc | if memory allocation fails. |
|
privatepure virtual |
Get the field type.
type_id
enumerant corresponding to the field_value
's type.
|
privatepure virtual |
Print to an output stream.
[in,out] | out | an output stream. |
|
related |
Stream output.
[in,out] | out | an output stream. |
[in] | value | a field value. |
out
.
|
related |
Stream output.
If type
is field_value::invalid_type
, failbit
is set on out
.
[in,out] | out | output stream. |
[in] | type_id | field_value type identifier. |
out
.
|
related |
Stream input.
[in,out] | in | input stream. |
[out] | type_id | field_value type identifier. |
in
.