Home | Download | Screen shots | Discussion | Documentation
--- | --- | --- | --- | ---

# 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`.