osg::Node Class Reference

Inheritance diagram for osg::Node:
osg::Object osg::Referenced osg::Geode osg::Group osgParticle::ParticleProcessor osgParticle::ParticleSystemUpdater osgParticle::PrecipitationEffect osgSim::LightPointNode osg::Billboard osgSim::ScalarBar osgSim::SphereSegment osgWidget::Browser osgWidget::PdfReader osgWidget::VncClient osg::ClearNode osg::ClipNode osg::CoordinateSystemNode osg::LightSource osg::LOD osg::OccluderNode osg::OcclusionQueryNode osg::Projection osg::ProxyNode osg::Sequence osg::Switch osg::TexGenNode osg::Transform osgFX::Effect osgFX::MultiTextureControl osgParticle::ParticleEffect osgShadow::ShadowedScene osgSim::MultiSwitch osgSim::OverlayNode osgSim::VisibilityGroup osgTerrain::Terrain osgTerrain::TerrainTile osgVolume::Volume osgVolume::VolumeTile osgParticle::Emitter osgParticle::Program

List of all members.

Classes

struct  ComputeBoundingSphereCallback

Public Types

typedef std::vector< Group * > ParentList
typedef unsigned int NodeMask
typedef std::vector< std::string > DescriptionList

Public Member Functions

 Node ()
 Node (const Node &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual ObjectcloneType () const
virtual Objectclone (const CopyOp &copyop) const
virtual bool isSameKindAs (const Object *obj) const
virtual const char * libraryName () const
virtual const char * className () const
virtual GroupasGroup ()
virtual const GroupasGroup () const
virtual TransformasTransform ()
virtual const TransformasTransform () const
virtual SwitchasSwitch ()
virtual const SwitchasSwitch () const
virtual GeodeasGeode ()
virtual const GeodeasGeode () const
virtual void accept (NodeVisitor &nv)
virtual void ascend (NodeVisitor &nv)
virtual void traverse (NodeVisitor &)
const ParentListgetParents () const
ParentList getParents ()
GroupgetParent (unsigned int i)
const GroupgetParent (unsigned int i) const
unsigned int getNumParents () const
NodePathList getParentalNodePaths (osg::Node *haltTraversalAtNode=0) const
MatrixList getWorldMatrices (const osg::Node *haltTraversalAtNode=0) const
void setUpdateCallback (NodeCallback *nc)
NodeCallbackgetUpdateCallback ()
const NodeCallbackgetUpdateCallback () const
void addUpdateCallback (NodeCallback *nc)
void removeUpdateCallback (NodeCallback *nc)
unsigned int getNumChildrenRequiringUpdateTraversal () const
void setEventCallback (NodeCallback *nc)
NodeCallbackgetEventCallback ()
const NodeCallbackgetEventCallback () const
void addEventCallback (NodeCallback *nc)
void removeEventCallback (NodeCallback *nc)
unsigned int getNumChildrenRequiringEventTraversal () const
void setCullCallback (NodeCallback *nc)
NodeCallbackgetCullCallback ()
const NodeCallbackgetCullCallback () const
void addCullCallback (NodeCallback *nc)
void removeCullCallback (NodeCallback *nc)
void setCullingActive (bool active)
bool getCullingActive () const
unsigned int getNumChildrenWithCullingDisabled () const
bool isCullingActive () const
unsigned int getNumChildrenWithOccluderNodes () const
bool containsOccluderNodes () const
void setNodeMask (NodeMask nm)
NodeMask getNodeMask () const
void setDescriptions (const DescriptionList &descriptions)
DescriptionListgetDescriptions ()
const DescriptionListgetDescriptions () const
const std::string & getDescription (unsigned int i) const
std::string & getDescription (unsigned int i)
unsigned int getNumDescriptions () const
void addDescription (const std::string &desc)
void setStateSet (osg::StateSet *stateset)
osg::StateSetgetOrCreateStateSet ()
osg::StateSetgetStateSet ()
const osg::StateSetgetStateSet () const
void setInitialBound (const osg::BoundingSphere &bsphere)
const BoundingSpheregetInitialBound () const
void dirtyBound ()
const BoundingSpheregetBound () const
virtual BoundingSphere computeBound () const
void setComputeBoundingSphereCallback (ComputeBoundingSphereCallback *callback)
ComputeBoundingSphereCallbackgetComputeBoundingSphereCallback ()
const
ComputeBoundingSphereCallback
getComputeBoundingSphereCallback () const
virtual void setThreadSafeRefUnref (bool threadSafe)
virtual void resizeGLObjectBuffers (unsigned int)
virtual void releaseGLObjects (osg::State *=0) const

Protected Member Functions

virtual ~Node ()
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 _initialBound
ref_ptr
< ComputeBoundingSphereCallback
_computeBoundCallback
BoundingSphere _boundingSphere
bool _boundingSphereComputed
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
class osg::StateSet

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

virtual void osg::Node::accept ( NodeVisitor nv  )  [virtual]
void osg::Node::addCullCallback ( NodeCallback nc  )  [inline]

Convenience method that sets the cull callback of the node if it doesn't exist, or nest it into the existing one.

References NULL.

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

Add a description string to the node.

void osg::Node::addEventCallback ( NodeCallback nc  )  [inline]

Convenience method that sets the event callback of the node if it doesn't exist, or nest it into the existing one.

References NULL.

void osg::Node::addParent ( osg::Group node  )  [protected]
void osg::Node::addUpdateCallback ( NodeCallback nc  )  [inline]

Convenience method that sets the update callback of the node if it doesn't exist, or nest it into the existing one.

References NULL.

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

Traverse upwards : calls parents' accept method with NodeVisitor.

Referenced by osg::NodeVisitor::traverse().

virtual const Geode* osg::Node::asGeode (  )  const [inline, virtual]

convert 'const this' into a const Geode pointer if Node is a Geode, otherwise return 0. Equivalent to dynamic_cast<const Geode*>(this).

Reimplemented in osg::Geode.

virtual Geode* osg::Node::asGeode (  )  [inline, virtual]

Convert 'this' into a Geode pointer if Node is a Geode, otherwise return 0. Equivalent to dynamic_cast<Geode*>(this).

Reimplemented in osg::Geode.

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 Switch* osg::Node::asSwitch (  )  const [inline, virtual]

convert 'const this' into a const Switch pointer if Node is a Switch, otherwise return 0. Equivalent to dynamic_cast<const Switch*>(this).

Reimplemented in osg::Switch.

virtual Switch* osg::Node::asSwitch (  )  [inline, virtual]

Convert 'this' into a Switch pointer if Node is a Switch, otherwise return 0. Equivalent to dynamic_cast<Switch*>(this).

Reimplemented in osg::Switch.

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]
virtual Object* osg::Node::clone ( const CopyOp copyop  )  const [inline, virtual]

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

