NodeVisitor
Go to the documentation of this file.
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifndef OSG_NODEVISITOR
#define OSG_NODEVISITOR 1
#include <osg/Node>
#include <osg/Matrix>
#include <osg/FrameStamp>
#include <osg/ValueMap>
#include <osg/ValueStack>
namespace osgUtil { class UpdateVisitor; class CullVisitor; class IntersectionVisitor; }
namespace osgGA { class EventVisitor; }
namespace osg {
class Billboard;
class ClearNode;
class ClipNode;
class CoordinateSystemNode;
class Geode;
class Group;
class LightSource;
class LOD;
class MatrixTransform;
class OccluderNode;
class OcclusionQueryNode;
class PagedLOD;
class PositionAttitudeTransform;
class AutoTransform;
class MultiViewAutoTransform;
class Projection;
class ProxyNode;
class Sequence;
class Switch;
class TexGenNode;
class Transform;
class Camera;
class CameraView;
class Drawable;
class Geometry;
class CullStack;
const unsigned int UNINITIALIZED_FRAME_NUMBER=0xffffffff;
#define META_NodeVisitor(library, name) \
virtual const char* libraryName() const { return #library; }\
virtual const char* className() const { return #name; }
class OSG_EXPORT NodeVisitor : public virtual Object
{
public:
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
};
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() { return this; }
virtual const NodeVisitor* asNodeVisitor() const { return this; }
virtual osgUtil::UpdateVisitor* asUpdateVisitor() { return 0; }
virtual const osgUtil::UpdateVisitor* asUpdateVisitor() const { return 0; }
virtual osgUtil::CullVisitor* asCullVisitor() { return 0; }
virtual const osgUtil::CullVisitor* asCullVisitor() const { return 0; }
virtual osgGA::EventVisitor* asEventVisitor() { return 0; }
virtual const osgGA::EventVisitor* asEventVisitor() const { return 0; }
virtual osgUtil::IntersectionVisitor* asIntersectionVisitor() { return 0; }
virtual const osgUtil::IntersectionVisitor* asIntersectionVisitor() const { return 0; }
virtual osg::CullStack* asCullStack() { return 0; }
virtual const osg::CullStack* asCullStack() const { return 0; }
virtual void reset() {}
inline void setVisitorType(VisitorType type) { _visitorType = type; }
inline VisitorType getVisitorType() const { return _visitorType; }
inline void setTraversalNumber(unsigned int fn) { _traversalNumber = fn; }
inline unsigned int getTraversalNumber() const { return _traversalNumber; }
inline void setFrameStamp(FrameStamp* fs) { _frameStamp = fs; }
inline const FrameStamp* getFrameStamp() const { return _frameStamp.get(); }
inline void setTraversalMask(Node::NodeMask mask) { _traversalMask = mask; }
inline Node::NodeMask getTraversalMask() const { return _traversalMask; }
inline void setNodeMaskOverride(Node::NodeMask mask) { _nodeMaskOverride = mask; }
inline Node::NodeMask getNodeMaskOverride() const { return _nodeMaskOverride; }
inline bool validNodeMask(const osg::Node& node) const
{
return (getTraversalMask() & (getNodeMaskOverride() | node.getNodeMask()))!=0;
}
inline void setTraversalMode(TraversalMode mode) { _traversalMode = mode; }
inline TraversalMode getTraversalMode() const { return _traversalMode; }
inline void setValueMap(ValueMap* ps) { _valueMap = ps; }
inline ValueMap* getValueMap() { return _valueMap.get(); }
inline const ValueMap* getValueMap() const { return _valueMap.get(); }
inline ValueMap* getOrCreateValueMap()
{
if (!_valueMap) _valueMap = new ValueMap;
return _valueMap.get();
}
inline void setValueStack(ValueStack* ps) { _valueStack = ps; }
inline ValueStack* getValueStack() { return _valueStack.get(); }
inline const ValueStack* getValueStack() const { return _valueStack.get(); }
inline ValueStack* getOrCreateValueStack()
{
if (!_valueStack) _valueStack = new ValueStack;
return _valueStack.get();
}
inline void traverse(Node& node)
{
if (_traversalMode==TRAVERSE_PARENTS) node.ascend(*this);
else if (_traversalMode!=TRAVERSE_NONE) node.traverse(*this);
}
inline void pushOntoNodePath(Node* node) { if (_traversalMode!=TRAVERSE_PARENTS) _nodePath.push_back(node); else _nodePath.insert(_nodePath.begin(),node); }
inline void popFromNodePath() { if (_traversalMode!=TRAVERSE_PARENTS) _nodePath.pop_back(); else _nodePath.erase(_nodePath.begin()); }
NodePath& getNodePath() { return _nodePath; }
const NodePath& getNodePath() const { return _nodePath; }
virtual osg::Vec3 getEyePoint() const { return Vec3(0.0f,0.0f,0.0f); }
virtual osg::Vec3 getViewPoint() const { return getEyePoint(); }
virtual float getDistanceToEyePoint(const Vec3& /*pos*/, bool /*useLODScale*/) const { return 0.0f; }
virtual float getDistanceFromEyePoint(const Vec3& /*pos*/, bool /*useLODScale*/) const { return 0.0f; }
virtual float getDistanceToViewPoint(const Vec3& /*pos*/, bool /*useLODScale*/) const { return 0.0f; }
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);
class DatabaseRequestHandler : public osg::Referenced
{
public:
DatabaseRequestHandler():
Referenced(true) {}
virtual void requestNodeFile(const std::string& fileName, osg::NodePath& nodePath, float priority, const FrameStamp* framestamp, osg::ref_ptr<osg::Referenced>& databaseRequest, const osg::Referenced* options=0) = 0;
protected:
virtual ~DatabaseRequestHandler() {}
};
void setDatabaseRequestHandler(DatabaseRequestHandler* handler) { _databaseRequestHandler = handler; }
DatabaseRequestHandler* getDatabaseRequestHandler() { return _databaseRequestHandler.get(); }
const DatabaseRequestHandler* getDatabaseRequestHandler() const { return _databaseRequestHandler.get(); }
class ImageRequestHandler : public osg::Referenced
{
public:
ImageRequestHandler():
Referenced(true) {}
virtual double getPreLoadTime() const = 0;
virtual osg::ref_ptr<osg::Image> readRefImageFile(const std::string& fileName, const osg::Referenced* options=0) = 0;
virtual void requestImageFile(const std::string& fileName,osg::Object* attachmentPoint, int attachmentIndex, double timeToMergeBy, const FrameStamp* framestamp, osg::ref_ptr<osg::Referenced>& imageRequest, const osg::Referenced* options=0) = 0;
protected:
virtual ~ImageRequestHandler() {}
};
void setImageRequestHandler(ImageRequestHandler* handler) { _imageRequestHandler = handler; }
ImageRequestHandler* getImageRequestHandler() { return _imageRequestHandler.get(); }
const ImageRequestHandler* getImageRequestHandler() const { return _imageRequestHandler.get(); }
protected:
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;
};
class NodeAcceptOp
{
public:
NodeAcceptOp(NodeVisitor& nv):_nv(nv) {}
NodeAcceptOp(const NodeAcceptOp& naop):_nv(naop._nv) {}
void operator () (Node* node) { node->accept(_nv); }
void operator () (ref_ptr<Node> node) { node->accept(_nv); }
protected:
NodeAcceptOp& operator = (const NodeAcceptOp&) { return *this; }
NodeVisitor& _nv;
};
class PushPopObject
{
public:
PushPopObject(NodeVisitor* nv, const Referenced* key, Object* value):
_valueStack(0),
_key(0)
{
if (key)
{
_valueStack = nv->getOrCreateValueStack();
_key = key;
_valueStack->push(_key, value);
}
}
PushPopObject(ValueStack* valueStack, const Referenced* key, Object* value):
_valueStack(valueStack),
_key(0)
{
if (_valueStack && key)
{
_key = key;
_valueStack->push(_key, value);
}
}
inline ~PushPopObject()
{
if (_valueStack) _valueStack->pop(_key);
}
protected:
ValueStack* _valueStack;
const Referenced* _key;
};
class PushPopValue
{
public:
template<typename T>
PushPopValue(NodeVisitor* nv, const Referenced* key, const T& value):
_valueStack(0),
_key(0)
{
if (key)
{
_valueStack = nv->getOrCreateValueStack();
_key = key;
_valueStack->push(_key, value);
}
}
template<typename T>
PushPopValue(ValueStack* valueStack, const Referenced* key, const T& value):
_valueStack(valueStack),
_key(0)
{
if (_valueStack && key)
{
_key = key;
_valueStack->push(_key, value);
}
}
inline ~PushPopValue()
{
if (_valueStack) _valueStack->pop(_key);
}
protected:
ValueStack* _valueStack;
const Referenced* _key;
};
template<>
inline ValueStack* getOrCreateUserObjectOfType<NodeVisitor,ValueStack>(NodeVisitor* nv)
{
return nv->getOrCreateValueStack();
}
template<>
inline ValueMap* getOrCreateUserObjectOfType<NodeVisitor,ValueMap>(NodeVisitor* nv)
{
return nv->getOrCreateValueMap();
}
}
#endif
FrameStamp
Matrix
Node
ValueMap
ValueStack
osgGA::EventVisitor
Definition EventVisitor:42
osgUtil::CullVisitor
Definition CullVisitor:49
osgUtil::IntersectionVisitor
Definition IntersectionVisitor:152
osgUtil::UpdateVisitor
Definition UpdateVisitor:38
osg::AutoTransform
Definition AutoTransform:28
osg::Billboard
Definition Billboard:27
osg::CameraView
Definition CameraView:30
osg::Camera
Definition Camera:45
osg::ClearNode
Definition ClearNode:31
osg::ClipNode
Definition ClipNode:24
osg::CoordinateSystemNode
Definition CoordinateSystemNode:96
osg::CopyOp
Definition CopyOp:41
osg::CopyOp::SHALLOW_COPY
@ SHALLOW_COPY
Definition CopyOp:47
osg::CullStack
Definition CullStack:28
osg::Drawable
Definition Drawable:89
osg::FrameStamp
Definition FrameStamp:35
osg::Geode
Definition Geode:29
osg::Geometry
Definition Geometry:31
osg::Group
Definition Group:29
osg::LOD
Definition LOD:36
osg::LightSource
Definition LightSource:25
osg::MatrixTransform
Definition MatrixTransform:26
osg::NodeAcceptOp::NodeAcceptOp
NodeAcceptOp(const NodeAcceptOp &naop)
Definition NodeVisitor:442
osg::NodeAcceptOp::operator=
NodeAcceptOp & operator=(const NodeAcceptOp &)
Definition NodeVisitor:449
osg::NodeAcceptOp::operator()
void operator()(Node *node)
Definition NodeVisitor:444
osg::NodeAcceptOp::_nv
NodeVisitor & _nv
Definition NodeVisitor:451
osg::NodeAcceptOp::NodeAcceptOp
NodeAcceptOp(NodeVisitor &nv)
Definition NodeVisitor:441
osg::NodeVisitor::DatabaseRequestHandler
Definition NodeVisitor:364
osg::NodeVisitor::DatabaseRequestHandler::requestNodeFile
virtual void requestNodeFile(const std::string &fileName, osg::NodePath &nodePath, float priority, const FrameStamp *framestamp, osg::ref_ptr< osg::Referenced > &databaseRequest, const osg::Referenced *options=0)=0
osg::NodeVisitor::DatabaseRequestHandler::~DatabaseRequestHandler
virtual ~DatabaseRequestHandler()
Definition NodeVisitor:373
osg::NodeVisitor::DatabaseRequestHandler::DatabaseRequestHandler
DatabaseRequestHandler()
Definition NodeVisitor:367
osg::NodeVisitor::ImageRequestHandler
Definition NodeVisitor:388
osg::NodeVisitor::ImageRequestHandler::requestImageFile
virtual void requestImageFile(const std::string &fileName, osg::Object *attachmentPoint, int attachmentIndex, double timeToMergeBy, const FrameStamp *framestamp, osg::ref_ptr< osg::Referenced > &imageRequest, const osg::Referenced *options=0)=0
osg::NodeVisitor::ImageRequestHandler::~ImageRequestHandler
virtual ~ImageRequestHandler()
Definition NodeVisitor:401
osg::NodeVisitor::ImageRequestHandler::ImageRequestHandler
ImageRequestHandler()
Definition NodeVisitor:391
osg::NodeVisitor::ImageRequestHandler::readRefImageFile
virtual osg::ref_ptr< osg::Image > readRefImageFile(const std::string &fileName, const osg::Referenced *options=0)=0
osg::NodeVisitor::ImageRequestHandler::getPreLoadTime
virtual double getPreLoadTime() const =0
osg::NodeVisitor
Definition NodeVisitor:82
osg::NodeVisitor::apply
virtual void apply(OcclusionQueryNode &node)
osg::NodeVisitor::getFrameStamp
const FrameStamp * getFrameStamp() const
Definition NodeVisitor:188
osg::NodeVisitor::getDatabaseRequestHandler
const DatabaseRequestHandler * getDatabaseRequestHandler() const
Definition NodeVisitor:383
osg::NodeVisitor::getOrCreateValueStack
ValueStack * getOrCreateValueStack()
Definition NodeVisitor:263
osg::NodeVisitor::apply
virtual void apply(MatrixTransform &node)
osg::NodeVisitor::asIntersectionVisitor
virtual const osgUtil::IntersectionVisitor * asIntersectionVisitor() const
Definition NodeVisitor:151
osg::NodeVisitor::setDatabaseRequestHandler
void setDatabaseRequestHandler(DatabaseRequestHandler *handler)
Definition NodeVisitor:377
osg::NodeVisitor::apply
virtual void apply(LightSource &node)
osg::NodeVisitor::apply
virtual void apply(Drawable &drawable)
osg::NodeVisitor::_traversalMode
TraversalMode _traversalMode
Definition NodeVisitor:422
osg::NodeVisitor::getVisitorType
VisitorType getVisitorType() const
Definition NodeVisitor:176
osg::NodeVisitor::apply
virtual void apply(Billboard &node)
osg::NodeVisitor::apply
virtual void apply(Geometry &geometry)
osg::NodeVisitor::asIntersectionVisitor
virtual osgUtil::IntersectionVisitor * asIntersectionVisitor()
Definition NodeVisitor:147
osg::NodeVisitor::VisitorType
VisitorType
Definition NodeVisitor:94
osg::NodeVisitor::UPDATE_VISITOR
@ UPDATE_VISITOR
Definition NodeVisitor:96
osg::NodeVisitor::NODE_VISITOR
@ NODE_VISITOR
Definition NodeVisitor:95
osg::NodeVisitor::EVENT_VISITOR
@ EVENT_VISITOR
Definition NodeVisitor:97
osg::NodeVisitor::COLLECT_OCCLUDER_VISITOR
@ COLLECT_OCCLUDER_VISITOR
Definition NodeVisitor:98
osg::NodeVisitor::CULL_VISITOR
@ CULL_VISITOR
Definition NodeVisitor:99
osg::NodeVisitor::INTERSECTION_VISITOR
@ INTERSECTION_VISITOR
Definition NodeVisitor:100
osg::NodeVisitor::getImageRequestHandler
ImageRequestHandler * getImageRequestHandler()
Definition NodeVisitor:408
osg::NodeVisitor::apply
virtual void apply(AutoTransform &node)
osg::NodeVisitor::asEventVisitor
virtual const osgGA::EventVisitor * asEventVisitor() const
Definition NodeVisitor:143
osg::NodeVisitor::getOrCreateValueMap
ValueMap * getOrCreateValueMap()
Definition NodeVisitor:247
osg::NodeVisitor::META_Object
META_Object(osg, NodeVisitor) virtual NodeVisitor *asNodeVisitor()
Definition NodeVisitor:111
osg::NodeVisitor::setValueMap
void setValueMap(ValueMap *ps)
Definition NodeVisitor:238
osg::NodeVisitor::asCullVisitor
virtual const osgUtil::CullVisitor * asCullVisitor() const
Definition NodeVisitor:135
osg::NodeVisitor::asUpdateVisitor
virtual const osgUtil::UpdateVisitor * asUpdateVisitor() const
Definition NodeVisitor:127
osg::NodeVisitor::TraversalMode
TraversalMode
Definition NodeVisitor:86
osg::NodeVisitor::TRAVERSE_ACTIVE_CHILDREN
@ TRAVERSE_ACTIVE_CHILDREN
Definition NodeVisitor:90
osg::NodeVisitor::TRAVERSE_NONE
@ TRAVERSE_NONE
Definition NodeVisitor:87
osg::NodeVisitor::TRAVERSE_PARENTS
@ TRAVERSE_PARENTS
Definition NodeVisitor:88
osg::NodeVisitor::TRAVERSE_ALL_CHILDREN
@ TRAVERSE_ALL_CHILDREN
Definition NodeVisitor:89
osg::NodeVisitor::getValueStack
const ValueStack * getValueStack() const
Definition NodeVisitor:260
osg::NodeVisitor::_traversalMask
Node::NodeMask _traversalMask
Definition NodeVisitor:423
osg::NodeVisitor::asUpdateVisitor
virtual osgUtil::UpdateVisitor * asUpdateVisitor()
Definition NodeVisitor:123
osg::NodeVisitor::getValueMap
const ValueMap * getValueMap() const
Definition NodeVisitor:244
osg::NodeVisitor::reset
virtual void reset()
Definition NodeVisitor:167
osg::NodeVisitor::setTraversalMask
void setTraversalMask(Node::NodeMask mask)
Definition NodeVisitor:200
osg::NodeVisitor::pushOntoNodePath
void pushOntoNodePath(Node *node)
Definition NodeVisitor:287
osg::NodeVisitor::getNodePath
const NodePath & getNodePath() const
Definition NodeVisitor:301
osg::NodeVisitor::getTraversalMask
Node::NodeMask getTraversalMask() const
Definition NodeVisitor:203
osg::NodeVisitor::setFrameStamp
void setFrameStamp(FrameStamp *fs)
Definition NodeVisitor:185
osg::NodeVisitor::asEventVisitor
virtual osgGA::EventVisitor * asEventVisitor()
Definition NodeVisitor:139
osg::NodeVisitor::apply
virtual void apply(ClearNode &node)
osg::NodeVisitor::_frameStamp
ref_ptr< FrameStamp > _frameStamp
Definition NodeVisitor:420
osg::NodeVisitor::asCullStack
virtual const osg::CullStack * asCullStack() const
Definition NodeVisitor:159
osg::NodeVisitor::apply
virtual void apply(Group &node)
osg::NodeVisitor::apply
virtual void apply(CameraView &node)
osg::NodeVisitor::apply
virtual void apply(Camera &node)
osg::NodeVisitor::getDistanceToEyePoint
virtual float getDistanceToEyePoint(const Vec3 &, bool) const
Definition NodeVisitor:314
osg::NodeVisitor::apply
virtual void apply(PositionAttitudeTransform &node)
osg::NodeVisitor::getTraversalMode
TraversalMode getTraversalMode() const
Definition NodeVisitor:234
osg::NodeVisitor::traverse
void traverse(Node &node)
Definition NodeVisitor:274
osg::NodeVisitor::NodeVisitor
NodeVisitor(TraversalMode tm=TRAVERSE_NONE)
osg::NodeVisitor::_nodeMaskOverride
Node::NodeMask _nodeMaskOverride
Definition NodeVisitor:424
osg::NodeVisitor::apply
virtual void apply(Projection &node)
osg::NodeVisitor::apply
virtual void apply(ProxyNode &node)
osg::NodeVisitor::setNodeMaskOverride
void setNodeMaskOverride(Node::NodeMask mask)
Definition NodeVisitor:210
osg::NodeVisitor::_visitorType
VisitorType _visitorType
Definition NodeVisitor:417
osg::NodeVisitor::setValueStack
void setValueStack(ValueStack *ps)
Definition NodeVisitor:254
osg::NodeVisitor::setTraversalMode
void setTraversalMode(TraversalMode mode)
Definition NodeVisitor:231
osg::NodeVisitor::_nodePath
NodePath _nodePath
Definition NodeVisitor:426
osg::NodeVisitor::_imageRequestHandler
ref_ptr< ImageRequestHandler > _imageRequestHandler
Definition NodeVisitor:429
osg::NodeVisitor::apply
virtual void apply(TexGenNode &node)
osg::NodeVisitor::apply
virtual void apply(Switch &node)
osg::NodeVisitor::getValueStack
ValueStack * getValueStack()
Definition NodeVisitor:257
osg::NodeVisitor::apply
virtual void apply(LOD &node)
osg::NodeVisitor::NodeVisitor
NodeVisitor(const NodeVisitor &nv, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
osg::NodeVisitor::apply
virtual void apply(OccluderNode &node)
osg::NodeVisitor::getViewPoint
virtual osg::Vec3 getViewPoint() const
Definition NodeVisitor:309
osg::NodeVisitor::getDistanceToViewPoint
virtual float getDistanceToViewPoint(const Vec3 &, bool) const
Definition NodeVisitor:324
osg::NodeVisitor::getTraversalNumber
unsigned int getTraversalNumber() const
Definition NodeVisitor:182
osg::NodeVisitor::apply
virtual void apply(Node &node)
osg::NodeVisitor::NodeVisitor
NodeVisitor(VisitorType type, TraversalMode tm=TRAVERSE_NONE)
osg::NodeVisitor::apply
virtual void apply(Sequence &node)
osg::NodeVisitor::~NodeVisitor
virtual ~NodeVisitor()
osg::NodeVisitor::apply
virtual void apply(Geode &node)
osg::NodeVisitor::validNodeMask
bool validNodeMask(const osg::Node &node) const
Definition NodeVisitor:221
osg::NodeVisitor::getDistanceFromEyePoint
virtual float getDistanceFromEyePoint(const Vec3 &, bool) const
Definition NodeVisitor:319
osg::NodeVisitor::_valueStack
osg::ref_ptr< ValueStack > _valueStack
Definition NodeVisitor:432
osg::NodeVisitor::setVisitorType
void setVisitorType(VisitorType type)
Definition NodeVisitor:173
osg::NodeVisitor::getImageRequestHandler
const ImageRequestHandler * getImageRequestHandler() const
Definition NodeVisitor:411
osg::NodeVisitor::asCullStack
virtual osg::CullStack * asCullStack()
Definition NodeVisitor:155
osg::NodeVisitor::getValueMap
ValueMap * getValueMap()
Definition NodeVisitor:241
osg::NodeVisitor::_databaseRequestHandler
ref_ptr< DatabaseRequestHandler > _databaseRequestHandler
Definition NodeVisitor:428
osg::NodeVisitor::_traversalNumber
unsigned int _traversalNumber
Definition NodeVisitor:418
osg::NodeVisitor::getNodePath
NodePath & getNodePath()
Definition NodeVisitor:297
osg::NodeVisitor::getDatabaseRequestHandler
DatabaseRequestHandler * getDatabaseRequestHandler()
Definition NodeVisitor:380
osg::NodeVisitor::apply
virtual void apply(CoordinateSystemNode &node)
osg::NodeVisitor::getNodeMaskOverride
Node::NodeMask getNodeMaskOverride() const
Definition NodeVisitor:213
osg::NodeVisitor::setImageRequestHandler
void setImageRequestHandler(ImageRequestHandler *handler)
Definition NodeVisitor:405
osg::NodeVisitor::_valueMap
osg::ref_ptr< ValueMap > _valueMap
Definition NodeVisitor:431
osg::NodeVisitor::setTraversalNumber
void setTraversalNumber(unsigned int fn)
Definition NodeVisitor:179
osg::NodeVisitor::popFromNodePath
void popFromNodePath()
Definition NodeVisitor:293
osg::NodeVisitor::getEyePoint
virtual osg::Vec3 getEyePoint() const
Definition NodeVisitor:305
osg::NodeVisitor::apply
virtual void apply(PagedLOD &node)
osg::NodeVisitor::apply
virtual void apply(Transform &node)
osg::NodeVisitor::apply
virtual void apply(ClipNode &node)
osg::NodeVisitor::asNodeVisitor
virtual const NodeVisitor * asNodeVisitor() const
Definition NodeVisitor:119
osg::NodeVisitor::asCullVisitor
virtual osgUtil::CullVisitor * asCullVisitor()
Definition NodeVisitor:131
osg::Node
Definition Node:72
osg::Node::traverse
virtual void traverse(NodeVisitor &)
Definition Node:167
osg::Node::getNodeMask
NodeMask getNodeMask() const
Definition Node:367
osg::Node::NodeMask
unsigned int NodeMask
Definition Node:363
osg::Node::accept
virtual void accept(NodeVisitor &nv)
osg::Node::ascend
virtual void ascend(NodeVisitor &nv)
osg::Object
Definition Object:61
osg::Object::Object
Object()
Definition Object:69
osg::OccluderNode
Definition OccluderNode:27
osg::OcclusionQueryNode
Definition OcclusionQueryNode:110
osg::PagedLOD
Definition PagedLOD:24
osg::PositionAttitudeTransform
Definition PositionAttitudeTransform:29
osg::Projection
Definition Projection:25
osg::ProxyNode
Definition ProxyNode:24
osg::PushPopObject::_valueStack
ValueStack * _valueStack
Definition NodeVisitor:489
osg::PushPopObject::_key
const Referenced * _key
Definition NodeVisitor:490
osg::PushPopObject::~PushPopObject
~PushPopObject()
Definition NodeVisitor:483
osg::PushPopObject::PushPopObject
PushPopObject(NodeVisitor *nv, const Referenced *key, Object *value)
Definition NodeVisitor:460
osg::PushPopObject::PushPopObject
PushPopObject(ValueStack *valueStack, const Referenced *key, Object *value)
Definition NodeVisitor:472
osg::PushPopValue::~PushPopValue
~PushPopValue()
Definition NodeVisitor:523
osg::PushPopValue::_valueStack
ValueStack * _valueStack
Definition NodeVisitor:529
osg::PushPopValue::_key
const Referenced * _key
Definition NodeVisitor:530
osg::PushPopValue::PushPopValue
PushPopValue(ValueStack *valueStack, const Referenced *key, const T &value)
Definition NodeVisitor:512
osg::PushPopValue::PushPopValue
PushPopValue(NodeVisitor *nv, const Referenced *key, const T &value)
Definition NodeVisitor:499
osg::Referenced
Definition Referenced:44
osg::Referenced::Referenced
Referenced()
osg::Sequence
Definition Sequence:26
osg::Switch
Definition Switch:27
osg::TexGenNode
Definition TexGenNode:24
osg::Transform
Definition Transform:75
osg::ValueMap
Definition ValueMap:26
osg::ValueStack
Definition ValueStack:24
osg::ref_ptr
Definition ref_ptr:32
osgGA
Definition Callback:21
osgUtil
Definition NodeVisitor:25
osg
Definition AlphaFunc:19
osg::Vec3
Vec3f Vec3
Definition Vec3:21
osg::UNINITIALIZED_FRAME_NUMBER
const unsigned int UNINITIALIZED_FRAME_NUMBER
Definition NodeVisitor:61
osg::getOrCreateUserObjectOfType< NodeVisitor, ValueStack >
ValueStack * getOrCreateUserObjectOfType< NodeVisitor, ValueStack >(NodeVisitor *nv)
Definition NodeVisitor:534
osg::NodePath
std::vector< Node * > NodePath
Definition Node:47
osg::getOrCreateUserObjectOfType< NodeVisitor, ValueMap >
ValueMap * getOrCreateUserObjectOfType< NodeVisitor, ValueMap >(NodeVisitor *nv)
Definition NodeVisitor:540
OSG_EXPORT
#define OSG_EXPORT
Definition osg/Export:39