openscenegraph
osg::NodeVisitor Class Reference

#include <NodeVisitor>

Inheritance diagram for osg::NodeVisitor:
osg::Object osg::Referenced osg::CollectOccludersVisitor osg::ComputeBoundsVisitor osg::ConfigureBufferObjectsVisitor osg::KdTreeBuilder osgAnimation::BoneMapVisitor osgAnimation::LinkVisitor osgAnimation::RigGeometry::FindNearestParentSkeleton osgDB::SharedStateManager osgGA::EventVisitor osgSim::InsertImpostorsVisitor osgUtil::BaseOptimizerVisitor osgUtil::CullVisitor osgUtil::DisplayRequirementsVisitor osgUtil::DrawElementTypeSimplifierVisitor osgUtil::GLObjectsVisitor osgUtil::IntersectVisitor osgUtil::IntersectionVisitor osgUtil::PrintVisitor osgUtil::ShaderGenVisitor osgUtil::Simplifier osgUtil::SmoothingVisitor osgUtil::StateToCompile osgUtil::StatsVisitor osgUtil::UpdateVisitor osgUtil::VertexCacheMissVisitor

Classes

class  DatabaseRequestHandler
class  ImageRequestHandler

Public Types

enum  TraversalMode { TRAVERSE_NONE , TRAVERSE_PARENTS , TRAVERSE_ALL_CHILDREN , TRAVERSE_ACTIVE_CHILDREN }
enum  VisitorType {
  NODE_VISITOR = 0 , UPDATE_VISITOR , EVENT_VISITOR , COLLECT_OCCLUDER_VISITOR ,
  CULL_VISITOR , INTERSECTION_VISITOR
}
Public Types inherited from osg::Object
enum  DataVariance { DYNAMIC , STATIC , UNSPECIFIED }