Implements osg::Object.

Reimplemented in osg::AutoTransform, and osgManipulator::AntiSquish.

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, and osgManipulator::AntiSquish.

virtual BoundingSphere osg::Node::computeBound (  )  const [virtual]
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 BoundingSphere& osg::Node::getBound (  )  const [inline]

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

Referenced by osg::CullStack::isCulled().

const ComputeBoundingSphereCallback* osg::Node::getComputeBoundingSphereCallback (  )  const [inline]

Get the const compute bound callback.

ComputeBoundingSphereCallback* osg::Node::getComputeBoundingSphereCallback (  )  [inline]

Get the compute bound callback.

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

Get const cull node callback, called during cull traversal.

NodeCallback* osg::Node::getCullCallback (  )  [inline]
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.

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

Get the const description list of the const node.

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

Get the description list of the node.

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

Get const event node callback, called during event traversal.

NodeCallback* osg::Node::getEventCallback (  )  [inline]
const BoundingSphere& osg::Node::getInitialBound (  )  const [inline]

Set the initial bounding volume to use when computing the overall bounding volume.

NodeMask osg::Node::getNodeMask (  )  const [inline]
unsigned int osg::Node::getNumChildrenRequiringEventTraversal (  )  const [inline]

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

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

Get the number of Children of this node which require Update traversal, since they have an Update Callback 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.

Referenced by osg::CollectOccludersVisitor::handle_cull_callbacks_and_accept(), and osg::CollectOccludersVisitor::handle_cull_callbacks_and_traverse().

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

Get the number of descriptions of the node.

Referenced by osgUtil::Optimizer::isOperationPermissibleForObjectImplementation().

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

Get the number of parents of node.

Returns:
the number of parents of this node.
osg::StateSet* osg::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]
NodePathList osg::Node::getParentalNodePaths ( osg::Node haltTraversalAtNode = 0  )  const

