openvrml::node_impl_util Namespace Reference

Utility classes to facilitate node implementations. More...


Classes

class  ptr_to_polymorphic_mem
 Abstract base class for a pointer-to-polymorphic-member type. More...
class  ptr_to_polymorphic_mem_impl
 Concrete pointer-to-polymorphic-member type. More...
class  abstract_node_type
 Abstract base for openvrml::node_type subclasses. More...
class  node_type_impl
 A template for concrete node_types. More...
class  event_listener_base
 Abstract base for event_listener implementations. More...
class  event_emitter_base
 Abstract base for event_emitter implementations. More...
class  abstract_node
 Abstract base class for node implementations. More...
struct  BindableNodeConcept
 Concept checking class to validate that a template parameter is a model of the Bindable Node concept. More...
class  bound_node_stack
 A stack of bindable nodes. More...

Detailed Description

Utility classes to facilitate node implementations.

While the API comprising the members of the openvrml namespace provides everything necessary to implement nodes, node implementation can be very verbose. The members of the openvrml::node_impl_util namespace can make node implementation more concise by abstracting and providing code that many node implementations are likely to have in common.

In particular, node_type_impl centralizes the logic for generalized field access. By using an instance of this class template for your openvrml::node_type implementation you can avoid a lot of tedious and repetitive code to implement openvrml::node::do_field, openvrml::node::do_event_listener, and openvrml::node::do_event_emitter.