Public Member Functions

 NodeVisitor (TraversalMode tm=TRAVERSE_NONE)
 NodeVisitor (VisitorType type, TraversalMode tm=TRAVERSE_NONE)
 NodeVisitor (const NodeVisitor &nv, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
virtual ~NodeVisitor ()
 META_Object (osg, NodeVisitor) virtual NodeVisitor *asNodeVisitor()
virtual const NodeVisitorasNodeVisitor () const
virtual osgUtil::UpdateVisitorasUpdateVisitor ()
virtual const osgUtil::UpdateVisitorasUpdateVisitor () const
virtual osgUtil::CullVisitorasCullVisitor ()
virtual const osgUtil::CullVisitorasCullVisitor () const
virtual osgGA::EventVisitorasEventVisitor ()
virtual const osgGA::EventVisitorasEventVisitor () const
virtual osgUtil::IntersectionVisitorasIntersectionVisitor ()
virtual const osgUtil::IntersectionVisitorasIntersectionVisitor () const
virtual osg::CullStackasCullStack ()
virtual const osg::CullStackasCullStack () const
virtual void reset ()
void setVisitorType (VisitorType type)
VisitorType getVisitorType () const
void setTraversalNumber (unsigned int fn)
unsigned int getTraversalNumber () const
void setFrameStamp (FrameStamp *fs)
const FrameStampgetFrameStamp () const
void setTraversalMask (Node::NodeMask mask)
Node::NodeMask getTraversalMask () const
void setNodeMaskOverride (Node::NodeMask mask)
Node::NodeMask getNodeMaskOverride () const
bool validNodeMask (const osg::Node &node) const
void setTraversalMode (TraversalMode mode)
TraversalMode getTraversalMode () const
void setValueMap (ValueMap *ps)
ValueMapgetValueMap ()
const ValueMapgetValueMap () const
ValueMapgetOrCreateValueMap ()
void setValueStack (ValueStack *ps)
ValueStackgetValueStack ()
const ValueStackgetValueStack () const
ValueStackgetOrCreateValueStack ()
void traverse (Node &node)
void pushOntoNodePath (Node *node)
void popFromNodePath ()
NodePathgetNodePath ()
const NodePathgetNodePath () const
virtual osg::Vec3 getEyePoint () const
virtual osg::Vec3 getViewPoint () const
virtual float getDistanceToEyePoint (const Vec3 &, bool) const
virtual float getDistanceFromEyePoint (const Vec3 &, bool) const
virtual float getDistanceToViewPoint (const Vec3 &, bool) const
virtual void apply (Drawable &drawable)
virtual void apply (Geometry &geometry)
virtual void apply (Node &node)
virtual void apply (Geode &node)
virtual void apply (Billboard &node)
virtual void apply (Group &node)
virtual void apply (ProxyNode &node)
virtual void apply (Projection &node)
virtual void apply (CoordinateSystemNode &node)
virtual void apply (ClipNode &node)
virtual void apply (TexGenNode &node)
virtual void apply (LightSource &node)
virtual void apply (Transform &node)
virtual void apply (Camera &node)
virtual void apply (CameraView &node)
virtual void apply (MatrixTransform &node)
virtual void apply (PositionAttitudeTransform &node)
virtual void apply (AutoTransform &node)
virtual void apply (Switch &node)
virtual void apply (Sequence &node)
virtual void apply (LOD &node)
virtual void apply (PagedLOD &node)
virtual void apply (ClearNode &node)
virtual void apply (OccluderNode &node)
virtual void apply (OcclusionQueryNode &node)
void setDatabaseRequestHandler (DatabaseRequestHandler *handler)
DatabaseRequestHandlergetDatabaseRequestHandler ()
const DatabaseRequestHandlergetDatabaseRequestHandler () const
void setImageRequestHandler (ImageRequestHandler *handler)
ImageRequestHandlergetImageRequestHandler ()
const ImageRequestHandlergetImageRequestHandler () const
Public Member Functions inherited from osg::Object
 Object ()
 Object (bool threadSafeRefUnref)
 Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
virtual ObjectcloneType () const =0
virtual Objectclone (const CopyOp &) const =0
virtual bool isSameKindAs (const Object *) const
virtual const char * libraryName () const =0
virtual const char * className () const =0
std::string getCompoundClassName () const
virtual NodeasNode ()
virtual const NodeasNode () const
virtual NodeVisitorasNodeVisitor ()
virtual StateSetasStateSet ()
virtual const StateSetasStateSet () const
virtual StateAttributeasStateAttribute ()
virtual const StateAttributeasStateAttribute () const
virtual UniformasUniform ()
virtual const UniformasUniform () const
virtual CameraasCamera ()
virtual const CameraasCamera () const
virtual DrawableasDrawable ()
virtual const DrawableasDrawable () const
virtual CallbackasCallback ()
virtual const CallbackasCallback () const
virtual CallbackObjectasCallbackObject ()
virtual const CallbackObjectasCallbackObject () const
virtual UserDataContainerasUserDataContainer ()
virtual const UserDataContainerasUserDataContainer () const
virtual ValueObjectasValueObject ()
virtual const ValueObjectasValueObject () const
virtual ImageasImage ()
virtual const ImageasImage () const
virtual void setThreadSafeRefUnref (bool threadSafe)
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::UserDataContainergetUserDataContainer ()
const osg::UserDataContainergetUserDataContainer () const
osg::UserDataContainergetOrCreateUserDataContainer ()
virtual void setUserData (Referenced *obj)
template<class T>
void setUserData (const ref_ptr< T > &ud)
virtual ReferencedgetUserData ()
virtual const ReferencedgetUserData () 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)
virtual void resizeGLObjectBuffers (unsigned int)
virtual void releaseGLObjects (osg::State *=0) const
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 &)
Referencedoperator= (const Referenced &)
bool getThreadSafeRefUnref () const
OpenThreads::MutexgetRefMutex () const
int ref () const
int unref () const
int unref_nodelete () const
int referenceCount () const
ObserverSetgetObserverSet () const
ObserverSetgetOrCreateObserverSet () const
void addObserver (Observer *observer) const
void removeObserver (Observer *observer) const

Protected Attributes

VisitorType _visitorType
unsigned int _traversalNumber
ref_ptr< FrameStamp_frameStamp
TraversalMode _traversalMode
Node::NodeMask _traversalMask
Node::NodeMask _nodeMaskOverride
NodePath _nodePath
ref_ptr< DatabaseRequestHandler_databaseRequestHandler
ref_ptr< ImageRequestHandler_imageRequestHandler
osg::ref_ptr< ValueMap_valueMap
osg::ref_ptr< ValueStack_valueStack
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

Additional Inherited Members

Static Public Member Functions inherited from osg::Referenced
static OpenThreads::MutexgetGlobalReferencedMutex ()
static void setDeleteHandler (DeleteHandler *handler)
static DeleteHandlergetDeleteHandler ()
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

Detailed Description

