59#define META_Node(library,name) \
60 virtual osg::Object* cloneType() const { return new name (); } \
61 virtual osg::Object* clone(const osg::CopyOp& copyop) const { return new name (*this,copyop); } \
62 virtual bool isSameKindAs(const osg::Object* obj) const { return dynamic_cast<const name *>(obj)!=NULL; } \
63 virtual const char* className() const { return #name; } \
64 virtual const char* libraryName() const { return #library; } \
65 virtual void accept(osg::NodeVisitor& nv) { if (nv.validNodeMask(*this)) { nv.pushOntoNodePath(this); nv.apply(*this); nv.popFromNodePath(); } } \
96 virtual const char*
className()
const {
return "Node"; }
192 inline unsigned int getNumParents()
const {
return static_cast<unsigned int>(_parents.size()); }
219 if (_updateCallback.valid()) _updateCallback->addNestedCallback(nc);
220 else setUpdateCallback(nc);
228 if (nc !=
NULL && _updateCallback.valid()) {
229 if (_updateCallback == nc)
233 setUpdateCallback(new_nested_callback.
get());
235 else _updateCallback->removeNestedCallback(nc);
260 if (_eventCallback.valid()) _eventCallback->addNestedCallback(nc);
261 else setEventCallback(nc);
269 if (nc !=
NULL && _eventCallback.valid()) {
270 if (_eventCallback == nc)
274 setEventCallback(new_nested_callback.
get());
276 else _eventCallback->removeNestedCallback(nc);
301 if (_cullCallback.valid()) _cullCallback->addNestedCallback(nc);
302 else setCullCallback(nc);
310 if (nc !=
NULL && _cullCallback.valid()) {
311 if (_cullCallback == nc)
315 setCullCallback(new_nested_callback.
get());
317 else _cullCallback->removeNestedCallback(nc);
337 inline bool isCullingActive()
const {
return _numChildrenWithCullingDisabled==0 && _cullingActive && getBound().valid(); }
427 if(!_boundingSphereComputed)
429 _boundingSphere = _initialBound;
430 if (_computeBoundCallback.valid())
431 _boundingSphere.
expandBy(_computeBoundCallback->computeBound(*
this));
433 _boundingSphere.expandBy(computeBound());
435 _boundingSphereComputed =
true;
437 return _boundingSphere;
Definition BoundingSphere:35
void expandBy(const vector_type &v)
Definition BoundingSphere:149
osg::Callback * getNestedCallback()
Definition Callback:89
void setNestedCallback(osg::Callback *cb)
Definition Callback:88
Definition NodeVisitor:82
virtual const osgTerrain::Terrain * asTerrain() const
Definition Node:159
void setEventCallback(const ref_ptr< T > &nc)
Definition Node:249
virtual void releaseGLObjects(osg::State *=0) const
void setCullCallback(Callback *nc)
Definition Node:288
void setUpdateCallback(const ref_ptr< T > &nc)
Definition Node:208
void setUpdateCallback(Callback *nc)
ref_ptr< Callback > _eventCallback
Definition Node:511
const Group * getParent(unsigned int i) const
Definition Node:186
std::string & getDescription(unsigned int i)
virtual const Geode * asGeode() const
Definition Node:151
bool _cullingActive
Definition Node:517
void addDescription(const std::string &desc)
unsigned int _numChildrenWithOccluderNodes
Definition Node:521
void setEventCallback(Callback *nc)
virtual void traverse(NodeVisitor &)
Definition Node:167
ref_ptr< ComputeBoundingSphereCallback > _computeBoundCallback
Definition Node:495
unsigned int getNumParents() const
Definition Node:192
bool containsOccluderNodes() const
DescriptionList & getDescriptions()
ref_ptr< Callback > _updateCallback
Definition Node:507
void setNumChildrenRequiringUpdateTraversal(unsigned int num)
NodeMask _nodeMask
Definition Node:524
void setNumChildrenWithOccluderNodes(unsigned int num)
virtual const char * libraryName() const
Definition Node:93
void removeEventCallback(Callback *nc)
Definition Node:268
bool isCullingActive() const
Definition Node:337
bool getCullingActive() const
Definition Node:330
unsigned int getNumDescriptions() const
virtual Geometry * asGeometry()
Definition Node:115
NodePathList getParentalNodePaths(osg::Node *haltTraversalAtNode=0) const
unsigned int getNumChildrenRequiringEventTraversal() const
Definition Node:284
virtual Group * asGroup()
Definition Node:122
ref_ptr< StateSet > _stateset
Definition Node:526
NodeMask getNodeMask() const
Definition Node:367
void setNumChildrenRequiringEventTraversal(unsigned int num)
std::vector< Group * > ParentList
Definition Node:170
void removeCullCallback(Callback *nc)
Definition Node:309
void addParent(osg::Group *parent)
virtual Geode * asGeode()
Definition Node:147
const osg::StateSet * getStateSet() const
Definition Node:385
osg::StateSet * getStateSet()
Definition Node:382
unsigned int getNumChildrenWithCullingDisabled() const
Definition Node:333
virtual Drawable * asDrawable()
Definition Node:108
virtual void resizeGLObjectBuffers(unsigned int)
virtual const Switch * asSwitch() const
Definition Node:143
void removeUpdateCallback(const ref_ptr< T > &nc)
Definition Node:239
void addEventCallback(const ref_ptr< T > &nc)
Definition Node:265
ref_ptr< Callback > _cullCallback
Definition Node:515
void setStateSet(const osg::ref_ptr< T > &stateset)
Definition Node:374
unsigned int getNumChildrenWithOccluderNodes() const
Definition Node:340
osg::StateSet * getOrCreateStateSet()
void setInitialBound(const osg::BoundingSphere &bsphere)
Definition Node:415
Group * getParent(unsigned int i)
Definition Node:179
void setCullingActive(bool active)
virtual const Group * asGroup() const
Definition Node:125
void setComputeBoundingSphereCallback(ComputeBoundingSphereCallback *callback)
Definition Node:459
virtual osgTerrain::Terrain * asTerrain()
Definition Node:155
std::vector< std::string > DescriptionList
Definition Node:389
void addEventCallback(Callback *nc)
Definition Node:258
Callback * getUpdateCallback()
Definition Node:211
virtual BoundingSphere computeBound() const
void addUpdateCallback(const ref_ptr< T > &nc)
Definition Node:224
virtual bool isSameKindAs(const Object *obj) const
Definition Node:90
const BoundingSphere & getInitialBound() const
Definition Node:418
virtual const char * className() const
Definition Node:96
virtual Transform * asTransform()
Definition Node:129
void setNodeMask(NodeMask nm)
Definition Node:365
Callback * getCullCallback()
Definition Node:293
unsigned int getNumChildrenRequiringUpdateTraversal() const
Definition Node:243
const Callback * getUpdateCallback() const
Definition Node:214
virtual const Transform * asTransform() const
Definition Node:133
unsigned int _numChildrenRequiringUpdateTraversal
Definition Node:508
const Callback * getCullCallback() const
Definition Node:296
void setCullCallback(const ref_ptr< T > &nc)
Definition Node:290
MatrixList getWorldMatrices(const osg::Node *haltTraversalAtNode=0) const
virtual const Node * asNode() const
Definition Node:104
virtual const Drawable * asDrawable() const
Definition Node:111
void addCullCallback(Callback *nc)
Definition Node:299
void addCullCallback(const ref_ptr< T > &nc)
Definition Node:306
BoundingSphere _initialBound
Definition Node:494
void removeUpdateCallback(Callback *nc)
Definition Node:227
void setDescriptions(const DescriptionList &descriptions)
virtual void setThreadSafeRefUnref(bool threadSafe)
ParentList getParents()
Definition Node:177
void removeEventCallback(const ref_ptr< T > &nc)
Definition Node:280
const std::string & getDescription(unsigned int i) const
void setNumChildrenWithCullingDisabled(unsigned int num)
virtual Object * cloneType() const
Definition Node:84
void setComputeBoundingSphereCallback(const ref_ptr< T > &callback)
Definition Node:461
const ParentList & getParents() const
Definition Node:173
unsigned int NodeMask
Definition Node:363
const DescriptionList & getDescriptions() const
virtual Node * asNode()
Definition Node:100
virtual Switch * asSwitch()
Definition Node:139
void removeCullCallback(const ref_ptr< T > &nc)
Definition Node:321
void setStateSet(osg::StateSet *stateset)
virtual Object * clone(const CopyOp ©op) const
Definition Node:87
virtual void accept(NodeVisitor &nv)
void addUpdateCallback(Callback *nc)
Definition Node:217
virtual const Geometry * asGeometry() const
Definition Node:118
void removeParent(osg::Group *parent)
virtual void ascend(NodeVisitor &nv)
Callback * getEventCallback()
Definition Node:252
bool _boundingSphereComputed
Definition Node:497
Node(const Node &, const CopyOp ©op=CopyOp::SHALLOW_COPY)
ParentList _parents
Definition Node:502
const ComputeBoundingSphereCallback * getComputeBoundingSphereCallback() const
Definition Node:467
const BoundingSphere & getBound() const
Definition Node:425
BoundingSphere _boundingSphere
Definition Node:496
ComputeBoundingSphereCallback * getComputeBoundingSphereCallback()
Definition Node:464
const Callback * getEventCallback() const
Definition Node:255
unsigned int _numChildrenRequiringEventTraversal
Definition Node:512
unsigned int _numChildrenWithCullingDisabled
Definition Node:518
T * get() const
Definition ref_ptr:117
author: Julien Valentin 2017 (mp3butcher@hotmail.com)
Definition AlphaFunc:19
std::vector< Matrix > MatrixList
Definition Node:53
std::vector< NodePath > NodePathList
Definition Node:50
std::vector< Node * > NodePath
Definition Node:47
#define NULL
Definition osg/Export:55
#define OSG_EXPORT
Definition osg/Export:39
ComputeBoundingSphereCallback()
Definition Node:448
META_Object(osg, ComputeBoundingSphereCallback)
ComputeBoundingSphereCallback(const ComputeBoundingSphereCallback &org, const CopyOp ©op)
Definition Node:450
virtual BoundingSphere computeBound(const osg::Node &) const
Definition Node:455