Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

osg::Node Class Reference

Base class for all internal nodes in the scene graph. More...

Inheritance diagram for osg::Node:

Inheritance graph
[legend]
List of all members.

Public Types

typedef std::vector< Group * > ParentList
 A vector of osg::Group pointers which is used to store the parent(s) of node.

typedef unsigned int NodeMask
typedef std::vector< std::string > DescriptionList
 A vector of std::string's which are used to describe the object.


Public Methods

 Node ()
 Construct a node.

 Node (const Node &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 Copy constructor using CopyOp to manage deep vs shallow copy.

virtual Object * cloneType () const
 clone the an object of the same type as the node.

virtual Object * clone (const CopyOp &copyop) const
 return a clone of a node, with Object* return type.

virtual bool isSameKindAs (const Object *obj) const
 return true if this and obj are of the same kind of object.

virtual const char * libraryName () const
 return the name of the node's library.

virtual const char * className () const
 return the name of the node's class type.

virtual void accept (NodeVisitor &nv)
 Visitor Pattern : calls the apply method of a NodeVisitor with this node's type.

virtual void ascend (NodeVisitor &nv)
 Traverse upwards : calls parents' accept method with NodeVisitor.

virtual void traverse (NodeVisitor &)
 Traverse downwards : calls children's accept method with NodeVisitor.

void setName (const std::string &name)
 Set the name of node using C++ style string.

void setName (const char *name)
 Set the name of node using a C style string.

const std::string & getName () const
 Get the name of node.

const ParentList & getParents () const
 Get the parent list of node.

ParentList getParents ()
 Get the a copy of parent list of node.

Group * getParent (const unsigned int i)
const Group * getParent (const unsigned int i) const
 Get a single const parent of node.

const unsigned int getNumParents () const
 Get the number of parents of node.

void setAppCallback (NodeCallback *nc)
 Set app node callback, called during app traversal.

NodeCallback * getAppCallback ()
 Get app node callback, called during app traversal.

const NodeCallback * getAppCallback () const
 Get const app node callback, called during app traversal.

const int getNumChildrenRequiringAppTraversal () const
 Get the number of Children of this node which require App traversal, since they have an AppCallback attached to them or their children.

void setCullCallback (NodeCallback *nc)
 Set cull node callback, called during cull traversal.

NodeCallback * getCullCallback ()
 Get app node callback, called during app traversal.

const NodeCallback * getCullCallback () const
 Get const app node callback, called during app traversal.

void setCullingActive (const bool active)
 Set the view frustum/small feature culling of this node to be active or inactive.

const bool getCullingActive () const
 Get the view frustum/small feature _cullingActive flag for this node.

const int getNumChildrenWithCullingDisabled () const
 Get the number of Children of this node which have culling disabled.

const bool isCullingActive () const
 Return true if this node can be culled by view frustum, occlusion or small feature culling during the cull traversal.

const int getNumChildrenWithOccluderNodes () const
 Get the number of Children of this node which are or have OccluderNode's.

const bool containsOccluderNodes () const
 return true if this node is an OccluderNode or the subgraph below this node are OccluderNodes.

void setNodeMask (const NodeMask nm)
 Set the node mask.

const NodeMask getNodeMask () const
 Get the node Mask.

const DescriptionList & getDescriptions () const
 Get the description list of the const node.

DescriptionList & getDescriptions ()
 Get the description list of the const node.

const std::string & getDescription (const int i) const
 Get a single const description of the const node.

std::string & getDescription (const int i)
 Get a single description of the node.

const int getNumDescriptions () const
 Get the number of descriptions of the node.

void addDescription (const std::string &desc)
 Add a description string to the node.

void setStateSet (osg::StateSet *dstate)
 set the node's StateSet.

osg::StateSet * getValidStateSet ()
 return the node's StateSet, if one does not already exist create it set the node and return the newly created StateSet.

osg::StateSet * getStateSet ()
 return the node's StateSet.

const osg::StateSet * getStateSet () const
 return the node's const StateSet.

const BoundingSphere & getBound () const
 get the bounding sphere of node.

void dirtyBound ()
 Mark this node's bounding sphere dirty.


Protected Methods

virtual ~Node ()
 Node destructor.

virtual const bool computeBound () const
 Compute the bounding sphere around Node's geometry or children.

void addParent (osg::Group *node)
void removeParent (osg::Group *node)
void setNumChildrenRequiringAppTraversal (const int num)
void setNumChildrenWithCullingDisabled (const int num)
void setNumChildrenWithOccluderNodes (const int num)

Protected Attributes

BoundingSphere _bsphere
bool _bsphere_computed
std::string _name
ParentList _parents
ref_ptr< NodeCallback > _appCallback
int _numChildrenRequiringAppTraversal
ref_ptr< NodeCallback > _cullCallback
bool _cullingActive
int _numChildrenWithCullingDisabled
int _numChildrenWithOccluderNodes
NodeMask _nodeMask
DescriptionList _descriptions
ref_ptr< StateSet > _dstate

Friends

class osg::Group
class osg::Drawable

Detailed Description

Base class for all internal nodes in the scene graph.

Provides interface for most common node operations (Composite Pattern).


Member Typedef Documentation

typedef std::vector<std::string> osg::Node::DescriptionList
 

A vector of std::string's which are used to describe the object.

typedef unsigned int osg::Node::NodeMask
 

typedef std::vector<Group*> osg::Node::ParentList
 

A vector of osg::Group pointers which is used to store the parent(s) of node.


Constructor & Destructor Documentation

osg::Node::Node (    ) 
 

Construct a node.

Initialize the parent list to empty, node name to "" and bounding sphere dirty flag to true.

osg::Node::Node (  const Node &   ,
const CopyOp &    copyop = CopyOp::SHALLOW_COPY
) 
 

Copy constructor using CopyOp to manage deep vs shallow copy.

virtual osg::Node::~Node (    )  [protected, virtual]
 

Node destructor.

Note, is protected so that Nodes cannot be deleted other than by being dereferenced and the reference count being zero (see osg::Referenced), preventing the deletion of nodes which are still in use. This also means that Node's cannot be created on stack i.e Node node will not compile, forcing all nodes to be created on the heap i.e Node* node = new Node().


Member Function Documentation

virtual void osg::Node::accept (  NodeVisitor &    nv )  [virtual]
 

Visitor Pattern : calls the apply method of a NodeVisitor with this node's type.

Reimplemented in osgParticle::Emitter, osgParticle::ParticleProcessor, and osgParticle::Program.

void osg::Node::addDescription (  const std::string &    desc )  [inline]
 

Add a description string to the node.

void osg::Node::addParent (  osg::Group *    node )  [protected]
 

virtual void osg::Node::ascend (  NodeVisitor &    nv )  [virtual]
 

Traverse upwards : calls parents' accept method with NodeVisitor.

virtual const char* osg::Node::className (    )  const [inline, virtual]
 

return the name of the node's class type.

Implements osg::Object.

Reimplemented in osgParticle::Emitter, osgParticle::ParticleProcessor, and osgParticle::Program.

virtual Object* osg::Node::clone (  const CopyOp &    copyop )  const [inline, virtual]
 

return a clone of a node, with Object* return type.

Implements osg::Object.

virtual Object* osg::Node::cloneType (    )  const [inline, virtual]
 

clone the an object of the same type as the node.

Implements osg::Object.

virtual const bool osg::Node::computeBound (    )  const [protected, virtual]
 

Compute the bounding sphere around Node's geometry or children.

This method is automatically called by getBound() when the bounding sphere has been marked dirty via dirtyBound().

Reimplemented in osg::Billboard, osg::ClipNode, osg::Geode, osg::Group, osg::Impostor, osg::LightSource, osg::OccluderNode, osg::Transform, osgParticle::ParticleProcessor, and osgParticle::ParticleSystemUpdater.

const bool osg::Node::containsOccluderNodes (    )  const
 

return true if this node is an OccluderNode or the subgraph below this node are OccluderNodes.

void osg::Node::dirtyBound (    ) 
 

Mark this node's bounding sphere dirty.

Forcing it to be computed on the next call to getBound().

const NodeCallback* osg::Node::getAppCallback (    )  const [inline]
 

Get const app node callback, called during app traversal.

NodeCallback* osg::Node::getAppCallback (    )  [inline]
 

Get app node callback, called during app traversal.

const BoundingSphere& osg::Node::getBound (    )  const [inline]
 

get the bounding sphere of node.

Using lazy evaluation computes the bounding sphere if it is 'dirty'.

const NodeCallback* osg::Node::getCullCallback (    )  const [inline]
 

Get const app node callback, called during app traversal.

NodeCallback* osg::Node::getCullCallback (    )  [inline]
 

Get app node callback, called during app traversal.

const bool osg::Node::getCullingActive (    )  const [inline]
 

Get the view frustum/small feature _cullingActive flag for this node.

Used a guide to the cull traversal.

std::string& osg::Node::getDescription (  const int    i )  [inline]
 

Get a single description of the node.

const std::string& osg::Node::getDescription (  const int    i )  const [inline]
 

Get a single const description of the const node.

DescriptionList& osg::Node::getDescriptions (    )  [inline]
 

Get the description list of the const node.

const DescriptionList& osg::Node::getDescriptions (    )  const [inline]
 

Get the description list of the const node.

const std::string& osg::Node::getName (    )  const [inline]
 

Get the name of node.

const NodeMask osg::Node::getNodeMask (    )  const [inline]
 

Get the node Mask.

Note, node mask is will be replaced by TraversalMask.

const int osg::Node::getNumChildrenRequiringAppTraversal (    )  const [inline]
 

Get the number of Children of this node which require App traversal, since they have an AppCallback attached to them or their children.

const int osg::Node::getNumChildrenWithCullingDisabled (    )  const [inline]
 

Get the number of Children of this node which have culling disabled.

const int osg::Node::getNumChildrenWithOccluderNodes (    )  const [inline]
 

Get the number of Children of this node which are or have OccluderNode's.

const int osg::Node::getNumDescriptions (    )  const [inline]
 

Get the number of descriptions of the node.

const unsigned int osg::Node::getNumParents (    )  const [inline]
 

Get the number of parents of node.

Returns:
the number of parents of this node.

const Group* osg::Node::getParent (  const unsigned int    i )  const [inline]
 

Get a single const parent of node.

Parameters:
i  index of the parent to get.
Returns:
the parent i.

Group* osg::Node::getParent (  const unsigned int    i )  [inline]
 

ParentList osg::Node::getParents (    )  [inline]
 

Get the a copy of parent list of node.

A copy is returned to prevent modification of the parent list.

const ParentList& osg::Node::getParents (    )  const [inline]
 

Get the parent list of node.

const osg::StateSet* osg::Node::getStateSet (    )  const [inline]
 

return the node's const StateSet.

returns NULL if a stateset is not attached.

osg::StateSet* osg::Node::getStateSet (    )  [inline]
 

return the node's StateSet.

returns NULL if a stateset is not attached.

osg::StateSet* osg::Node::getValidStateSet (    ) 
 

return the node's StateSet, if one does not already exist create it set the node and return the newly created StateSet.

This ensures that a valid StateSet is always returned and can be used directly.

const bool osg::Node::isCullingActive (    )  const [inline]
 

Return true if this node can be culled by view frustum, occlusion or small feature culling during the cull traversal.

note, return true only if no children have culling disabled, and the local _cullingActive flag is true.

virtual bool osg::Node::isSameKindAs (  const Object *    obj )  const [inline, virtual]
 

return true if this and obj are of the same kind of object.

Reimplemented from osg::Object.

virtual const char* osg::Node::libraryName (    )  const [inline, virtual]
 

return the name of the node's library.

Implements osg::Object.

Reimplemented in osgParticle::Emitter, and osgParticle::Program.

void osg::Node::removeParent (  osg::Group *    node )  [protected]
 

void osg::Node::setAppCallback (  NodeCallback *    nc ) 
 

Set app node callback, called during app traversal.

void osg::Node::setCullCallback (  NodeCallback *    nc )  [inline]
 

Set cull node callback, called during cull traversal.

void osg::Node::setCullingActive (  const bool    active ) 
 

Set the view frustum/small feature culling of this node to be active or inactive.

The default value to true for _cullingActive. Used a guide to the cull traversal.

void osg::Node::setName (  const char *    name )  [inline]
 

Set the name of node using a C style string.

void osg::Node::setName (  const std::string &    name )  [inline]
 

Set the name of node using C++ style string.

void osg::Node::setNodeMask (  const NodeMask    nm )  [inline]
 

Set the node mask.

Note, node mask is will be replaced by TraversalMask.

void osg::Node::setNumChildrenRequiringAppTraversal (  const int    num )  [protected]
 

void osg::Node::setNumChildrenWithCullingDisabled (  const int    num )  [protected]
 

void osg::Node::setNumChildrenWithOccluderNodes (  const int    num )  [protected]
 

void osg::Node::setStateSet (  osg::StateSet *    dstate )  [inline]
 

set the node's StateSet.

virtual void osg::Node::traverse (  NodeVisitor &    )  [inline, virtual]
 

Traverse downwards : calls children's accept method with NodeVisitor.

Reimplemented in osg::DOFTransform, osg::Group, osg::LOD, osg::Sequence, osg::Switch, osgParticle::ParticleProcessor, and osgParticle::ParticleSystemUpdater.


Friends And Related Function Documentation

friend class osg::Drawable [friend]
 

friend class osg::Group [friend]
 


Member Data Documentation

ref_ptr<NodeCallback> osg::Node::_appCallback [protected]
 

BoundingSphere osg::Node::_bsphere [protected]
 

bool osg::Node::_bsphere_computed [protected]
 

ref_ptr<NodeCallback> osg::Node::_cullCallback [protected]
 

bool osg::Node::_cullingActive [protected]
 

DescriptionList osg::Node::_descriptions [protected]
 

ref_ptr<StateSet> osg::Node::_dstate [protected]
 

std::string osg::Node::_name [protected]
 

NodeMask osg::Node::_nodeMask [protected]
 

int osg::Node::_numChildrenRequiringAppTraversal [protected]
 

int osg::Node::_numChildrenWithCullingDisabled [protected]
 

int osg::Node::_numChildrenWithOccluderNodes [protected]
 

ParentList osg::Node::_parents [protected]
 


The documentation for this class was generated from the following file:
Generated at Wed Sep 18 13:55:34 2002 for the Open Scene Graph by doxygen 1.2.16.