Visitor for type safe operations on osg::Nodes. Based on GOF's Visitor pattern. The NodeVisitor is useful for developing type safe operations to nodes in the scene graph (as per Visitor pattern), and adds to this support for optional scene graph traversal to allow operations to be applied to whole scenes at once. The Visitor pattern uses a technique of double dispatch as a mechanism to call the appropriate apply(..) method of the NodeVisitor. To use this feature one must use the Node::accept(NodeVisitor) which is extended in each Node subclass, rather than the NodeVisitor apply directly. So use root->accept(myVisitor); instead of myVisitor.apply(*root). The later method will bypass the double dispatch and the appropriate NodeVisitor::apply(..) method will not be called.

Member Enumeration Documentation

◆ TraversalMode

Enumerator
TRAVERSE_NONE 
TRAVERSE_PARENTS 
TRAVERSE_ALL_CHILDREN 
TRAVERSE_ACTIVE_CHILDREN 

◆ VisitorType

Enumerator
NODE_VISITOR 
UPDATE_VISITOR 
EVENT_VISITOR 
COLLECT_OCCLUDER_VISITOR 
CULL_VISITOR 
INTERSECTION_VISITOR 

Constructor & Destructor Documentation

◆ NodeVisitor() [1/3]

◆ NodeVisitor() [2/3]

osg::NodeVisitor::NodeVisitor ( VisitorType type,
TraversalMode tm = TRAVERSE_NONE )

References TRAVERSE_NONE.

◆ NodeVisitor() [3/3]

osg::NodeVisitor::NodeVisitor ( const NodeVisitor & nv,
const osg::CopyOp & copyop = osg::CopyOp::SHALLOW_COPY )

◆ ~NodeVisitor()

virtual osg::NodeVisitor::~NodeVisitor ( )
virtual

Member Function Documentation

◆ apply() [1/25]

virtual void osg::NodeVisitor::apply ( AutoTransform & node)
virtual

◆ apply() [2/25]

◆ apply() [3/25]

virtual void osg::NodeVisitor::apply ( Camera & node)
virtual

◆ apply() [4/25]

virtual void osg::NodeVisitor::apply ( CameraView & node)
virtual

◆ apply() [5/25]

virtual void osg::NodeVisitor::apply ( ClearNode & node)
virtual

Reimplemented in osgUtil::CullVisitor.

◆ apply() [6/25]

virtual void osg::NodeVisitor::apply ( ClipNode & node)
virtual

Reimplemented in osgUtil::CullVisitor.

◆ apply() [7/25]

virtual void osg::NodeVisitor::apply ( CoordinateSystemNode & node)
virtual

◆ apply() [8/25]

◆ apply() [9/25]

◆ apply() [10/25]

◆ apply() [11/25]

◆ apply() [12/25]

virtual void osg::NodeVisitor::apply ( LightSource & node)
virtual

◆ apply() [13/25]

◆ apply() [14/25]

virtual void osg::NodeVisitor::apply ( MatrixTransform & node)
virtual

◆ apply() [15/25]

◆ apply() [16/25]

virtual void osg::NodeVisitor::apply ( OccluderNode & node)
virtual

◆ apply() [17/25]

virtual void osg::NodeVisitor::apply ( OcclusionQueryNode & node)
virtual

Reimplemented in osgUtil::CullVisitor.

◆ apply() [18/25]

virtual void osg::NodeVisitor::apply ( PagedLOD & node)
virtual

◆ apply() [19/25]

virtual void osg::NodeVisitor::apply ( PositionAttitudeTransform & node)
virtual

◆ apply() [20/25]

◆ apply() [21/25]

virtual void osg::NodeVisitor::apply ( ProxyNode & node)
virtual

◆ apply() [22/25]

virtual void osg::NodeVisitor::apply ( Sequence & node)
virtual

◆ apply() [23/25]

◆ apply() [24/25]

virtual void osg::NodeVisitor::apply ( TexGenNode & node)
virtual

Reimplemented in osgUtil::CullVisitor.

◆ apply() [25/25]

◆ asCullStack() [1/2]

virtual osg::CullStack * osg::NodeVisitor::asCullStack ( )
inlinevirtual

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

Reimplemented in osgUtil::CullVisitor.

◆ asCullStack() [2/2]

virtual const osg::CullStack * osg::NodeVisitor::asCullStack ( ) const
inlinevirtual

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

Reimplemented in osgUtil::CullVisitor.

◆ asCullVisitor() [1/2]

virtual osgUtil::CullVisitor * osg::NodeVisitor::asCullVisitor ( )
inlinevirtual

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

◆ asCullVisitor() [2/2]

virtual const osgUtil::CullVisitor * osg::NodeVisitor::asCullVisitor ( ) const
inlinevirtual

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

