Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class 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 Member Functions

 Node ()
 Construct a node.
 Node (const Node &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 Copy constructor using CopyOp to manage deep vs shallow copy.
virtual ObjectcloneType () const
 clone an object of the same type as the node.
virtual Objectclone (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 GroupasGroup ()
 convert 'this' into a Group pointer if Node is a Group, otherwise return 0.
virtual const GroupasGroup () const
 convert 'const this' into a const Group pointer if Node is a Group, otherwise return 0.
virtual TransformasTransform ()
 Convert 'this' into a Transform pointer if Node is a Transform, otherwise return 0.
virtual const TransformasTransform () const
 convert 'const this' into a const Transform pointer if Node is a Transform, otherwise return 0.
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 ParentListgetParents () const
 Get the parent list of node.
ParentList getParents ()
 Get the a copy of parent list of node.
GroupgetParent (unsigned int i)
const GroupgetParent (unsigned int i) const
 Get a single const parent of node.
unsigned int getNumParents () const
 Get the number of parents of node.
void setUpdateCallback (NodeCallback *nc)
 Set update node callback, called during update traversal.
NodeCallbackgetUpdateCallback ()
 Get update node callback, called during update traversal.
const NodeCallbackgetUpdateCallback () const
 Get const update node callback, called during update traversal.
unsigned int getNumChildrenRequiringUpdateTraversal () 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 setEventCallback (NodeCallback *nc)
 Set update node callback, called during update traversal.
NodeCallbackgetEventCallback ()
 Get update node callback, called during update traversal.
const NodeCallbackgetEventCallback () const
 Get const update node callback, called during update traversal.
unsigned int getNumChildrenRequiringEventTraversal () 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.
NodeCallbackgetCullCallback ()
 Get cull node callback, called during cull traversal.
const NodeCallbackgetCullCallback () const
 Get const cull node callback, called during cull traversal.
void setCullingActive (bool active)
 Set the view frustum/small feature culling of this node to be active or inactive.
bool getCullingActive () const
 Get the view frustum/small feature _cullingActive flag for this node.
unsigned int getNumChildrenWithCullingDisabled () const
 Get the number of Children of this node which have culling disabled.
bool isCullingActive () const
 Return true if this node can be culled by view frustum, occlusion or small feature culling during the cull traversal.
unsigned int getNumChildrenWithOccluderNodes () const
 Get the number of Children of this node which are or have OccluderNode's.
bool containsOccluderNodes () const
 return true if this node is an OccluderNode or the subgraph below this node are OccluderNodes.
void setNodeMask (NodeMask nm)
 Set the node mask.
NodeMask getNodeMask () const
 Get the node Mask.
const DescriptionListgetDescriptions () const
 Get the description list of the const node.
DescriptionListgetDescriptions ()
 Get the description list of the const node.
const std::string & getDescription (unsigned int i) const
 Get a single const description of the const node.
std::string & getDescription (unsigned int i)
 Get a single description of the node.
unsigned 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::StateSetgetOrCreateStateSet ()
 return the node's StateSet, if one does not already exist create it set the node and return the newly created StateSet.
osg::StateSetgetStateSet ()
 Return the node's StateSet.
const osg::StateSetgetStateSet () const
 return the node's const StateSet.
const BoundingSpheregetBound () const
 get the bounding sphere of node.
void dirtyBound ()
 Mark this node's bounding sphere dirty.

Protected Member Functions

virtual ~Node ()
 Node destructor.
virtual bool computeBound () const
 Compute the bounding sphere around Node's geometry or children.
void addParent (osg::Group *node)
void removeParent (osg::Group *node)
void setNumChildrenRequiringUpdateTraversal (unsigned int num)
void setNumChildrenRequiringEventTraversal (unsigned int num)
void setNumChildrenWithCullingDisabled (unsigned int num)
void setNumChildrenWithOccluderNodes (unsigned int num)

Protected Attributes

BoundingSphere _bsphere
bool _bsphere_computed
std::string _name
ParentList _parents
ref_ptr< NodeCallback_updateCallback
unsigned int _numChildrenRequiringUpdateTraversal
ref_ptr< NodeCallback_eventCallback
unsigned int _numChildrenRequiringEventTraversal
ref_ptr< NodeCallback_cullCallback
bool _cullingActive
unsigned int _numChildrenWithCullingDisabled
unsigned int _numChildrenWithOccluderNodes
NodeMask _nodeMask
DescriptionList _descriptions
ref_ptr< StateSet_stateset

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

Node::Node  ) 
 

Construct a node.

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

Node::Node const Node ,
const CopyOp copyop = CopyOp::SHALLOW_COPY
 

Copy constructor using CopyOp to manage deep vs shallow copy.

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 Nodes 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

void Node::accept NodeVisitor nv  )  [virtual]
 

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

Reimplemented in osg::AutoTransform.

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

Add a description string to the node.

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

void Node::ascend NodeVisitor nv  )  [virtual]
 

Traverse upwards : calls parents' accept method with NodeVisitor.

