| 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. | |
Friends | |
| std::ostream & | operator<< (std::ostream &out, const field_value &value) |
| Stream output. | |
Related Functions | |
(Note that these are not member functions.) | |
| 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 |
| openvrml::field_value::~field_value | ( | ) | throw () [pure virtual] |
Destroy.
| openvrml::field_value::field_value | ( | const ValueType & | value, |
| const value_type_constructor_tag & | |||
| ) | throw ( std::bad_alloc ) [protected] |
Construct.
| ValueType | a Field Value value_type. |
| [in] | value | initial value. |
| std::bad_alloc | if memory allocation fails. |
| openvrml::field_value::field_value | ( | const field_value & | fv | ) | throw ( std::bad_alloc ) [protected] |
Construct a copy.
| [in] | fv | field value to copy. |
| std::bad_alloc | if memory allocation fails. |
| std::auto_ptr< openvrml::field_value > openvrml::field_value::create | ( | type_id | type | ) | throw ( std::bad_alloc ) [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::sfbool, openvrml::sfcolor, openvrml::sfcolorrgba, openvrml::sffloat, openvrml::sfdouble, openvrml::sfimage, openvrml::sfint32, openvrml::sfnode, openvrml::sfrotation, openvrml::sfstring, openvrml::sftime, openvrml::sfvec2f, openvrml::sfvec2d, openvrml::sfvec3f, openvrml::sfvec3d, openvrml::mfbool, openvrml::mfcolor, openvrml::mfcolorrgba, openvrml::mffloat, openvrml::mfdouble, openvrml::mfimage, openvrml::mfint32, openvrml::mfnode, openvrml::mfrotation, openvrml::mfstring, openvrml::mftime, openvrml::mfvec2f, openvrml::mfvec2d, openvrml::mfvec3f, and openvrml::mfvec3d.
| 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. |
| FieldValue & openvrml::field_value::operator= | ( | const FieldValue & | fv | ) | throw ( std::bad_alloc ) [protected] |
Assignment operator.
| FieldValue | a Field Value. |
| [in] | fv | field value to assign. |
| std::auto_ptr< openvrml::field_value > openvrml::field_value::do_clone | ( | ) | const throw ( std::bad_alloc ) [private, pure virtual] |
Polymorphically construct a copy.
| std::bad_alloc | if memory allocation fails. |
Implemented in openvrml::sfbool, openvrml::sfcolor, openvrml::sfcolorrgba, openvrml::sffloat, openvrml::sfdouble, openvrml::sfimage, openvrml::sfint32, openvrml::sfnode, openvrml::sfrotation, openvrml::sfstring, openvrml::sftime, openvrml::sfvec2f, openvrml::sfvec2d, openvrml::sfvec3f, openvrml::sfvec3d, openvrml::mfbool, openvrml::mfcolor, openvrml::mfcolorrgba, openvrml::mffloat, openvrml::mfdouble, openvrml::mfimage, openvrml::mfint32, openvrml::mfnode, openvrml::mfrotation, openvrml::mfstring, openvrml::mftime, openvrml::mfvec2f, openvrml::mfvec2d, openvrml::mfvec3f, openvrml::mfvec3d, and openvrml::node_impl_util::abstract_node< Derived >::exposedfield< sfnode >.
| openvrml::field_value & openvrml::field_value::do_assign | ( | const field_value & | value | ) | throw ( std::bad_cast , std::bad_alloc ) [private, pure 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. |
Implemented in openvrml::sfbool, openvrml::sfcolor, openvrml::sfcolorrgba, openvrml::sffloat, openvrml::sfdouble, openvrml::sfimage, openvrml::sfint32, openvrml::sfnode, openvrml::sfrotation, openvrml::sfstring, openvrml::sftime, openvrml::sfvec2f, openvrml::sfvec2d, openvrml::sfvec3f, openvrml::sfvec3d, openvrml::mfbool, openvrml::mfcolor, openvrml::mfcolorrgba, openvrml::mffloat, openvrml::mfdouble, openvrml::mfimage, openvrml::mfint32, openvrml::mfnode, openvrml::mfrotation, openvrml::mfstring, openvrml::mftime, openvrml::mfvec2f, openvrml::mfvec2d, openvrml::mfvec3f, and openvrml::mfvec3d.
| openvrml::field_value::type_id openvrml::field_value::do_type | ( | ) | const throw () [private, pure virtual] |
Get the field type.
type_id enumerant corresponding to the field_value's type. Implemented in openvrml::sfbool, openvrml::sfcolor, openvrml::sfcolorrgba, openvrml::sffloat, openvrml::sfdouble, openvrml::sfimage, openvrml::sfint32, openvrml::sfnode, openvrml::sfrotation, openvrml::sfstring, openvrml::sftime, openvrml::sfvec2f, openvrml::sfvec2d, openvrml::sfvec3f, openvrml::sfvec3d, openvrml::mfbool, openvrml::mfcolor, openvrml::mfcolorrgba, openvrml::mffloat, openvrml::mfdouble, openvrml::mfimage, openvrml::mfint32, openvrml::mfnode, openvrml::mfrotation, openvrml::mfstring, openvrml::mftime, openvrml::mfvec2f, openvrml::mfvec2d, openvrml::mfvec3f, and openvrml::mfvec3d.
| void openvrml::field_value::print | ( | std::ostream & | out | ) | const [private, pure virtual] |
Print to an output stream.
| [in,out] | out | an output stream. |
Implemented in openvrml::sfbool, openvrml::sfcolor, openvrml::sfcolorrgba, openvrml::sffloat, openvrml::sfdouble, openvrml::sfimage, openvrml::sfint32, openvrml::sfnode, openvrml::sfrotation, openvrml::sfstring, openvrml::sftime, openvrml::sfvec2f, openvrml::sfvec2d, openvrml::sfvec3f, openvrml::sfvec3d, openvrml::mfbool, openvrml::mfcolor, openvrml::mfcolorrgba, openvrml::mffloat, openvrml::mfdouble, openvrml::mfimage, openvrml::mfint32, openvrml::mfnode, openvrml::mfrotation, openvrml::mfstring, openvrml::mftime, openvrml::mfvec2f, openvrml::mfvec2d, openvrml::mfvec3f, and openvrml::mfvec3d.
| std::ostream & operator<< | ( | std::ostream & | out, |
| const field_value & | value | ||
| ) | [friend] |
Stream output.
| [in,out] | out | an output stream. |
| [in] | value | a field value. |
out. | std::ostream & operator<< | ( | std::ostream & | out, |
| const field_value::type_id | type_id | ||
| ) | [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. | std::istream & operator>> | ( | std::istream & | in, |
| field_value::type_id & | type_id | ||
| ) | [related] |
Stream input.
| [in,out] | in | input stream. |
| [out] | type_id | field_value type identifier. |
in.