Reimplemented in osgUtil::CullVisitor.

◆ asEventVisitor() [1/2]

virtual osgGA::EventVisitor * osg::NodeVisitor::asEventVisitor ( )
inlinevirtual

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

◆ asEventVisitor() [2/2]

virtual const osgGA::EventVisitor * osg::NodeVisitor::asEventVisitor ( ) const
inlinevirtual

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

Reimplemented in osgGA::EventVisitor.

◆ asIntersectionVisitor() [1/2]

virtual osgUtil::IntersectionVisitor * osg::NodeVisitor::asIntersectionVisitor ( )
inlinevirtual

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

◆ asIntersectionVisitor() [2/2]

virtual const osgUtil::IntersectionVisitor * osg::NodeVisitor::asIntersectionVisitor ( ) const
inlinevirtual

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

Reimplemented in osgUtil::IntersectionVisitor.

◆ asNodeVisitor()

virtual const NodeVisitor * osg::NodeVisitor::asNodeVisitor ( ) const
inlinevirtual

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

Reimplemented from osg::Object.

References NodeVisitor().

Referenced by META_Object().

◆ asUpdateVisitor() [1/2]

virtual osgUtil::UpdateVisitor * osg::NodeVisitor::asUpdateVisitor ( )
inlinevirtual

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

◆ asUpdateVisitor() [2/2]

virtual const osgUtil::UpdateVisitor * osg::NodeVisitor::asUpdateVisitor ( ) const
inlinevirtual

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

Reimplemented in osgUtil::UpdateVisitor.

◆ getDatabaseRequestHandler() [1/2]

DatabaseRequestHandler * osg::NodeVisitor::getDatabaseRequestHandler ( )
inline

Get the handler for database requests.

References _databaseRequestHandler.

◆ getDatabaseRequestHandler() [2/2]

const DatabaseRequestHandler * osg::NodeVisitor::getDatabaseRequestHandler ( ) const
inline

Get the const handler for database requests.

References _databaseRequestHandler.

◆ getDistanceFromEyePoint()

virtual float osg::NodeVisitor::getDistanceFromEyePoint ( const Vec3 & ,
bool  ) const
inlinevirtual

Get the distance of a point from the eye point, distance value in the eye coordinate system. Note, not all NodeVisitor implement this method, it is mainly cull visitors which will implement. If the getDistanceFromEyePoint(pos) is not implemented than a default value of 0.0 is returned.

Reimplemented in osg::CollectOccludersVisitor, and osgUtil::CullVisitor.

◆ getDistanceToEyePoint()

virtual float osg::NodeVisitor::getDistanceToEyePoint ( const Vec3 & ,
bool  ) const
inlinevirtual

Get the distance from a point to the eye point, distance value in local coordinate system. Note, not all NodeVisitor implement this method, it is mainly cull visitors which will implement. If the getDistanceFromEyePoint(pos) is not implemented then a default value of 0.0 is returned.

Reimplemented in osg::CollectOccludersVisitor, osgUtil::CullVisitor, osgUtil::IntersectionVisitor, and osgUtil::IntersectVisitor.

◆ getDistanceToViewPoint()

virtual float osg::NodeVisitor::getDistanceToViewPoint ( const Vec3 & ,
bool  ) const
inlinevirtual

Get the distance from a point to the view point, distance value in local coordinate system. Note, not all NodeVisitor implement this method, it is mainly cull visitors which will implement. If the getDistanceToViewPoint(pos) is not implemented then a default value of 0.0 is returned.

Reimplemented in osg::CollectOccludersVisitor, and osgUtil::CullVisitor.

◆ getEyePoint()

virtual osg::Vec3 osg::NodeVisitor::getEyePoint ( ) const
inlinevirtual

Get the eye point in local coordinates. Note, not all NodeVisitor implement this method, it is mainly cull visitors which will implement.

Reimplemented in osgUtil::CullVisitor, osgUtil::IntersectionVisitor, and osgUtil::IntersectVisitor.

Referenced by getViewPoint().

◆ getFrameStamp()

const FrameStamp * osg::NodeVisitor::getFrameStamp ( ) const
inline

Get the FrameStamp that this traversal is associated with.

References _frameStamp.

◆ getImageRequestHandler() [1/2]

ImageRequestHandler * osg::NodeVisitor::getImageRequestHandler ( )
inline

Get the handler for image requests.

References _imageRequestHandler.

◆ getImageRequestHandler() [2/2]