Get the list of node paths parent paths. The optional Node* haltTraversalAtNode allows the user to prevent traversal beyond a specifed node.

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]
const NodeCallback* osg::Node::getUpdateCallback (  )  const [inline]

Get const update node callback, called during update traversal.

NodeCallback* osg::Node::getUpdateCallback (  )  [inline]
MatrixList osg::Node::getWorldMatrices ( const osg::Node haltTraversalAtNode = 0  )  const

Get the list of matrices that transform this node from local coordinates to world coordinates. The optional Node* haltTraversalAtNode allows the user to prevent traversal beyond a specifed node.

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.

Referenced by osg::CullStack::isCulled().

virtual bool osg::Node::isSameKindAs ( const Object obj  )  const [inline, virtual]
virtual const char* osg::Node::libraryName (  )  const [inline, virtual]
virtual void osg::Node::releaseGLObjects ( osg::State = 0  )  const [virtual]

If State is non-zero, this function releases any associated OpenGL objects for the specified graphics context. Otherwise, releases OpenGL objects for all graphics contexts.

Reimplemented from osg::Object.

Reimplemented in osg::Camera, osg::Geode, osg::Group, osg::OcclusionQueryNode, and osgSim::OverlayNode.

void osg::Node::removeCullCallback ( NodeCallback nc  )  [inline]

Convenience method that removes a given callback from a node, even if that callback is nested. There is no error return in case the given callback is not found.

References osg::NodeCallback::getNestedCallback(), and NULL.

void osg::Node::removeEventCallback ( NodeCallback nc  )  [inline]

Convenience method that removes a given callback from a node, even if that callback is nested. There is no error return in case the given callback is not found.

References osg::NodeCallback::getNestedCallback(), and NULL.

void osg::Node::removeParent ( osg::Group node  )  [protected]
void osg::Node::removeUpdateCallback ( NodeCallback nc  )  [inline]

Convenience method that removes a given callback from a node, even if that callback is nested. There is no error return in case the given callback is not found.

References osg::NodeCallback::getNestedCallback(), and NULL.

virtual void osg::Node::resizeGLObjectBuffers ( unsigned  int  )  [virtual]

Resize any per context GLObject buffers to specified size.

Reimplemented from osg::Object.

Reimplemented in osg::Camera, osg::Geode, osg::Group, and osgSim::OverlayNode.

void osg::Node::setComputeBoundingSphereCallback ( ComputeBoundingSphereCallback callback  )  [inline]

Set the compute bound callback to override the default computeBound.

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

Set cull node callback, called during cull traversal.

void osg::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 osg::Node::setDescriptions ( const DescriptionList descriptions  )  [inline]

Set the description list of the node.

void osg::Node::setEventCallback ( NodeCallback nc  ) 

Set event node callback, called during event traversal.

void osg::Node::setInitialBound ( const osg::BoundingSphere bsphere  )  [inline]

Set the initial bounding volume to use when computing the overall bounding volume.

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

Set the node mask.

void osg::Node::setNumChildrenRequiringEventTraversal ( unsigned int  num  )  [protected]
void osg::Node::setNumChildrenRequiringUpdateTraversal ( unsigned int  num  )  [protected]
void osg::Node::setNumChildrenWithCullingDisabled ( unsigned int  num  )  [protected]
void osg::Node::setNumChildrenWithOccluderNodes ( unsigned int  num  )  [protected]
void osg::Node::setStateSet ( osg::StateSet stateset  ) 

Set the node's StateSet.

virtual void osg::Node::setThreadSafeRefUnref ( bool  threadSafe  )  [virtual]

Set whether to use a mutex to ensure ref() and unref() are thread safe.

Reimplemented from osg::Referenced.

Reimplemented in osg::Geode, osg::Group, osg::LightSource, osg::TexGenNode, and osgSim::OverlayNode.

void osg::Node::setUpdateCallback ( NodeCallback nc  ) 

Set update node callback, called during update traversal.

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

Friends And Related Function Documentation

friend class osg::Drawable [friend]
friend class osg::Group [friend]
friend class osg::StateSet [friend]

Member Data Documentation

bool osg::Node::_boundingSphereComputed [mutable, protected]
bool osg::Node::_cullingActive [protected]
unsigned int osg::Node::_numChildrenWithOccluderNodes [protected]

The documentation for this class was generated from the following file:
Generated on Sat Jun 5 21:47:57 2010 for openscenegraph by  doxygen 1.6.3