Public Types | |
typedef std::vector < Group * > | ParentList |
A vector of osg::Group pointers which is used to store the parent(s) of node. | |
typedef unsigned int | NodeMask |
typedef std::vector < std::string > | DescriptionList |
A vector of std::string's which are used to describe the object. | |
Public Member Functions | |
Node () | |
Construct a node. | |
Node (const Node &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
Copy constructor using CopyOp to manage deep vs shallow copy. | |
virtual Object * | cloneType () const |
clone an object of the same type as the node. | |
virtual Object * | clone (const CopyOp ©op) const |
return a clone of a node, with Object* return type. | |
virtual bool | isSameKindAs (const Object *obj) const |
return true if this and obj are of the same kind of object. | |
virtual const char * | libraryName () const |
return the name of the node's library. | |
virtual const char * | className () const |
return the name of the node's class type. | |
virtual Group * | asGroup () |
convert 'this' into a Group pointer if Node is a Group, otherwise return 0. | |
virtual const Group * | asGroup () const |
convert 'const this' into a const Group pointer if Node is a Group, otherwise return 0. | |
virtual Transform * | asTransform () |
Convert 'this' into a Transform pointer if Node is a Transform, otherwise return 0. | |
virtual const Transform * | asTransform () const |
convert 'const this' into a const Transform pointer if Node is a Transform, otherwise return 0. | |
virtual void | accept (NodeVisitor &nv) |
Visitor Pattern : calls the apply method of a NodeVisitor with this node's type. | |
virtual void | ascend (NodeVisitor &nv) |
Traverse upwards : calls parents' accept method with NodeVisitor. | |
virtual void | traverse (NodeVisitor &) |
Traverse downwards : calls children's accept method with NodeVisitor. | |
const ParentList & | getParents () const |
Get the parent list of node. | |
ParentList | getParents () |
Get the a copy of parent list of node. | |
Group * | getParent (unsigned int i) |
const Group * | getParent (unsigned int i) const |
Get a single const parent of node. | |
unsigned int | getNumParents () const |
Get the number of parents of node. | |
NodePathList | getParentalNodePaths (osg::Node *haltTraversalAtNode=0) const |
Get the list of node paths parent paths. | |
MatrixList | getWorldMatrices (osg::Node *haltTraversalAtNode=0) const |
Get the list of matrices that transform this node from local coordinates to world coordinates. | |
void | setUpdateCallback (NodeCallback *nc) |
Set update node callback, called during update traversal. | |
NodeCallback * | getUpdateCallback () |
Get update node callback, called during update traversal. | |
const NodeCallback * | getUpdateCallback () const |
Get const update node callback, called during update traversal. | |
unsigned int | getNumChildrenRequiringUpdateTraversal () const |
Get the number of Children of this node which require Update traversal, since they have an Update Callback attached to them or their children. | |
void | setEventCallback (NodeCallback *nc) |
Set update node callback, called during update traversal. | |
NodeCallback * | getEventCallback () |
Get update node callback, called during update traversal. | |
const NodeCallback * | getEventCallback () const |
Get const update node callback, called during update traversal. | |
unsigned int | getNumChildrenRequiringEventTraversal () const |
Get the number of Children of this node which require Event traversal, since they have an Event Callback attached to them or their children. | |
void | setCullCallback (NodeCallback *nc) |
Set cull node callback, called during cull traversal. | |
NodeCallback * | getCullCallback () |
Get cull node callback, called during cull traversal. | |
const NodeCallback * | getCullCallback () const |
Get const cull node callback, called during cull traversal. | |
void | setCullingActive (bool active) |
Set the view frustum/small feature culling of this node to be active or inactive. | |
bool | getCullingActive () const |
Get the view frustum/small feature _cullingActive flag for this node. | |
unsigned int | getNumChildrenWithCullingDisabled () const |
Get the number of Children of this node which have culling disabled. | |
bool | isCullingActive () const |
Return true if this node can be culled by view frustum, occlusion or small feature culling during the cull traversal. | |
unsigned int | getNumChildrenWithOccluderNodes () const |
Get the number of Children of this node which are or have OccluderNode's. | |
bool | containsOccluderNodes () const |
return true if this node is an OccluderNode or the subgraph below this node are OccluderNodes. | |
void | setNodeMask (NodeMask nm) |
Set the node mask. | |
NodeMask | getNodeMask () const |
Get the node Mask. | |
void | setDescriptions (const DescriptionList &descriptions) |
Set the description list of the node. | |
DescriptionList & | getDescriptions () |
Get the description list of the node. | |
const DescriptionList & | getDescriptions () const |
Get the const description list of the const node. | |
const std::string & | getDescription (unsigned int i) const |
Get a single const description of the const node. | |
std::string & | getDescription (unsigned int i) |
Get a single description of the node. | |
unsigned int | getNumDescriptions () const |
Get the number of descriptions of the node. | |
void | addDescription (const std::string &desc) |
Add a description string to the node. | |
void | setStateSet (osg::StateSet *stateset) |
Set the node's StateSet. | |
osg::StateSet * | getOrCreateStateSet () |
return the node's StateSet, if one does not already exist create it set the node and return the newly created StateSet. | |
osg::StateSet * | getStateSet () |
Return the node's StateSet. | |
const osg::StateSet * | getStateSet () const |
Return the node's const StateSet. | |
void | setInitialBound (const osg::BoundingSphere &bsphere) |
Set the intial bounding volume to use when computing the overall bounding volume. | |
const BoundingSphere & | getInitialBound () const |
Set the intial bounding volume to use when computing the overall bounding volume. | |
void | dirtyBound () |
Mark this node's bounding sphere dirty. | |
const BoundingSphere & | getBound () const |
Get the bounding sphere of node. | |
virtual BoundingSphere | computeBound () const |
Compute the bounding sphere around Node's geometry or children. | |
void | setComputeBoundingSphereCallback (ComputeBoundingSphereCallback *callback) |
Set the compute bound callback to override the default computeBound. | |
ComputeBoundingSphereCallback * | getComputeBoundingSphereCallback () |
Get the compute bound callback. | |
const ComputeBoundingSphereCallback * | getComputeBoundingSphereCallback () const |
Get the const compute bound callback. | |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
Set whether to use a mutex to ensure ref() and unref() are thread safe. | |
virtual void | resizeGLObjectBuffers (unsigned int) |
Resize any per context GLObject buffers to specified size. | |
virtual void | releaseGLObjects (osg::State *=0) const |
If State is non-zero, this function releases any associated OpenGL objects for the specified graphics context. | |
Protected Member Functions | |
virtual | ~Node () |
Node destructor. | |
void | addParent (osg::Group *node) |
void | removeParent (osg::Group *node) |
void | setNumChildrenRequiringUpdateTraversal (unsigned int num) |
void | setNumChildrenRequiringEventTraversal (unsigned int num) |
void | setNumChildrenWithCullingDisabled (unsigned int num) |
void | setNumChildrenWithOccluderNodes (unsigned int num) |
Protected Attributes | |
BoundingSphere | _initialBound |
ref_ptr < ComputeBoundingSphereCallback > | _computeBoundCallback |
BoundingSphere | _boundingSphere |
bool | _boundingSphereComputed |
ParentList | _parents |
ref_ptr< NodeCallback > | _updateCallback |
unsigned int | _numChildrenRequiringUpdateTraversal |
ref_ptr< NodeCallback > | _eventCallback |
unsigned int | _numChildrenRequiringEventTraversal |
ref_ptr< NodeCallback > | _cullCallback |
bool | _cullingActive |
unsigned int | _numChildrenWithCullingDisabled |
unsigned int | _numChildrenWithOccluderNodes |
NodeMask | _nodeMask |
DescriptionList | _descriptions |
ref_ptr< StateSet > | _stateset |
Friends | |
class | osg::Group |
class | osg::Drawable |
class | osg::StateSet |
Classes | |
struct | ComputeBoundingSphereCallback |
Callback to allow users to override the default computation of bounding volume. More... |
Provides interface for most common node operations (Composite Pattern).
typedef std::vector<Group*> osg::Node::ParentList |
A vector of osg::Group pointers which is used to store the parent(s) of node.
typedef unsigned int osg::Node::NodeMask |
typedef std::vector<std::string> osg::Node::DescriptionList |
A vector of std::string's which are used to describe the object.
osg::Node::Node | ( | ) |
Construct a node.
Initialize the parent list to empty, node name to "" and bounding sphere dirty flag to true.
Copy constructor using CopyOp to manage deep vs shallow copy.
virtual osg::Node::~Node | ( | ) | [protected, virtual] |
Node destructor.
Note, is protected so that Nodes cannot be deleted other than by being dereferenced and the reference count being zero (see osg::Referenced), preventing the deletion of nodes which are still in use. This also means that Nodes cannot be created on stack i.e Node node will not compile, forcing all nodes to be created on the heap i.e Node* node = new Node().
virtual Object* osg::Node::cloneType | ( | ) | const [inline, virtual] |
clone an object of the same type as the node.
Implements osg::Object.
Reimplemented in osg::AutoTransform, and osgManipulator::AntiSquish.
return a clone of a node, with Object* return type.
Implements osg::Object.
Reimplemented in osg::AutoTransform, and osgManipulator::AntiSquish.
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, osgFX::Effect, osgParticle::Emitter, osgParticle::ParticleEffect, osgParticle::ParticleProcessor, osgParticle::PrecipitationEffect, osgParticle::Program, and osgManipulator::AntiSquish.
virtual const char* osg::Node::libraryName | ( | ) | const [inline, virtual] |
return the name of the node's library.
Implements osg::Object.
Reimplemented in osg::AutoTransform, osgFX::Effect, osgParticle::Emitter, osgParticle::ParticleEffect, osgParticle::ParticleProcessor, osgParticle::PrecipitationEffect, and osgParticle::Program.
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, osgFX::Effect, osgParticle::Emitter, osgParticle::ParticleEffect, osgParticle::ParticleProcessor, osgParticle::PrecipitationEffect, and osgParticle::Program.
virtual Group* osg::Node::asGroup | ( | ) | [inline, virtual] |
convert 'this' into a Group pointer if Node is a Group, otherwise return 0.
Equivalent to dynamic_cast<Group*>(this).
Reimplemented in osg::Group.
virtual const Group* osg::Node::asGroup | ( | ) | const [inline, virtual] |
convert 'const this' into a const Group pointer if Node is a Group, otherwise return 0.
Equivalent to dynamic_cast<const Group*>(this).
Reimplemented in osg::Group.
virtual Transform* osg::Node::asTransform | ( | ) | [inline, virtual] |
Convert 'this' into a Transform pointer if Node is a Transform, otherwise return 0.
Equivalent to dynamic_cast<Transform*>(this).
Reimplemented in osg::Transform.
virtual const Transform* osg::Node::asTransform | ( | ) | const [inline, virtual] |
convert 'const this' into a const Transform pointer if Node is a Transform, otherwise return 0.
Equivalent to dynamic_cast<const Transform*>(this).
Reimplemented in osg::Transform.
virtual void osg::Node::accept | ( | NodeVisitor & | nv | ) | [virtual] |
Visitor Pattern : calls the apply method of a NodeVisitor with this node's type.
Reimplemented in osg::AutoTransform, osgParticle::Emitter, osgParticle::ParticleEffect, osgParticle::ParticleProcessor, osgParticle::PrecipitationEffect, and osgParticle::Program.
virtual void osg::Node::ascend | ( | NodeVisitor & | nv | ) | [virtual] |
Traverse upwards : calls parents' accept method with NodeVisitor.
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, osgParticle::ParticleProcessor, osgParticle::ParticleSystemUpdater, osgParticle::PrecipitationEffect, osgShadow::ShadowedScene, osgSim::DOFTransform, osgSim::Impostor, osgSim::LightPointNode, osgSim::MultiSwitch, osgSim::OverlayNode, osgSim::VisibilityGroup, and osgTerrain::Terrain.
const ParentList& osg::Node::getParents | ( | ) | const [inline] |
Get the parent list of node.
ParentList osg::Node::getParents | ( | ) | [inline] |
Get the a copy of parent list of node.
A copy is returned to prevent modification of the parent list.
Group* osg::Node::getParent | ( | unsigned int | i | ) | [inline] |
const Group* osg::Node::getParent | ( | unsigned int | i | ) | const [inline] |
Get a single const parent of node.
i | index of the parent to get. |
unsigned int osg::Node::getNumParents | ( | ) | const [inline] |
Get the number of parents of node.
NodePathList osg::Node::getParentalNodePaths | ( | osg::Node * | haltTraversalAtNode = 0 |
) | const |
Get the list of node paths parent paths.
The optional Node* haltTraversalAtNode allows the user to prevent traversal beyond a specifed node.
MatrixList osg::Node::getWorldMatrices | ( | osg::Node * | haltTraversalAtNode = 0 |
) | const |
Get the list of matrices that transform this node from local coordinates to world coordinates.
The optional Node* haltTraversalAtNode allows the user to prevent traversal beyond a specifed node.
void osg::Node::setUpdateCallback | ( | NodeCallback * | nc | ) |
Set update node callback, called during update traversal.
NodeCallback* osg::Node::getUpdateCallback | ( | ) | [inline] |
Get update node callback, called during update traversal.
const NodeCallback* osg::Node::getUpdateCallback | ( | ) | const [inline] |
Get const update node callback, called during update traversal.
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.
void osg::Node::setEventCallback | ( | NodeCallback * | nc | ) |
Set update node callback, called during update traversal.
NodeCallback* osg::Node::getEventCallback | ( | ) | [inline] |
Get update node callback, called during update traversal.
const NodeCallback* osg::Node::getEventCallback | ( | ) | const [inline] |
Get const update node callback, called during update traversal.
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.
void osg::Node::setCullCallback | ( | NodeCallback * | nc | ) | [inline] |
Set cull node callback, called during cull traversal.
NodeCallback* osg::Node::getCullCallback | ( | ) | [inline] |
Get cull node callback, called during cull traversal.
const NodeCallback* osg::Node::getCullCallback | ( | ) | const [inline] |
Get const cull node callback, called during cull traversal.
void osg::Node::setCullingActive | ( | bool | active | ) |
Set the view frustum/small feature culling of this node to be active or inactive.
The default value is true for _cullingActive. Used as a guide to the cull traversal.
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.
unsigned int osg::Node::getNumChildrenWithCullingDisabled | ( | ) | const [inline] |
Get the number of Children of this node which have culling disabled.
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.
unsigned int osg::Node::getNumChildrenWithOccluderNodes | ( | ) | const [inline] |
Get the number of Children of this node which are or have OccluderNode's.
bool osg::Node::containsOccluderNodes | ( | ) | const |
return true if this node is an OccluderNode or the subgraph below this node are OccluderNodes.
void osg::Node::setNodeMask | ( | NodeMask | nm | ) | [inline] |
Set the node mask.
NodeMask osg::Node::getNodeMask | ( | ) | const [inline] |
Get the node Mask.
void osg::Node::setDescriptions | ( | const DescriptionList & | descriptions | ) | [inline] |
Set the description list of the node.
DescriptionList& osg::Node::getDescriptions | ( | ) | [inline] |
Get the description list of the node.
const DescriptionList& osg::Node::getDescriptions | ( | ) | const [inline] |
Get the const description list of the const node.
const std::string& osg::Node::getDescription | ( | unsigned int | i | ) | const [inline] |
Get a single const description of the const node.
std::string& osg::Node::getDescription | ( | unsigned int | i | ) | [inline] |
Get a single description of the node.
unsigned int osg::Node::getNumDescriptions | ( | ) | const [inline] |
Get the number of descriptions of the node.
void osg::Node::addDescription | ( | const std::string & | desc | ) | [inline] |
Add a description string to the node.
void osg::Node::setStateSet | ( | osg::StateSet * | stateset | ) |
Set the node's StateSet.
osg::StateSet* osg::Node::getOrCreateStateSet | ( | ) |
osg::StateSet* osg::Node::getStateSet | ( | ) | [inline] |
Return the node's StateSet.
returns NULL if a stateset is not attached.
const osg::StateSet* osg::Node::getStateSet | ( | ) | const [inline] |
Return the node's const StateSet.
Returns NULL if a stateset is not attached.
void osg::Node::setInitialBound | ( | const osg::BoundingSphere & | bsphere | ) | [inline] |
Set the intial bounding volume to use when computing the overall bounding volume.
const BoundingSphere& osg::Node::getInitialBound | ( | ) | const [inline] |
Set the intial bounding volume to use when computing the overall bounding volume.
void osg::Node::dirtyBound | ( | ) |
Mark this node's bounding sphere dirty.
Forcing it to be computed on the next call to getBound().
const BoundingSphere& osg::Node::getBound | ( | ) | const [inline] |
Get the bounding sphere of node.
Using lazy evaluation computes the bounding sphere if it is 'dirty'.
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::AutoTransform, osg::Billboard, osg::ClipNode, osg::Geode, osg::Group, osg::LightSource, osg::LOD, osg::OccluderNode, osg::ProxyNode, osg::Switch, osg::Transform, osgParticle::ParticleProcessor, osgParticle::ParticleSystemUpdater, osgSim::Impostor, osgSim::LightPointNode, and osgTerrain::Terrain.
void osg::Node::setComputeBoundingSphereCallback | ( | ComputeBoundingSphereCallback * | callback | ) | [inline] |
Set the compute bound callback to override the default computeBound.
ComputeBoundingSphereCallback* osg::Node::getComputeBoundingSphereCallback | ( | ) | [inline] |
Get the compute bound callback.
const ComputeBoundingSphereCallback* osg::Node::getComputeBoundingSphereCallback | ( | ) | const [inline] |
Get the const compute bound callback.
virtual void osg::Node::setThreadSafeRefUnref | ( | bool | threadSafe | ) | [virtual] |
Set whether to use a mutex to ensure ref() and unref() are thread safe.
Reimplemented from osg::Referenced.
Reimplemented in osg::Geode, osg::Group, osg::LightSource, osg::TexGenNode, and osgSim::OverlayNode.
virtual void osg::Node::resizeGLObjectBuffers | ( | unsigned | int | ) | [virtual] |
Resize any per context GLObject buffers to specified size.
Reimplemented from osg::Object.
Reimplemented in osg::Camera, osg::Geode, osg::Group, and osgSim::OverlayNode.
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 objexts for all graphics contexts.
Reimplemented from osg::Object.
Reimplemented in osg::Camera, osg::Geode, osg::Group, and osgSim::OverlayNode.
void osg::Node::addParent | ( | osg::Group * | node | ) | [protected] |
void osg::Node::removeParent | ( | osg::Group * | node | ) | [protected] |
void osg::Node::setNumChildrenRequiringUpdateTraversal | ( | unsigned int | num | ) | [protected] |
void osg::Node::setNumChildrenRequiringEventTraversal | ( | unsigned int | num | ) | [protected] |
void osg::Node::setNumChildrenWithCullingDisabled | ( | unsigned int | num | ) | [protected] |
void osg::Node::setNumChildrenWithOccluderNodes | ( | unsigned int | num | ) | [protected] |
friend class osg::Group [friend] |
friend class osg::Drawable [friend] |
friend class osg::StateSet [friend] |
BoundingSphere osg::Node::_initialBound [protected] |
BoundingSphere osg::Node::_boundingSphere [mutable, protected] |
bool osg::Node::_boundingSphereComputed [mutable, protected] |
ParentList osg::Node::_parents [protected] |
ref_ptr<NodeCallback> osg::Node::_updateCallback [protected] |
unsigned int osg::Node::_numChildrenRequiringUpdateTraversal [protected] |
ref_ptr<NodeCallback> osg::Node::_eventCallback [protected] |
unsigned int osg::Node::_numChildrenRequiringEventTraversal [protected] |
ref_ptr<NodeCallback> osg::Node::_cullCallback [protected] |
bool osg::Node::_cullingActive [protected] |
unsigned int osg::Node::_numChildrenWithCullingDisabled [protected] |
unsigned int osg::Node::_numChildrenWithOccluderNodes [protected] |
NodeMask osg::Node::_nodeMask [protected] |
DescriptionList osg::Node::_descriptions [protected] |
ref_ptr<StateSet> osg::Node::_stateset [protected] |