const ImageRequestHandler * osg::NodeVisitor::getImageRequestHandler ( ) const
inline

Get the const handler for image requests.

References _imageRequestHandler.

◆ getNodeMaskOverride()

Node::NodeMask osg::NodeVisitor::getNodeMaskOverride ( ) const
inline

Get the NodeMaskOverride mask.

References _nodeMaskOverride.

Referenced by validNodeMask().

◆ getNodePath() [1/2]

NodePath & osg::NodeVisitor::getNodePath ( )
inline

Get the non const NodePath from the top most node applied down to the current Node being visited.

References _nodePath.

◆ getNodePath() [2/2]

const NodePath & osg::NodeVisitor::getNodePath ( ) const
inline

Get the const NodePath from the top most node applied down to the current Node being visited.

References _nodePath.

◆ getOrCreateValueMap()

ValueMap * osg::NodeVisitor::getOrCreateValueMap ( )
inline

◆ getOrCreateValueStack()

◆ getTraversalMask()

Node::NodeMask osg::NodeVisitor::getTraversalMask ( ) const
inline

Get the TraversalMask.

References _traversalMask.

Referenced by validNodeMask().

◆ getTraversalMode()

TraversalMode osg::NodeVisitor::getTraversalMode ( ) const
inline

Get the traversal mode.

References _traversalMode.

◆ getTraversalNumber()

unsigned int osg::NodeVisitor::getTraversalNumber ( ) const
inline

Get the traversal number. Typically used to denote the frame count.

References _traversalNumber.

◆ getValueMap() [1/2]

ValueMap * osg::NodeVisitor::getValueMap ( )
inline

Get the ValueMap.

References _valueMap.

◆ getValueMap() [2/2]

const ValueMap * osg::NodeVisitor::getValueMap ( ) const
inline

Get the ValueMap.

References _valueMap.

◆ getValueStack() [1/2]

ValueStack * osg::NodeVisitor::getValueStack ( )
inline

Get the ValueStack.

References _valueStack.

◆ getValueStack() [2/2]

const ValueStack * osg::NodeVisitor::getValueStack ( ) const
inline

Get the const ValueStack.

References _valueStack.

◆ getViewPoint()

virtual osg::Vec3 osg::NodeVisitor::getViewPoint ( ) const
inlinevirtual

Get the view point in local coordinates. Note, not all NodeVisitor implement this method, it is mainly cull visitors which will implement.

Reimplemented in osgUtil::CullVisitor.

References getEyePoint().

◆ getVisitorType()

VisitorType osg::NodeVisitor::getVisitorType ( ) const
inline

◆ META_Object()

osg::NodeVisitor::META_Object ( osg ,
NodeVisitor  )
inline

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

References asNodeVisitor(), and NodeVisitor().

◆ popFromNodePath()

void osg::NodeVisitor::popFromNodePath ( )
inline

◆ pushOntoNodePath()

void osg::NodeVisitor::pushOntoNodePath ( Node * node)
inline

Method called by osg::Node::accept() method before a call to the NodeVisitor::apply(..). The back of the list will, therefore, be the current node being visited inside the apply(..), and the rest of the list will be the parental sequence of nodes from the top most node applied down the graph to the current node. Note, the user does not typically call pushNodeOnPath() as it will be called automatically by the Node::accept() method.

References _nodePath, _traversalMode, and TRAVERSE_PARENTS.

Referenced by osgParticle::Emitter::accept(), osgParticle::ParticleEffect::accept(), osgParticle::ParticleProcessor::accept(), osgParticle::PrecipitationEffect::accept(), and osgParticle::Program::accept().

◆ reset()

◆ setDatabaseRequestHandler()

void osg::NodeVisitor::setDatabaseRequestHandler ( DatabaseRequestHandler * handler)
inline

Set the handler for database requests.

References _databaseRequestHandler.

◆ setFrameStamp()

void osg::NodeVisitor::setFrameStamp ( FrameStamp * fs)
inline

Set the FrameStamp that this traversal is associated with.

References _frameStamp.

◆ setImageRequestHandler()

void osg::NodeVisitor::setImageRequestHandler ( ImageRequestHandler * handler)
inline

Set the handler for image requests.

References _imageRequestHandler.

◆ setNodeMaskOverride()

void osg::NodeVisitor::setNodeMaskOverride ( Node::NodeMask mask)
inline

Set the NodeMaskOverride mask. Used in validNodeMask() to determine whether to operate on a node or its subgraph, by OR'ing NodeVisitor::_nodeMaskOverride with the Node's own Node::_nodeMask. Typically used to force on nodes which may have been switched off by their own Node::_nodeMask.

