openvrml::child_node Class Reference

Abstract base class for child nodes. More...

#include <openvrml/node.h>

Inheritance diagram for openvrml::child_node:

List of all members.


Public Member Functions

virtual ~child_node ()=0 throw ()
 Destructor.
void relocate () throw ( std::bad_alloc )
 Called when the node is relocated to a new position in the scene graph.
void render_child (viewer &v, rendering_context context)
 Render the node.

Protected Member Functions

 child_node (const node_type &type, const boost::shared_ptr< openvrml::scope > &scope) throw ()
 Constructor.

Private Member Functions

virtual child_nodeto_child () throw ()
 Cast to a child_node.
virtual void do_relocate () throw ( std::bad_alloc )
 child_node subclass-specific relocation update.
virtual void do_render_child (viewer &v, rendering_context context)
 render_child implementation.

Detailed Description

Abstract base class for child nodes.

Constructor & Destructor Documentation

openvrml::child_node::~child_node (  )  throw () [pure virtual]

Destructor.

openvrml::child_node::child_node ( const node_type type,
const boost::shared_ptr< openvrml::scope > &  scope 
) throw () [protected]

Constructor.

Parameters:
[in] type the node_type associated with the node.
[in] scope the scope the node belongs to.


Member Function Documentation

void openvrml::child_node::relocate (  )  throw ( std::bad_alloc )

Called when the node is relocated to a new position in the scene graph.

This function delegates to the virtual function do_relocate. relocate should be called by eventIn handlers that receive nodes.

Exceptions:
std::bad_alloc if memory allocation fails.

void openvrml::child_node::render_child ( viewer v,
rendering_context  context 
)

Render the node.

This function delegates to do_render_child.

Parameters:
[in,out] v viewer implementation responsible for actually doing the drawing.
[in] context generic context argument; holds things like the accumulated modelview transform.

openvrml::child_node * openvrml::child_node::to_child (  )  throw () [private, virtual]

Cast to a child_node.

Returns:
a pointer to this child_node.

Reimplemented from openvrml::node.

void openvrml::child_node::do_relocate (  )  throw ( std::bad_alloc ) [private, virtual]

child_node subclass-specific relocation update.

This method is called by relocate. Subclasses of child_node should override this function for any subclass-specific updates that need to be performed following relocation of a child_node to a new position in the scene graph (for example, updating a node_path).

The default implementation of this method does nothing.

void openvrml::child_node::do_render_child ( viewer v,
rendering_context  context 
) [private, virtual]

render_child implementation.

Rendered child_nodes should override this method.

Parameters:
[in,out] v viewer implementation responsible for actually doing the drawing.
[in] context generic context argument; holds things like the accumulated modelview transform.

Reimplemented in openvrml::script_node.