virtual const Group* osg::Node::asGroup  )  const [inline, virtual]
 

convert 'const this' into a const Group pointer if Node is a Group, otherwise return 0.

Equivalent to dynamic_cast<const Group*>(this).

Reimplemented in osg::Group.

virtual Group* osg::Node::asGroup  )  [inline, virtual]
 

convert 'this' into a Group pointer if Node is a Group, otherwise return 0.

Equivalent to dynamic_cast<Group*>(this).

Reimplemented in osg::Group.

virtual const Transform* osg::Node::asTransform  )  const [inline, virtual]
 

convert 'const this' into a const Transform pointer if Node is a Transform, otherwise return 0.

Equivalent to dynamic_cast<const Transform*>(this).

Reimplemented in osg::Transform.

virtual Transform* osg::Node::asTransform  )  [inline, virtual]
 

Convert 'this' into a Transform pointer if Node is a Transform, otherwise return 0.

Equivalent to dynamic_cast<Transform*>(this).

Reimplemented in osg::Transform.

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

return the name of the node's class type.

Implements osg::Object.

Reimplemented in osg::AutoTransform, osgFX::Effect, osgParticle::Emitter, osgParticle::ParticleEffect, 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 an object of the same type as the node.

Implements osg::Object.

Reimplemented in osg::AutoTransform.

bool 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::LOD, osg::OccluderNode, osg::Transform, osgParticle::ParticleProcessor, osgParticle::ParticleSystemUpdater, and osgSim::LightPointNode.

bool Node::containsOccluderNodes  )  const
 

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

void Node::dirtyBound  ) 
 

Mark this node's bounding sphere dirty.

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

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 cull node callback, called during cull traversal.

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

Get cull node callback, called during cull traversal.

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

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

Used as a guide to the cull traversal.

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

Get a single description of the node.

const std::string& osg::Node::getDescription unsigned 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 NodeCallback* osg::Node::getEventCallback  )  const [inline]
 

Get const update node callback, called during update traversal.

NodeCallback* osg::Node::getEventCallback  )  [inline]
 

Get update node callback, called during update traversal.

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

Get the name of node.

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

Get the node Mask.

unsigned int osg::Node::getNumChildrenRequiringEventTraversal  )  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.

unsigned int osg::Node::getNumChildrenRequiringUpdateTraversal  )  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.

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

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

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

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

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

Get the number of descriptions of the node.

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

Get the number of parents of node.

Returns:
the number of parents of this node.

osg::StateSet * Node::getOrCreateStateSet  ) 
 

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 Group* osg::Node::getParent 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 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.

const NodeCallback* osg::Node::getUpdateCallback  )  const [inline]
 

Get const update node callback, called during update traversal.

NodeCallback* osg::Node::getUpdateCallback  )  [inline]
 

Get update node callback, called during update traversal.

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, returns 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 osg::AutoTransform, osgFX::Effect, osgParticle::Emitter, osgParticle::ParticleEffect, osgParticle::ParticleProcessor, and osgParticle::Program.

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

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

Set cull node callback, called during cull traversal.

void Node::setCullingActive bool  active  ) 
 

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

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

void Node::setEventCallback NodeCallback nc  ) 
 

Set update node callback, called during update 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 NodeMask  nm  )  [inline]
 

Set the node mask.

void Node::setNumChildrenRequiringEventTraversal unsigned int  num  )  [protected]
 

void Node::setNumChildrenRequiringUpdateTraversal unsigned int  num  )  [protected]
 

void Node::setNumChildrenWithCullingDisabled unsigned int  num  )  [protected]
 

void Node::setNumChildrenWithOccluderNodes unsigned int  num  )  [protected]
 

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

Set the node's StateSet.

void Node::setUpdateCallback NodeCallback nc  ) 
 

Set update node callback, called during update traversal.

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

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

Reimplemented in osg::Group, osg::LOD, osg::PagedLOD, osg::Sequence, and osg::Switch.


Friends And Related Function Documentation

friend class osg::Drawable [friend]
 

friend class osg::Group [friend]
 


Member Data Documentation

BoundingSphere osg::Node::_bsphere [mutable, protected]
 

bool osg::Node::_bsphere_computed [mutable, protected]
 

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

bool osg::Node::_cullingActive [protected]
 

DescriptionList osg::Node::_descriptions [protected]
 

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

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

NodeMask osg::Node::_nodeMask [protected]
 

unsigned int osg::Node::_numChildrenRequiringEventTraversal [protected]
 

unsigned int osg::Node::_numChildrenRequiringUpdateTraversal [protected]
 

unsigned int osg::Node::_numChildrenWithCullingDisabled [protected]
 

unsigned int osg::Node::_numChildrenWithOccluderNodes [protected]
 

ParentList osg::Node::_parents [protected]
 

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

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


The documentation for this class was generated from the following files:
Generated at Thu Oct 13 09:02:32 2005 for the OpenSceneGraph by doxygen 1.4.1.