References _nodeMaskOverride.

Referenced by osgUtil::BaseOptimizerVisitor::BaseOptimizerVisitor().

◆ setTraversalMask()

void osg::NodeVisitor::setTraversalMask ( Node::NodeMask mask)
inline

Set the TraversalMask of this NodeVisitor. The TraversalMask is used by the NodeVisitor::validNodeMask() method to determine whether to operate on a node and its subgraph. validNodeMask() is called automatically in the Node::accept() method before any call to NodeVisitor::apply(), apply() is only ever called if validNodeMask returns true. Note, if NodeVisitor::_traversalMask is 0 then all operations will be switched off for all nodes. Whereas setting both _traversalMask and _nodeMaskOverride to 0xffffffff will allow a visitor to work on all nodes regardless of their own Node::_nodeMask state.

References _traversalMask.

◆ setTraversalMode()

void osg::NodeVisitor::setTraversalMode ( TraversalMode mode)
inline

Set the traversal mode for Node::traverse() to use when deciding which children of a node to traverse. If a NodeVisitor has been attached via setTraverseVisitor() and the new mode is not TRAVERSE_VISITOR then the attached visitor is detached. Default mode is TRAVERSE_NONE.

References _traversalMode.

◆ setTraversalNumber()

void osg::NodeVisitor::setTraversalNumber ( unsigned int fn)
inline

Set the traversal number. Typically used to denote the frame count.

References _traversalNumber.

◆ setValueMap()

void osg::NodeVisitor::setValueMap ( ValueMap * ps)
inline

Set the ValueMap used to store Values that can be reused over a series of traversals.

References _valueMap.

◆ setValueStack()

void osg::NodeVisitor::setValueStack ( ValueStack * ps)
inline

Set the ValueStack used to stack Values during traversal.

References _valueStack.

◆ setVisitorType()

void osg::NodeVisitor::setVisitorType ( VisitorType type)
inline

Set the VisitorType, used to distinguish different visitors during traversal of the scene, typically used in the Node::traverse() method to select which behaviour to use for different types of traversal/visitors.

References _visitorType.

◆ traverse()

void osg::NodeVisitor::traverse ( Node & node)
inline

◆ validNodeMask()

bool osg::NodeVisitor::validNodeMask ( const osg::Node & node) const
inline

Method to called by Node and its subclass' Node::accept() method, if the result is true it is used to cull operations of nodes and their subgraphs. Return true if the result of a bit wise and of the NodeVisitor::_traversalMask with the bit or between NodeVistor::_nodeMaskOverride and the Node::_nodeMask. default values for _traversalMask is 0xffffffff, _nodeMaskOverride is 0x0, and osg::Node::_nodeMask is 0xffffffff.

References osg::Node::getNodeMask(), getNodeMaskOverride(), and getTraversalMask().

Referenced by osgParticle::Emitter::accept(), osgParticle::ParticleEffect::accept(), osgParticle::ParticleProcessor::accept(), osgParticle::PrecipitationEffect::accept(), and osgParticle::Program::accept().

Member Data Documentation

◆ _databaseRequestHandler

ref_ptr<DatabaseRequestHandler> osg::NodeVisitor::_databaseRequestHandler
protected

◆ _frameStamp

ref_ptr<FrameStamp> osg::NodeVisitor::_frameStamp
protected

Referenced by getFrameStamp(), and setFrameStamp().

◆ _imageRequestHandler

ref_ptr<ImageRequestHandler> osg::NodeVisitor::_imageRequestHandler
protected

◆ _nodeMaskOverride

Node::NodeMask osg::NodeVisitor::_nodeMaskOverride
protected

◆ _nodePath

NodePath osg::NodeVisitor::_nodePath
protected

◆ _traversalMask

Node::NodeMask osg::NodeVisitor::_traversalMask
protected

◆ _traversalMode

TraversalMode osg::NodeVisitor::_traversalMode
protected

◆ _traversalNumber

unsigned int osg::NodeVisitor::_traversalNumber
protected

◆ _valueMap

osg::ref_ptr<ValueMap> osg::NodeVisitor::_valueMap
protected

◆ _valueStack

osg::ref_ptr<ValueStack> osg::NodeVisitor::_valueStack
protected

◆ _visitorType

VisitorType osg::NodeVisitor::_visitorType
protected

Referenced by getVisitorType(), and setVisitorType().


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