OpenSceneGraph
Classes | Namespaces | Macros | Typedefs
Node File Reference
#include <osg/Object>
#include <osg/StateSet>
#include <osg/BoundingSphere>
#include <osg/BoundingBox>
#include <osg/Callback>
#include <string>
#include <vector>

Classes

class  osg::Node
 Base class for all internal nodes in the scene graph. More...
 
struct  osg::Node::ComputeBoundingSphereCallback
 Callback to allow users to override the default computation of bounding volume. More...
 

Namespaces

 osgTerrain
 The osgTerrain library is a NodeKit that provides geospecifc terrain rendering support.
 
 osg
 The core osg library provides the basic scene graph classes such as Nodes, State and Drawables, and maths and general helper classes.
 

Macros

#define OSG_NODE   1
 
#define META_Node(library, name)
 META_Node macro define the standard clone, isSameKindAs, className and accept methods. More...
 

Typedefs

typedef std::vector< Node *> osg::NodePath
 A vector of Nodes pointers which is used to describe the path from a root node to a descendant. More...
 
typedef std::vector< NodePath > osg::NodePathList
 A vector of NodePath, typically used to describe all the paths from a node to the potential root nodes it has. More...
 
typedef std::vector< Matrix > osg::MatrixList
 A vector of NodePath, typically used to describe all the paths from a node to the potential root nodes it has. More...
 

Macro Definition Documentation

◆ META_Node

#define META_Node (   library,
  name 
)
Value:
virtual osg::Object* cloneType() const { return new name (); } \
virtual osg::Object* clone(const osg::CopyOp& copyop) const { return new name (*this,copyop); } \
virtual bool isSameKindAs(const osg::Object* obj) const { return dynamic_cast<const name *>(obj)!=NULL; } \
virtual const char* className() const { return #name; } \
virtual const char* libraryName() const { return #library; } \
virtual void accept(osg::NodeVisitor& nv) { if (nv.validNodeMask(*this)) { nv.pushOntoNodePath(this); nv.apply(*this); nv.popFromNodePath(); } } \
bool validNodeMask(const osg::Node &node) const
Method to called by Node and its subclass&#39; Node::accept() method, if the result is true it is used to...
Definition: NodeVisitor:221
#define NULL
Definition: Export:55
virtual void apply(Drawable &drawable)
Visitor for type safe operations on osg::Nodes.
Definition: NodeVisitor:81
Base class/standard interface for objects which require IO support, cloning and reference counting...
Definition: Object:60
void pushOntoNodePath(Node *node)
Method called by osg::Node::accept() method before a call to the NodeVisitor::apply(..).
Definition: NodeVisitor:287
void popFromNodePath()
Method called by osg::Node::accept() method after a call to NodeVisitor::apply(..).
Definition: NodeVisitor:293
T * clone(const T *t, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
Definition: Object:323
Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...
Definition: CopyOp:41
T * cloneType(const T *t)
Definition: Object:365

META_Node macro define the standard clone, isSameKindAs, className and accept methods.

Use when subclassing from Node to make it more convenient to define the required pure virtual methods.

Referenced by osg::Switch::asSwitch(), osg::CameraView::CameraView(), osg::ClearNode::ClearNode(), osg::DispatchCompute::DispatchCompute(), osgSim::SphereSegment::getSideColor(), osgSim::Impostor::Impostor(), osg::LightSource::LightSource(), osg::PositionAttitudeTransform::PositionAttitudeTransform(), and osgSim::ScalarBar::ScalarBar().

◆ OSG_NODE

#define OSG_NODE   1