| Home | Download | Screen shots | Discussion | Documentation |
|---|
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.
Public Member Functions | |
| exposedfield (openvrml::node &node, const typename FieldValue::value_type &value=typename FieldValue::value_type()) | |
| Construct. | |
| virtual | ~exposedfield () throw () |
| Destroy. | |
Private Member Functions | |
| virtual void | do_process_event (const FieldValue &value, double timestamp) throw (std::bad_alloc) |
| Process an event. | |
| virtual void | event_side_effect (const FieldValue &value, double timestamp) throw (std::bad_alloc) |
Called by exposedfield<FieldValue>::do_process_event. | |
| openvrml::exposedfield< FieldValue >::exposedfield | ( | openvrml::node & | node, | |
| const typename FieldValue::value_type & | value = typename FieldValue::value_type() | |||
| ) | [inline] |
| openvrml::exposedfield< FieldValue >::~exposedfield | ( | ) | throw () [inline, virtual] |
Destroy.
| void openvrml::exposedfield< FieldValue >::do_process_event | ( | const FieldValue & | value, | |
| double | timestamp | |||
| ) | throw (std::bad_alloc) [inline, private, virtual] |
Process an event.
This function performs the following steps:
exposedfield<FieldValue>::event_side_effect.
exposedfield<FieldValue>::event_side_effect instead.| value | new value. | |
| timestamp | the current time. |
| std::bad_alloc | if memory allocation fails. |
Implements openvrml::field_value_listener< 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.
| value | new value. | |
| timestamp | the current time. |
| std::bad_alloc | if memory allocation fails. |