osg::Node Class Reference

`#include <Node>`

Inheritance diagram for osg::Node:

## Classes

struct | ComputeBoundingSphereCallback

## Public Types

typedef std::vector< Group * > | ParentList
typedef unsigned int | NodeMask
typedef std::vector< std::string > | DescriptionList
Public Types inherited from osg::Object
enum | DataVariance { DYNAMIC , STATIC , UNSPECIFIED }

## Public Member Functions

| Node ()
| Node (const Node &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual Object * | cloneType () const
virtual Object * | clone (const CopyOp &copyop) const
virtual bool | isSameKindAs (const Object *obj) const
virtual const char * | libraryName () const
virtual const char * | className () const
virtual Node * | asNode ()
virtual const Node * | asNode () const
virtual Drawable * | asDrawable ()
virtual const Drawable * | asDrawable () const
virtual Geometry * | asGeometry ()
virtual const Geometry * | asGeometry () const
virtual Group * | asGroup ()
virtual const Group * | asGroup () const
virtual Transform * | asTransform ()
virtual const Transform * | asTransform () const
virtual Switch * | asSwitch ()
virtual const Switch * | asSwitch () const
virtual Geode * | asGeode ()
virtual const Geode * | asGeode () const
virtual osgTerrain::Terrain * | asTerrain ()
virtual const osgTerrain::Terrain * | asTerrain () const
virtual void | accept (NodeVisitor &nv)
virtual void | ascend (NodeVisitor &nv)
virtual void | traverse (NodeVisitor &)
const ParentList & | getParents () const
ParentList | getParents ()
Group * | getParent (unsigned int i)
const Group * | getParent (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 (Callback *nc)
template<class T>
void | setUpdateCallback (const ref_ptr< T > &nc)
Callback * | getUpdateCallback ()
const Callback * | getUpdateCallback () const
void | addUpdateCallback (Callback *nc)
template<class T>
void | addUpdateCallback (const ref_ptr< T > &nc)
void | removeUpdateCallback (Callback *nc)
template<class T>
void | removeUpdateCallback (const ref_ptr< T > &nc)
unsigned int | getNumChildrenRequiringUpdateTraversal () const
void | setEventCallback (Callback *nc)
template<class T>
void | setEventCallback (const ref_ptr< T > &nc)
Callback * | getEventCallback ()
const Callback * | getEventCallback () const
void | addEventCallback (Callback *nc)
template<class T>
void | addEventCallback (const ref_ptr< T > &nc)
void | removeEventCallback (Callback *nc)
template<class T>
void | removeEventCallback (const ref_ptr< T > &nc)
unsigned int | getNumChildrenRequiringEventTraversal () const
void | setCullCallback (Callback *nc)
template<class T>
void | setCullCallback (const ref_ptr< T > &nc)
Callback * | getCullCallback ()
const Callback * | getCullCallback () const
void | addCullCallback (Callback *nc)
template<class T>
void | addCullCallback (const ref_ptr< T > &nc)
void | removeCullCallback (Callback *nc)
template<class T>
void | removeCullCallback (const ref_ptr< T > &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 | setStateSet (osg::StateSet *stateset)
template<class T>
void | setStateSet (const osg::ref_ptr< T > &stateset)
osg::StateSet * | getOrCreateStateSet ()
osg::StateSet * | getStateSet ()
const osg::StateSet * | getStateSet () const
void | setDescriptions (const DescriptionList &descriptions)
DescriptionList & | getDescriptions ()
const DescriptionList & | getDescriptions () 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 | setInitialBound (const osg::BoundingSphere &bsphere)
const BoundingSphere & | getInitialBound () const
void | dirtyBound ()
const BoundingSphere & | getBound () const
virtual BoundingSphere | computeBound () const
void | setComputeBoundingSphereCallback (ComputeBoundingSphereCallback *callback)
template<class T>
void | setComputeBoundingSphereCallback (const ref_ptr< T > &callback)
ComputeBoundingSphereCallback * | getComputeBoundingSphereCallback ()
const ComputeBoundingSphereCallback * | getComputeBoundingSphereCallback () const
virtual void | setThreadSafeRefUnref (bool threadSafe)
virtual void | resizeGLObjectBuffers (unsigned int)
virtual void | releaseGLObjects (osg::State *=0) const
Public Member Functions inherited from osg::Object
| Object ()
| Object (bool threadSafeRefUnref)
| Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
std::string | getCompoundClassName () const
virtual NodeVisitor * | asNodeVisitor ()
virtual const NodeVisitor * | asNodeVisitor () const
virtual StateSet * | asStateSet ()
virtual const StateSet * | asStateSet () const
virtual StateAttribute * | asStateAttribute ()
virtual const StateAttribute * | asStateAttribute () const
virtual Uniform * | asUniform ()
virtual const Uniform * | asUniform () const
virtual Camera * | asCamera ()
virtual const Camera * | asCamera () const
virtual Callback * | asCallback ()
virtual const Callback * | asCallback () const
virtual CallbackObject * | asCallbackObject ()
virtual const CallbackObject * | asCallbackObject () const
virtual UserDataContainer * | asUserDataContainer ()
virtual const UserDataContainer * | asUserDataContainer () const
virtual ValueObject * | asValueObject ()
virtual const ValueObject * | asValueObject () const
virtual Image * | asImage ()
virtual const Image * | asImage () const
virtual void | setName (const std::string &name)
void | setName (const char *name)
const std::string & | getName () const
void | setDataVariance (DataVariance dv)
DataVariance | getDataVariance () const
virtual void | computeDataVariance ()
void | setUserDataContainer (osg::UserDataContainer *udc)
template<class T>
void | setUserDataContainer (const ref_ptr< T > &udc)
osg::UserDataContainer * | getUserDataContainer ()
const osg::UserDataContainer * | getUserDataContainer () const
osg::UserDataContainer * | getOrCreateUserDataContainer ()
virtual void | setUserData (Referenced *obj)
template<class T>
void | setUserData (const ref_ptr< T > &ud)
virtual Referenced * | getUserData ()
virtual const Referenced * | getUserData () const
template<typename T>
bool | getUserValue (const std::string &name, T &value) const
template<typename T>
void | setUserValue (const std::string &name, const T &value)
template<typename T>
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const
Public Member Functions inherited from osg::Referenced
| Referenced ()
| Referenced (bool threadSafeRefUnref)
| Referenced (const Referenced &)
Referenced & | operator= (const Referenced &)
bool | getThreadSafeRefUnref () const
OpenThreads::Mutex * | getRefMutex () const
int | ref () const
int | unref () const
int | unref_nodelete () const
int | referenceCount () const
ObserverSet * | getObserverSet () const
ObserverSet * | getOrCreateObserverSet () const
void | addObserver (Observer *observer) const
void | removeObserver (Observer *observer) const

## Protected Member Functions

virtual | ~Node ()
void | addParent (osg::Group *parent)
void | removeParent (osg::Group *parent)
void | setNumChildrenRequiringUpdateTraversal (unsigned int num)
void | setNumChildrenRequiringEventTraversal (unsigned int num)
void | setNumChildrenWithCullingDisabled (unsigned int num)
void | setNumChildrenWithOccluderNodes (unsigned int num)
Protected Member Functions inherited from osg::Object
virtual | ~Object ()
Protected Member Functions inherited from osg::Referenced
virtual | ~Referenced ()
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const
void | deleteUsingDeleteHandler () const

## Protected Attributes

BoundingSphere | _initialBound
ref_ptr< ComputeBoundingSphereCallback > | _computeBoundCallback
BoundingSphere | _boundingSphere
bool | _boundingSphereComputed
ParentList | _parents
ref_ptr< Callback > | _updateCallback
unsigned int | _numChildrenRequiringUpdateTraversal
ref_ptr< Callback > | _eventCallback
unsigned int | _numChildrenRequiringEventTraversal
ref_ptr< Callback > | _cullCallback
bool | _cullingActive
unsigned int | _numChildrenWithCullingDisabled
unsigned int | _numChildrenWithOccluderNodes
NodeMask | _nodeMask
ref_ptr< StateSet > | _stateset
Protected Attributes inherited from osg::Object
std::string | _name
DataVariance | _dataVariance
osg::UserDataContainer * | _userDataContainer
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr | _observerSet
OpenThreads::Atomic | _refCount

## Friends

class | osg::Group
class | osg::Drawable
class | osg::StateSet

## Additional Inherited Members

Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * | getGlobalReferencedMutex ()
static void | setDeleteHandler (DeleteHandler *handler)
static DeleteHandler * | getDeleteHandler ()

## Detailed Description

Base class for all internal nodes in the scene graph. Provides interface for most common node operations (Composite Pattern).

## Member Typedef Documentation

## DescriptionList

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

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

## NodeMask

typedef unsigned int osg::Node::NodeMask

This is a set of bits (flags) that represent the Node. The default value is 0xffffffff (all bits set).

The most common use of these is during traversal of the scene graph. For instance, when traversing the scene graph the osg::NodeVisitor does a bitwise AND of its TraversalMask with the Node's NodeMask to determine if the Node should be processed/traversed.

For example, if a Node has a NodeMask value of 0x02 (only 2nd bit set) and the osg::Camera has a CullMask of 0x4 (2nd bit not set) then during cull traversal, which takes it's TraversalMask from the Camera's CullMask, the node and any children would be ignored and thereby treated as "culled" and thus not rendered. Conversely, if the osg::Camera CullMask were 0x3 (2nd bit set) then the node would be processed and child Nodes would be examined.

## ParentList

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() [1/2]

osg::Node::Node | ( |  | ) |

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

Referenced by osg::Group::addChild(), asNode(), asNode(), clone(), cloneType(), osg::Group::containsNode(), osg::Group::getChild(), osg::Group::getChild(), osg::Group::getChildIndex(), osg::Group::insertChild(), isSameKindAs(), Node(), osg::Group::removeChild(), osg::Group::replaceChild(), and osg::Group::setChild().

## Node() [2/2]

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

Copy constructor using CopyOp to manage deep vs shallow copy.

References Node(), and osg::CopyOp::SHALLOW_COPY.

## ~Node()

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

## accept()

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::ParticleEffect, osgParticle::ParticleProcessor, osgParticle::PrecipitationEffect, and osgParticle::Program.

Referenced by osgDB::Registry::_buildKdTreeIfRequired(), osg::CollectOccludersVisitor::handle_cull_callbacks_and_accept(), osgUtil::CullVisitor::handle_cull_callbacks_and_accept(), osg::NodeAcceptOp::operator()(), and osgUtil::optimizeMesh().

## addCullCallback() [1/2]

void osg::Node::addCullCallback | ( | Callback * | 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 _cullCallback, NULL, and setCullCallback().

## addCullCallback() [2/2]

template<class T>

void osg::Node::addCullCallback | ( | const ref_ptr< T > & | nc | ) |

inline

References addCullCallback(), and osg::ref_ptr< T >::get().

Referenced by addCullCallback().

## addDescription()

void osg::Node::addDescription | ( | const std::string & | desc | ) |

Add a description string to the node.

## addEventCallback() [1/2]

void osg::Node::addEventCallback | ( | Callback * | 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 _eventCallback, NULL, and setEventCallback().

## addEventCallback() [2/2]

template<class T>

void osg::Node::addEventCallback | ( | const ref_ptr< T > & | nc | ) |

inline

References addEventCallback(), and osg::ref_ptr< T >::get().

Referenced by addEventCallback().

## addParent()

void osg::Node::addParent | ( | osg::Group * | parent | ) |

protected

## addUpdateCallback() [1/2]

void osg::Node::addUpdateCallback | ( | Callback * | 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 _updateCallback, NULL, and setUpdateCallback().

## addUpdateCallback() [2/2]

template<class T>

void osg::Node::addUpdateCallback | ( | const ref_ptr< T > & | nc | ) |

inline

References addUpdateCallback(), and osg::ref_ptr< T >::get().

Referenced by addUpdateCallback().

## ascend()

virtual void osg::Node::ascend | ( | NodeVisitor & | nv | ) |

virtual

Traverse upwards : calls parents' accept method with NodeVisitor.

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

## asDrawable() [1/2]

virtual Drawable * osg::Node::asDrawable | ( |  | ) |

inline virtual

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

Reimplemented from osg::Object.

Reimplemented in osg::Drawable.

References osg::Drawable.

## asDrawable() [2/2]

virtual const Drawable * osg::Node::asDrawable | ( |  | ) | const

inline virtual

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

Reimplemented from osg::Object.

Reimplemented in osg::Drawable.

References osg::Drawable.

## asGeode() [1/2]

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.

## asGeode() [2/2]

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.

## asGeometry() [1/2]

virtual Geometry * osg::Node::asGeometry | ( |  | ) |

inline virtual

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

Reimplemented in osg::Geometry.

## asGeometry() [2/2]

virtual const Geometry * osg::Node::asGeometry | ( |  | ) | const

inline virtual

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

Reimplemented in osg::Geometry.

## asGroup() [1/2]

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.

References osg::Group.

## asGroup() [2/2]

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.

References osg::Group.

## asNode() [1/2]

virtual Node * osg::Node::asNode | ( |  | ) |

inline virtual

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

Reimplemented from osg::Object.

References Node().

Referenced by osgGA::EventHandler::run().

## asNode() [2/2]

virtual const Node * osg::Node::asNode | ( |  | ) | const

inline virtual

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

Reimplemented from osg::Object.

References Node().

## asSwitch() [1/2]

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.

## asSwitch() [2/2]

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.

## asTerrain() [1/2]

virtual osgTerrain::Terrain * osg::Node::asTerrain | ( |  | ) |

inline virtual

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

Reimplemented in osgTerrain::Terrain.

## asTerrain() [2/2]

virtual const osgTerrain::Terrain * osg::Node::asTerrain | ( |  | ) | const

inline virtual

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

Reimplemented in osgTerrain::Terrain.

## asTransform() [1/2]

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.

## asTransform() [2/2]

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.

## className()

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, osg::DrawPixels, osg::ShapeDrawable, osgAnimation::MorphGeometry, osgFX::Effect, osgManipulator::AntiSquish, osgParticle::Emitter, osgParticle::ParticleEffect, osgParticle::ParticleProcessor, osgParticle::PrecipitationEffect, osgParticle::Program, osgSim::ImpostorSprite, osgText::Text, and osgText::TextBase.

## clone()

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, osg::DrawPixels, osg::ShapeDrawable, osgAnimation::MorphGeometry, osgManipulator::AntiSquish, osgSim::ImpostorSprite, and osgText::Text.

References Node(), and osg::Object::Object().

## cloneType()

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, osg::DrawPixels, osg::ShapeDrawable, osgAnimation::MorphGeometry, osgManipulator::AntiSquish, osgSim::ImpostorSprite, and osgText::Text.

References Node(), and osg::Object::Object().

## computeBound()

virtual BoundingSphere osg::Node::computeBound | ( |  | ) | const

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::Drawable, osg::Geode, osg::Group, osg::LightSource, osg::LOD, osg::OccluderNode, osg::OcclusionQueryNode, osg::ProxyNode, osg::Switch, osg::Transform, osgGA::Widget, osgParticle::ParticleProcessor, osgParticle::ParticleSystemUpdater, osgSim::Impostor, osgSim::LightPointNode, osgSim::SphereSegment, osgTerrain::TerrainTile, osgUI::Widget, and osgVolume::VolumeTile.

Referenced by getBound().

## containsOccluderNodes()

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

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

## dirtyBound()

void osg::Node::dirtyBound | ( |  | ) |

Mark this node's bounding sphere dirty. Forcing it to be computed on the next call to getBound().

Referenced by osg::MatrixTransform::postMult(), osg::MatrixTransform::preMult(), osg::CameraView::setAttitude(), osg::PositionAttitudeTransform::setAttitude(), osgSim::DOFTransform::setCurrentHPR(), osgSim::DOFTransform::setCurrentScale(), osgSim::DOFTransform::setCurrentTranslate(), osg::Drawable::setInitialBound(), setInitialBound(), osgSim::DOFTransform::setInversePutMatrix(), osg::MatrixTransform::setMatrix(), osg::AutoTransform::setPivotPoint(), osg::PositionAttitudeTransform::setPivotPoint(), osg::AutoTransform::setPosition(), osg::CameraView::setPosition(), osg::PositionAttitudeTransform::setPosition(), osgSim::DOFTransform::setPutMatrix(), osg::AutoTransform::setRotation(), osg::PositionAttitudeTransform::setScale(), osg::Camera::setViewMatrix(), and osg::Camera::setViewMatrix().

## getBound()

const BoundingSphere & osg::Node::getBound | ( |  | ) | const

inline

References _boundingSphere, _boundingSphereComputed, _computeBoundCallback, _initialBound, and computeBound().

Referenced by osg::Geode::getBoundingBox(), osg::LOD::getCenter(), osg::ProxyNode::getCenter(), osg::CullStack::isCulled(), isCullingActive(), and osgSim::Impostor::setImpostorThresholdToBound().

## getComputeBoundingSphereCallback() [1/2]

ComputeBoundingSphereCallback * osg::Node::getComputeBoundingSphereCallback | ( |  | ) |

inline

Get the compute bound callback.

References _computeBoundCallback.

## getComputeBoundingSphereCallback() [2/2]

const ComputeBoundingSphereCallback * osg::Node::getComputeBoundingSphereCallback | ( |  | ) | const

inline

Get the const compute bound callback.

References _computeBoundCallback.

## getCullCallback() [1/2]

Callback * osg::Node::getCullCallback | ( |  | ) |

inline

Get cull node callback, called during cull traversal.

References _cullCallback.

Referenced by osgUtil::CullVisitor::handle_cull_callbacks_and_accept(), osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(), osgUtil::Optimizer::isOperationPermissibleForObjectImplementation(), and osgUtil::Optimizer::isOperationPermissibleForObjectImplementation().

## getCullCallback() [2/2]

const Callback * osg::Node::getCullCallback | ( |  | ) | const

inline

Get const cull node callback, called during cull traversal.

References _cullCallback.

## getCullingActive()

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.

References _cullingActive.

## getDescription() [1/2]

std::string & osg::Node::getDescription | ( | unsigned int | i | ) |

Get a single description of the node.

## getDescription() [2/2]

const std::string & osg::Node::getDescription | ( | unsigned int | i | ) | const

Get a single const description of the const node.

## getDescriptions() [1/2]

DescriptionList & osg::Node::getDescriptions | ( |  | ) |

Get the description list of the node.

## getDescriptions() [2/2]

const DescriptionList & osg::Node::getDescriptions | ( |  | ) | const

Get the const description list of the const node.

## getEventCallback() [1/2]

Callback * osg::Node::getEventCallback | ( |  | ) |

inline

Get event node callback, called during event traversal.

References _eventCallback.

Referenced by osgGA::EventVisitor::apply(), osgGA::EventVisitor::handle_callbacks_and_traverse(), osgUtil::Optimizer::isOperationPermissibleForObjectImplementation(), and osgUtil::Optimizer::isOperationPermissibleForObjectImplementation().

## getEventCallback() [2/2]

const Callback * osg::Node::getEventCallback | ( |  | ) | const

inline

Get const event node callback, called during event traversal.

References _eventCallback.

## getInitialBound()

const BoundingSphere & osg::Node::getInitialBound | ( |  | ) | const

inline

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

References _initialBound.

## getNodeMask()

NodeMask osg::Node::getNodeMask | ( |  | ) | const

inline

Get the node Mask.

References _nodeMask.

Referenced by osgUtil::Optimizer::isOperationPermissibleForObjectImplementation(), and osg::NodeVisitor::validNodeMask().

## getNumChildrenRequiringEventTraversal()

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.

References _numChildrenRequiringEventTraversal.

Referenced by osgGA::EventVisitor::handle_callbacks_and_traverse().

## getNumChildrenRequiringUpdateTraversal()

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.

References _numChildrenRequiringUpdateTraversal.

Referenced by osgUtil::UpdateVisitor::handle_callbacks_and_traverse().

## getNumChildrenWithCullingDisabled()

unsigned int osg::Node::getNumChildrenWithCullingDisabled | ( |  | ) | const

inline

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

References _numChildrenWithCullingDisabled.

## getNumChildrenWithOccluderNodes()

unsigned int osg::Node::getNumChildrenWithOccluderNodes | ( |  | ) | const

inline

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

References _numChildrenWithOccluderNodes.

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

## getNumDescriptions()

unsigned int osg::Node::getNumDescriptions | ( |  | ) | const

Get the number of descriptions of the node.

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

## getNumParents()

unsigned int osg::Node::getNumParents | ( |  | ) | const

inline

Get the number of parents of node.

Returns
  the number of parents of this node.

References _parents.

## getOrCreateStateSet()

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.

## getParent() [1/2]

Group * osg::Node::getParent | ( | unsigned int | i | ) |

inline

References _parents, and osg::Group.

## getParent() [2/2]

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.

References _parents, and osg::Group.

## getParentalNodePaths()

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 specified node.

## getParents() [1/2]

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.

References _parents.

## getParents() [2/2]

const ParentList & osg::Node::getParents | ( |  | ) | const

inline

Get the parent list of node.

References _parents.

Referenced by osgAnimation::UpdateRigGeometry::update().

## getStateSet() [1/2]

osg::StateSet * osg::Node::getStateSet | ( |  | ) |

inline

Return the node's StateSet. returns NULL if a stateset is not attached.

References _stateset.

Referenced by osgWidget::Window::_scissor(), osgWidget::Widget::_texture(), osgWidget::Widget::_texture(), osgGA::EventVisitor::apply(), osgUtil::UpdateVisitor::apply(), osgGA::EventVisitor::handle_callbacks_and_traverse(), osgUtil::UpdateVisitor::handle_callbacks_and_traverse(), and osgUtil::Optimizer::isOperationPermissibleForObjectImplementation().

## getStateSet() [2/2]

const osg::StateSet * osg::Node::getStateSet | ( |  | ) | const

inline

Return the node's const StateSet. Returns NULL if a stateset is not attached.

References _stateset.

## getUpdateCallback() [1/2]

Callback * osg::Node::getUpdateCallback | ( |  | ) |

inline

Get update node callback, called during update traversal.

References _updateCallback.

Referenced by osgUtil::UpdateVisitor::apply(), osgUtil::UpdateVisitor::handle_callbacks_and_traverse(), osgUtil::Optimizer::isOperationPermissibleForObjectImplementation(), and osgUtil::Optimizer::isOperationPermissibleForObjectImplementation().

## getUpdateCallback() [2/2]

const Callback * osg::Node::getUpdateCallback | ( |  | ) | const

inline

Get const update node callback, called during update traversal.

References _updateCallback.

## getWorldMatrices()

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 specified node.

## isCullingActive()

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.

References _cullingActive, _numChildrenWithCullingDisabled, and getBound().

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

## isSameKindAs()

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.

Reimplemented in osg::AutoTransform, osg::DrawPixels, osg::ShapeDrawable, osgAnimation::MorphGeometry, osgFX::Effect, osgManipulator::AntiSquish, osgParticle::Emitter, osgParticle::ParticleEffect, osgParticle::ParticleProcessor, osgParticle::PrecipitationEffect, osgParticle::Program, osgSim::ImpostorSprite, osgText::Text, and osgText::TextBase.

References Node(), NULL, and osg::Object::Object().

## libraryName()

virtual const char * osg::Node::libraryName | ( |  | ) | const

inline virtual

return the name of the node's library.

Implements osg::Object.

Reimplemented in osg::AutoTransform, osg::DrawPixels, osg::ShapeDrawable, osgAnimation::MorphGeometry, osgFX::Effect, osgManipulator::AntiSquish, osgParticle::Emitter, osgParticle::ParticleEffect, osgParticle::ParticleProcessor, osgParticle::PrecipitationEffect, osgParticle::Program, osgSim::ImpostorSprite, osgText::Text, and osgText::TextBase.

## releaseGLObjects()

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::Drawable, osg::Geometry, osg::Group, osg::OcclusionQueryNode, osg::QueryGeometry, osgFX::Effect, osgParticle::ParticleSystem, osgParticle::PrecipitationEffect::PrecipitationDrawable, osgParticle::PrecipitationEffect, osgShadow::ShadowedScene, osgSim::OverlayNode, osgSim::SphereSegment, osgTerrain::HeightFieldDrawable, osgTerrain::SharedGeometry, osgTerrain::TerrainTile, osgText::Text3D, osgText::Text, osgText::TextBase, and osgUI::Widget.

## removeCullCallback() [1/2]

void osg::Node::removeCullCallback | ( | Callback * | 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 _cullCallback, osg::ref_ptr< T >::get(), osg::Callback::getNestedCallback(), NULL, setCullCallback(), and osg::Callback::setNestedCallback().

## removeCullCallback() [2/2]

template<class T>

void osg::Node::removeCullCallback | ( | const ref_ptr< T > & | nc | ) |

inline

References osg::ref_ptr< T >::get(), and removeCullCallback().

Referenced by removeCullCallback().

## removeEventCallback() [1/2]

void osg::Node::removeEventCallback | ( | Callback * | 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 _eventCallback, osg::ref_ptr< T >::get(), osg::Callback::getNestedCallback(), NULL, setEventCallback(), and osg::Callback::setNestedCallback().

## removeEventCallback() [2/2]

template<class T>

void osg::Node::removeEventCallback | ( | const ref_ptr< T > & | nc | ) |

inline

References osg::ref_ptr< T >::get(), and removeEventCallback().

Referenced by removeEventCallback().

## removeParent()

void osg::Node::removeParent | ( | osg::Group * | parent | ) |

protected

## removeUpdateCallback() [1/2]

void osg::Node::removeUpdateCallback | ( | Callback * | 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 _updateCallback, osg::ref_ptr< T >::get(), osg::Callback::getNestedCallback(), NULL, osg::Callback::setNestedCallback(), and setUpdateCallback().

## removeUpdateCallback() [2/2]

template<class T>

void osg::Node::removeUpdateCallback | ( | const ref_ptr< T > & | nc | ) |

inline

References osg::ref_ptr< T >::get(), and removeUpdateCallback().

Referenced by removeUpdateCallback().

## resizeGLObjectBuffers()

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::Drawable, osg::Geometry, osg::Group, osgFX::Effect, osgParticle::ParticleSystem, osgParticle::PrecipitationEffect::PrecipitationDrawable, osgParticle::PrecipitationEffect, osgShadow::ShadowedScene, osgSim::OverlayNode, osgSim::SphereSegment, osgTerrain::HeightFieldDrawable, osgTerrain::SharedGeometry, osgText::Text3D, osgText::Text, osgText::TextBase, and osgUI::Widget.

## setComputeBoundingSphereCallback() [1/2]

void osg::Node::setComputeBoundingSphereCallback | ( | ComputeBoundingSphereCallback * | callback | ) |

inline

Set the compute bound callback to override the default computeBound.

References _computeBoundCallback.

## setComputeBoundingSphereCallback() [2/2]

template<class T>

void osg::Node::setComputeBoundingSphereCallback | ( | const ref_ptr< T > & | callback | ) |

inline

References osg::ref_ptr< T >::get(), and setComputeBoundingSphereCallback().

Referenced by setComputeBoundingSphereCallback().

## setCullCallback() [1/2]

void osg::Node::setCullCallback | ( | Callback * | nc | ) |

inline

Set cull node callback, called during cull traversal.

References _cullCallback.

Referenced by addCullCallback(), and removeCullCallback().

## setCullCallback() [2/2]

template<class T>

void osg::Node::setCullCallback | ( | const ref_ptr< T > & | nc | ) |

inline

References osg::ref_ptr< T >::get(), and setCullCallback().

Referenced by setCullCallback().

## setCullingActive()

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.

## setDescriptions()

void osg::Node::setDescriptions | ( | const DescriptionList & | descriptions | ) |

Set the list of string descriptions.

## setEventCallback() [1/2]

void osg::Node::setEventCallback | ( | Callback * | nc | ) |

Set event node callback, called during event traversal.

Referenced by addEventCallback(), and removeEventCallback().

## setEventCallback() [2/2]

template<class T>

void osg::Node::setEventCallback | ( | const ref_ptr< T > & | nc | ) |

inline

References osg::ref_ptr< T >::get(), and setEventCallback().

Referenced by setEventCallback().

## setInitialBound()

void osg::Node::setInitialBound | ( | const osg::BoundingSphere & | bsphere | ) |

inline

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

References _initialBound, and dirtyBound().

## setNodeMask()

void osg::Node::setNodeMask | ( | NodeMask | nm | ) |

inline

Set the node mask.

References _nodeMask.

## setNumChildrenRequiringEventTraversal()

void osg::Node::setNumChildrenRequiringEventTraversal | ( | unsigned int | num | ) |

protected

## setNumChildrenRequiringUpdateTraversal()

void osg::Node::setNumChildrenRequiringUpdateTraversal | ( | unsigned int | num | ) |

protected

## setNumChildrenWithCullingDisabled()

void osg::Node::setNumChildrenWithCullingDisabled | ( | unsigned int | num | ) |

protected

## setNumChildrenWithOccluderNodes()

void osg::Node::setNumChildrenWithOccluderNodes | ( | unsigned int | num | ) |

protected

## setStateSet() [1/2]

template<class T>

void osg::Node::setStateSet | ( | const osg::ref_ptr< T > & | stateset | ) |

inline

References osg::ref_ptr< T >::get(), and setStateSet().

Referenced by setStateSet().

## setStateSet() [2/2]

void osg::Node::setStateSet | ( | osg::StateSet * | stateset | ) |

Set the node's StateSet.

## setThreadSafeRefUnref()

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::Object.

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

## setUpdateCallback() [1/2]

void osg::Node::setUpdateCallback | ( | Callback * | nc | ) |

Set update node callback, called during update traversal.

Referenced by addUpdateCallback(), and removeUpdateCallback().

## setUpdateCallback() [2/2]

template<class T>

void osg::Node::setUpdateCallback | ( | const ref_ptr< T > & | nc | ) |

inline

References osg::ref_ptr< T >::get(), and setUpdateCallback().

Referenced by setUpdateCallback().

## traverse()

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::ProxyNode, osg::Sequence, osg::Switch, osgFX::Effect, osgGA::Widget, osgManipulator::Dragger, osgParticle::ParticleProcessor, osgParticle::ParticleSystemUpdater, osgParticle::PrecipitationEffect, osgPresentation::Cursor, osgPresentation::Timeout, osgShadow::ShadowedScene, osgSim::DOFTransform, osgSim::Impostor, osgSim::LightPointNode, osgSim::MultiSwitch, osgSim::OverlayNode, osgSim::SphereSegment, osgSim::VisibilityGroup, osgTerrain::Terrain, osgTerrain::TerrainTile, osgUI::Widget, osgVolume::Volume, osgVolume::VolumeScene, and osgVolume::VolumeTile.

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

## Friends And Related Symbol Documentation

## osg::Drawable

friend class osg::Drawable

friend

Referenced by asDrawable(), and asDrawable().

## osg::Group

friend class osg::Group

friend

Referenced by asGroup(), asGroup(), getParent(), and getParent().

## osg::StateSet

friend class osg::StateSet

friend

## Member Data Documentation

## _boundingSphere

BoundingSphere osg::Node::_boundingSphere

mutable protected

Referenced by osg::Drawable::getBound(), getBound(), and osg::Drawable::getBoundingBox().

## _boundingSphereComputed

bool osg::Node::_boundingSphereComputed

mutable protected

Referenced by osg::Drawable::getBound(), getBound(), osg::Drawable::getBoundingBox(), and osg::Geode::getBoundingBox().

## _computeBoundCallback

ref_ptr<ComputeBoundingSphereCallback> osg::Node::_computeBoundCallback

protected

Referenced by getBound(), getComputeBoundingSphereCallback(), getComputeBoundingSphereCallback(), and setComputeBoundingSphereCallback().

## _cullCallback

ref_ptr<Callback> osg::Node::_cullCallback

protected

Referenced by addCullCallback(), getCullCallback(), getCullCallback(), removeCullCallback(), and setCullCallback().

## _cullingActive

bool osg::Node::_cullingActive

protected

Referenced by getCullingActive(), and isCullingActive().

## _eventCallback

ref_ptr<Callback> osg::Node::_eventCallback

protected

Referenced by addEventCallback(), getEventCallback(), getEventCallback(), and removeEventCallback().

## _initialBound

BoundingSphere osg::Node::_initialBound

protected

Referenced by getBound(), getInitialBound(), and setInitialBound().

## _nodeMask

NodeMask osg::Node::_nodeMask

protected

Referenced by getNodeMask(), and setNodeMask().

## _numChildrenRequiringEventTraversal

unsigned int osg::Node::_numChildrenRequiringEventTraversal

protected

Referenced by getNumChildrenRequiringEventTraversal().

## _numChildrenRequiringUpdateTraversal

unsigned int osg::Node::_numChildrenRequiringUpdateTraversal

protected

Referenced by getNumChildrenRequiringUpdateTraversal().

## _numChildrenWithCullingDisabled

unsigned int osg::Node::_numChildrenWithCullingDisabled

protected

Referenced by getNumChildrenWithCullingDisabled(), and isCullingActive().

## _numChildrenWithOccluderNodes

unsigned int osg::Node::_numChildrenWithOccluderNodes

protected

Referenced by getNumChildrenWithOccluderNodes().

## _parents

ParentList osg::Node::_parents

protected

Referenced by getNumParents(), getParent(), getParent(), getParents(), and getParents().

## _stateset

ref_ptr<StateSet> osg::Node::_stateset

protected

Referenced by getStateSet(), and getStateSet().

## _updateCallback

ref_ptr<Callback> osg::Node::_updateCallback

protected

Referenced by addUpdateCallback(), getUpdateCallback(), getUpdateCallback(), and removeUpdateCallback().

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

- Node