Home | Download | Screen shots | Discussion | Documentation |
---|
Abstract base class for node implementations. More...
#include <openvrml/node_impl_util.h>
Classes | |
class | event_emitter |
Concrete event emitter class template. More... | |
class | exposedfield |
exposedField implementation. More... |
Public Member Functions | |
virtual | ~abstract_node ()=0 throw () |
Destroy. | |
![]() | |
virtual | ~node ()=0 throw () |
Destructor. | |
void | add_ref () const throw () |
Increment the reference count. | |
void | remove_ref () const throw () |
Decrement the reference count. | |
void | release () const throw () |
Decrement the reference count; destroy the instance if the count drops to zero. | |
size_t | use_count () const throw () |
The number of owning references to the instance. | |
const node_type & | type () const throw () |
The type information object for the node . | |
const std::string & | id () const throw () |
Retrieve the name of this node . | |
void | id (const std::string &node_id) throw ( std::bad_alloc ) |
Set the name of the node . | |
const openvrml::scope & | scope () const throw () |
Get the scope to which the node belongs. | |
openvrml::scene * | scene () const throw () |
Get the scene with which the node is associated. | |
const std::vector < boost::intrusive_ptr< node > > & | impl_nodes () const throw () |
Get the implementation nodes of a PROTO instance. | |
std::ostream & | print (std::ostream &out, size_t indent) const |
Pretty print. | |
void | initialize (openvrml::scene &scene, double timestamp) throw ( std::bad_alloc ) |
Initialize the node. | |
std::auto_ptr< field_value > | field (const std::string &id) const throw ( unsupported_interface , std::bad_alloc ) |
Generalized field accessor. | |
openvrml::event_listener & | event_listener (const std::string &id) throw ( unsupported_interface ) |
Get an event listener. | |
openvrml::event_emitter & | event_emitter (const std::string &id) throw ( unsupported_interface ) |
Get an event emitter. | |
void | shutdown (double timestamp) throw () |
Shut down the node. | |
bool | modified () const throw ( boost::thread_resource_error ) |
Determine whether the node has been modified. | |
void | modified (bool value) throw ( boost::thread_resource_error ) |
Set the modified flag. |
Protected Member Functions | |
abstract_node (const node_type &type, const boost::shared_ptr< openvrml::scope > &scope) | |
Construct. | |
![]() | |
node (const node_type &type, const boost::shared_ptr< openvrml::scope > &scope) throw () | |
Construct. | |
boost::shared_mutex & | scene_mutex () |
The scene mutex. |
Protected Attributes | |
exposedfield< sfnode > | metadata |
metadata exposedField. |
Private Member Functions | |
virtual const field_value & | do_field (const std::string &id) const throw ( unsupported_interface ) |
Get a field value for a node . | |
virtual openvrml::event_listener & | do_event_listener (const std::string &id) throw ( unsupported_interface ) |
Get an event listener. | |
virtual openvrml::event_emitter & | do_event_emitter (const std::string &id) throw ( unsupported_interface ) |
Get an event emitter. |
Additional Inherited Members | |
![]() | |
static const boost::intrusive_ptr< node > | self_tag |
Special value used when initializing a script_node . | |
![]() | |
static void | emit_event (openvrml::event_emitter &emitter, double timestamp) throw ( std::bad_alloc ) |
Emit an event. | |
![]() | |
To * | node_cast (node *n) |
Downcast a node to one of the abstract node types. | |
void | intrusive_ptr_add_ref (const node *n) |
Increment the reference count. | |
void | intrusive_ptr_release (const node *n) |
Decrement the reference count. | |
bool | is_proto_instance (const node &n) |
Check whether a node is a PROTO instance. |
Abstract base class for node implementations.
abstract_node
encapsulates the mechanisms for field access and mutation, event dispatch, and eventOut
access.
Derived | the type that inherits this class template. |
|
protected |
The derived type.
|
protected |
openvrml::sfbool
listener. Provided for convenience.
|
protected |
openvrml::sfcolor
listener. Provided for convenience.
|
protected |
openvrml::sffloat
listener. Provided for convenience.
|
protected |
openvrml::sfdouble
listener. Provided for convenience.
|
protected |
openvrml::sfimage
listener. Provided for convenience.
|
protected |
openvrml::sfint32
listener. Provided for convenience.
|
protected |
openvrml::sfnode
listener. Provided for convenience.
|
protected |
openvrml::sfrotation
listener. Provided for convenience.
|
protected |
openvrml::sfstring
listener. Provided for convenience.
|
protected |
openvrml::sftime
listener. Provided for convenience.
|
protected |
openvrml::sfvec2f
listener. Provided for convenience.
|
protected |
openvrml::sfvec2d
listener. Provided for convenience.
|
protected |
openvrml::sfvec3f
listener. Provided for convenience.
|
protected |
openvrml::sfvec3d
listener. Provided for convenience.
|
protected |
openvrml::mfbool
listener. Provided for convenience.
|
protected |
openvrml::mfcolor
listener. Provided for convenience.
|
protected |
openvrml::mffloat
listener. Provided for convenience.
|
protected |
openvrml::mfdouble
listener. Provided for convenience.
|
protected |
openvrml::mfint32
listener. Provided for convenience.
|
protected |
openvrml::mfnode
listener. Provided for convenience.
|
protected |
openvrml::mfrotation
listener. Provided for convenience.
|
protected |
openvrml::mfstring
listener. Provided for convenience.
|
protected |
openvrml::mftime
listener. Provided for convenience.
|
protected |
openvrml::mfvec2f
listener. Provided for convenience.
|
protected |
openvrml::mfvec2d
listener. Provided for convenience.
|
protected |
openvrml::mfvec3f
listener. Provided for convenience.
|
protected |
openvrml::mfvec3d
listener. Provided for convenience.
|
protected |
openvrml::sfbool
event emitter.
|
protected |
openvrml::sfcolor
event emitter.
|
protected |
openvrml::sfdouble
event emitter.
|
protected |
openvrml::sffloat
event emitter.
|
protected |
openvrml::sfimage
event emitter.
|
protected |
openvrml::sfint32
event emitter.
|
protected |
openvrml::sfnode
event emitter.
|
protected |
openvrml::sfrotation
event emitter.
|
protected |
openvrml::sfstring
event emitter.
|
protected |
openvrml::sftime
event emitter.
|
protected |
openvrml::sfvec2d
event emitter.
|
protected |
openvrml::sfvec2f
event emitter.
|
protected |
openvrml::sfvec3d
event emitter.
|
protected |
openvrml::sfvec3f
event emitter.
|
protected |
openvrml::mfcolor
event emitter.
|
protected |
openvrml::mfdouble
event emitter.
|
protected |
openvrml::mffloat
event emitter.
|
protected |
openvrml::mfnode
event emitter.
|
protected |
openvrml::mfrotation
event emitter.
|
protected |
openvrml::mfstring
event emitter.
|
protected |
openvrml::mftime
event emitter.
|
protected |
openvrml::mfvec2d
event emitter.
|
protected |
openvrml::mfvec2f
event emitter.
|
protected |
openvrml::mfvec3d
event emitter.
|
protected |
openvrml::mfvec3f
event emitter.
|
pure virtual |
Destroy.
|
protected |
Construct.
[in] | type | the node_type associated with this node. |
[in] | scope | the scope to which the node belongs. |
|
privatevirtual |
Get a field value for a node
.
[in] | id | a field name. |
unsupported_interface | if the node has no field id . |
|
privatevirtual |
Get an event listener.
This method is called by node::event_listener
.
[in] | id | eventIn identifier. |
unsupported_interface | if the node has no eventIn id . |
|
privatevirtual |
Get an event emitter.
This method is called by node::event_emitter
.
[in] | id | eventOut identifier. |
unsupported_interface | if the node has no eventOut id . |
|
protected |
metadata exposedField.