version 3.3

VRS::SceneSwitch Class Reference

Scene Graph Node with Canvas-Dependent Switch. More...

#include <vrs/sg/sceneswitch.h>

Inheritance diagram for VRS::SceneSwitch:

VRS::SceneNode VRS::SharedObj VRS::Visitable

List of all members.

Public Member Functions

 SceneSwitch ()
virtual void append (SceneNode *node)
virtual void prepend (SceneNode *node)
virtual void insert (int, SceneNode *node)
virtual void remove (int i)
virtual void remove (SceneNode *node)
virtual void clear ()
 These methods manage the internal list of scene subgraphs.
virtual void setMask (SceneNode *node, Canvas *canvas)
virtual CanvasgetMask (SceneNode *node) const
 Assigns or returns the canvas for a specific child node.
virtual int childNodes () const
virtual SceneNodechildNode (int i) const
 Access to all child nodes of the switch node.
virtual void evaluate (Engine *engine)
virtual
SceneNodeVisitor::TraversalFlag 
traverse (SceneNodeVisitor *visitor)
virtual Bounds boundingBox (Engine *engine) const
virtual void install (Engine *engine)
virtual void deinstall (Engine *engine)
 VRS_TYPEINFO (SceneSwitch, SceneNode)
 VRS_SERIALIZABLE (SceneSwitch)

Protected Member Functions

virtual void acceptChildren (std::vector< Visitable * > &appendChildrenHere) const


Detailed Description

Scene Graph Node with Canvas-Dependent Switch.

Constructor & Destructor Documentation

VRS::SceneSwitch::SceneSwitch (  ) 

An SceneSwitch node groups scene subgraphs and assigns each subgraph to a specific canvas. Based on the canvas whose engine evaluates the scene graph, only those scene subgraphs are selected which are assigned to the canvas. This allows for specifying canvas-dependent variants in a scene graph.


Member Function Documentation

virtual void VRS::SceneSwitch::append ( SceneNode node  )  [virtual]

virtual void VRS::SceneSwitch::prepend ( SceneNode node  )  [virtual]

virtual void VRS::SceneSwitch::insert ( int  ,
SceneNode node 
) [virtual]

virtual void VRS::SceneSwitch::remove ( int  i  )  [virtual]

virtual void VRS::SceneSwitch::remove ( SceneNode node  )  [virtual]

virtual void VRS::SceneSwitch::clear (  )  [virtual]

These methods manage the internal list of scene subgraphs.

virtual void VRS::SceneSwitch::setMask ( SceneNode node,
Canvas canvas 
) [virtual]

virtual Canvas* VRS::SceneSwitch::getMask ( SceneNode node  )  const [virtual]

Assigns or returns the canvas for a specific child node.

virtual int VRS::SceneSwitch::childNodes (  )  const [virtual]

virtual SceneNode* VRS::SceneSwitch::childNode ( int  i  )  const [virtual]

Access to all child nodes of the switch node.

virtual void VRS::SceneSwitch::evaluate ( Engine engine  )  [virtual]

The evaluation request is delegated to all child nodes whose canvas equals the canvas of the current rendering engine.

Reimplemented from VRS::SceneNode.

virtual SceneNodeVisitor::TraversalFlag VRS::SceneSwitch::traverse ( SceneNodeVisitor visitor  )  [virtual]

The traversal is delegated to all child nodes regardless of the canvas mask.

Reimplemented from VRS::SceneNode.

virtual Bounds VRS::SceneSwitch::boundingBox ( Engine engine  )  const [virtual]

The bounding box of a canvas switch node is the combined bounding box of the bounding boxes of all children.

Reimplemented from VRS::SceneNode.

virtual void VRS::SceneSwitch::install ( Engine engine  )  [virtual]

Reimplemented from VRS::SceneNode.

virtual void VRS::SceneSwitch::deinstall ( Engine engine  )  [virtual]

Installation and deinstallation are not sensitive to the canvas assignments, i.e., all geometry subgraphs are installed resp. deinstalled.

Reimplemented from VRS::SceneNode.

VRS::SceneSwitch::VRS_TYPEINFO ( SceneSwitch  ,
SceneNode   
)

VRS::SceneSwitch::VRS_SERIALIZABLE ( SceneSwitch   ) 

virtual void VRS::SceneSwitch::acceptChildren ( std::vector< Visitable * > &  appendChildrenHere  )  const [protected, virtual]

Reimplemented from VRS::Visitable.


The documentation for this class was generated from the following file:

Generated on Tue May 22 06:00:30 2012 by Doxygen 1.5.6
© 2001-2010 Hasso-Plattner-Institut | Impressum | Contact