openvrml::exposedfield< FieldValue > Class Template Reference
Inheritance diagram for openvrml::exposedfield< FieldValue >:
[legend]List of all members.
Detailed Description
template<typename FieldValue>
class openvrml::exposedfield< FieldValue >
Class template to simplify implementation of exposedFields.
exposedfield
conveniently implements an event_listener
and an event_emitter
. Trivial exposedFields can be implemented simply by instantiating this template with a FieldValue. For the purposes of OpenVRML, a trivial exposedField is one that has no side-effects. That is, it simply receives an event, updates an internal value, and fires an eventOut. Nontrivial exposedFields (i.e., those with side-effects) can generally be implemented by inheriting an instance of this class template and overriding exposedfield<FieldValue>::event_side_effect
.
Constructor & Destructor Documentation
|
Construct.
- Parameters:
-
| node | a reference to the node to which the exposedField belongs. |
| value | default value. |
|
Member Function Documentation
template<typename FieldValue> |
void openvrml::exposedfield< FieldValue >::do_process_event |
( |
const FieldValue & |
value, |
|
|
double |
timestamp |
|
) |
throw (std::bad_alloc) [inline, private, virtual] |
|
template<typename FieldValue> |
void openvrml::exposedfield< FieldValue >::event_side_effect |
( |
const FieldValue & |
value, |
|
|
double |
timestamp |
|
) |
throw (std::bad_alloc) [inline, private, virtual] |
|
|
Called by exposedfield<FieldValue>::do_process_event .
Subclasses should override this method to implement event handling functionality specific to a particular exposedField. The default implementation of this function does nothing.
- Parameters:
-
| value | new value. |
| timestamp | the current time. |
- Exceptions:
-
| std::bad_alloc | if memory allocation fails. |
Reimplemented in openvrml::vrml97_node::group_node::children_exposedfield, openvrml::vrml97_node::background_node::back_url_exposedfield, openvrml::vrml97_node::background_node::bottom_url_exposedfield, openvrml::vrml97_node::background_node::front_url_exposedfield, openvrml::vrml97_node::background_node::left_url_exposedfield, openvrml::vrml97_node::background_node::right_url_exposedfield, openvrml::vrml97_node::background_node::top_url_exposedfield, openvrml::vrml97_node::image_texture_node::url_exposedfield, openvrml::vrml97_node::switch_node::choice_exposedfield, openvrml::vrml97_node::switch_node::which_choice_exposedfield, openvrml::vrml97_node::text_node::string_exposedfield, openvrml::vrml97_node::text_node::font_style_exposedfield, openvrml::vrml97_node::text_node::length_exposedfield, openvrml::vrml97_node::text_node::max_extent_exposedfield, openvrml::vrml97_node::time_sensor_node::enabled_exposedfield, openvrml::vrml97_node::transform_node::center_exposedfield, openvrml::vrml97_node::transform_node::rotation_exposedfield, openvrml::vrml97_node::transform_node::scale_exposedfield, openvrml::vrml97_node::transform_node::scale_orientation_exposedfield, openvrml::vrml97_node::transform_node::translation_exposedfield, openvrml::vrml97_node::viewpoint_node::orientation_exposedfield, and openvrml::vrml97_node::viewpoint_node::position_exposedfield. |