Home | Download | Screen shots | Discussion | Documentation |
---|
#include <openvrml/node.h>
Inheritance diagram for openvrml::child_node:
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_node * | to_child () throw () |
Cast to a child_node. | |
virtual void | do_relocate () throw ( std::bad_alloc ) |
node subclass-specific relocation update. | |
virtual void | do_render_child (viewer &v, rendering_context context) |
render_child implementation. |
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] |
void openvrml::child_node::relocate | ( | ) | throw ( std::bad_alloc ) |
void openvrml::child_node::render_child | ( | viewer & | v, | |
rendering_context | context | |||
) |
Render the node.
Actually, most of the rendering work is delegated to the viewer, but this method is responsible for traversal to the node's renderable children, including culling. Each node class needs to implement this routine appropriately. It's not abstract since it doesn't make sense to call render on some nodes. Alternative would be to break render out into a seperate mixins class, but that's probably overkill.
[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] |
void openvrml::child_node::do_relocate | ( | ) | throw ( std::bad_alloc ) [private, virtual] |
node subclass-specific relocation update.
This method is called by child_node::relocate. Subclasses of child_node should override this method for any subclass-specific updates that need to be performed following relocation of a 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.
[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.