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 ObjectcloneType () const
 clone the 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 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 (const unsigned int i)
const GroupgetParent (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.

NodeCallbackgetAppCallback ()
 Get app node callback, called during app traversal.

const NodeCallbackgetAppCallback () 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.

NodeCallbackgetCullCallback ()
 Get app node callback, called during app traversal.

const NodeCallbackgetCullCallback () 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 DescriptionListgetDescriptions () const
 Get the description list of the const node.

DescriptionListgetDescriptions ()
 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::StateSetgetValidStateSet ()
 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 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.