osg::CoredNodePtr< Core > Class Template Reference
[Field Container]

#include <OSGCoredNodePtr.h>

Inheritance diagram for osg::CoredNodePtr< Core >:

osg::CoredNodePtrBase

List of all members.

Constructors



 CoredNodePtr (void)
 CoredNodePtr (const NodePtr &node)
 CoredNodePtr (const NodeCorePtr &core)
 CoredNodePtr (const typename Core::Ptr &core)
 CoredNodePtr (const CoredNodePtr< Core > &ptr)
static CoredNodePtr< Core > create (void)

Public Member Functions

Destructor


virtual ~CoredNodePtr ()
Access


void coreChanged (void)
Core::Ptr core (void) const
Core::Ptr & operator-> (void)
 operator NodePtr ()
 operator typename Core::Ptr ()
CoredNodePtr< Core > & operator= (const NodePtr &node)
CoredNodePtr< Core > & operator= (const typename Core::Ptr &core)
CoredNodePtr< Core > & operator= (const CoredNodePtr< Core > &cnp)
CoredNodePtr< Core > & operator= (const NullFieldContainerPtr &)
Access


NodePtr node (void) const

Protected Member Functions

Access


NodeCorePtr getCoreV (void) const
void setCore (const NodeCorePtr &core)
void setCore (const typename Core::Ptr &core)
void setCore (const NullFieldContainerPtr &)
void updateNode (void)
Access


void setNode (const NodePtr &node)
void setNode (const NullFieldContainerPtr &)

Private Attributes

Core::Ptr _core


Detailed Description

template<class Core>
class osg::CoredNodePtr< Core >

Definition at line 115 of file OSGCoredNodePtr.h.


Constructor & Destructor Documentation

template<class Core>
osg::CoredNodePtr< Core >::CoredNodePtr ( void   )  [inline]

Definition at line 98 of file OSGCoredNodePtr.inl.

00098                                      : 
00099     CoredNodePtrBase(NullFC), _core(NullFC)
00100 {}

template<class Core>
osg::CoredNodePtr< Core >::CoredNodePtr ( const NodePtr node  )  [inline, explicit]

Definition at line 103 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtrBase::node(), and osg::CoredNodePtr< Core >::setCore().

00103                                                     : 
00104     CoredNodePtrBase(node)
00105 {
00106     setCore(Core::Ptr::dcast(CoredNodePtrBase::node()->getCore()));
00107 }

template<class Core>
osg::CoredNodePtr< Core >::CoredNodePtr ( const NodeCorePtr core  )  [inline, explicit]

Definition at line 110 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtr< Core >::setCore(), and osg::CoredNodePtr< Core >::updateNode().

00110                                                         : 
00111     CoredNodePtrBase()
00112 {
00113     setCore(Core::Ptr::dcast(core));
00114     updateNode();
00115 }

template<class Core>
osg::CoredNodePtr< Core >::CoredNodePtr ( const typename Core::Ptr &  core  )  [inline, explicit]

Definition at line 118 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtr< Core >::setCore(), and osg::CoredNodePtr< Core >::updateNode().

00118                                                              : 
00119     CoredNodePtrBase()
00120 {
00121     setCore(core);
00122     updateNode();
00123 }

template<class Core>
osg::CoredNodePtr< Core >::CoredNodePtr ( const CoredNodePtr< Core > &  ptr  )  [inline]

Definition at line 126 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtr< Core >::_core, osg::CoredNodePtrBase::node(), osg::CoredNodePtr< Core >::setCore(), and osg::CoredNodePtrBase::setNode().

00126                                                               : 
00127     CoredNodePtrBase()
00128 {
00129     setCore(ptr._core);
00130     setNode(ptr.node());
00131 }

template<class Core>
osg::CoredNodePtr< Core >::~CoredNodePtr (  )  [inline, virtual]

Definition at line 134 of file OSGCoredNodePtr.inl.

References osg::NullFC, osg::CoredNodePtr< Core >::setCore(), and osg::CoredNodePtrBase::setNode().

00135 {
00136     setCore(NullFC);
00137     setNode(NullFC);
00138 }


Member Function Documentation

template<class Core>
CoredNodePtr< Core > osg::CoredNodePtr< Core >::create ( void   )  [inline, static]

Definition at line 141 of file OSGCoredNodePtr.inl.

00142 {
00143     return CoredNodePtr<Core>(Core::create());
00144 }

template<class Core>
void osg::CoredNodePtr< Core >::coreChanged ( void   )  [inline]

Definition at line 147 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtrBase::node(), and osg::CoredNodePtr< Core >::setCore().

00148 {
00149     setCore(node()->getCore());
00150 }

template<class Core>
Core::Ptr osg::CoredNodePtr< Core >::core ( void   )  const [inline]

Definition at line 153 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtr< Core >::_core, FFASSERT, and osg::CoredNodePtrBase::node().

Referenced by osg::beginEditCP(), osg::endEditCP(), and osg::operator<<().

00154 {
00155 #ifdef OSG_DEBUG
00156     FFASSERT((node()->getCore() == _core), false, 
00157               ("CoredNodePtr::core: core changed!"););
00158 #endif
00159     return _core;
00160 }

template<class Core>
Core::Ptr & osg::CoredNodePtr< Core >::operator-> ( void   )  [inline]

Definition at line 163 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtr< Core >::_core, FFASSERT, and osg::CoredNodePtrBase::node().

00164 {
00165 #ifdef OSG_DEBUG
00166     FFASSERT((node()->getCore() == _core), false, 
00167               ("CoredNodePtr::operator ->: core changed!"););
00168 #endif
00169     return _core;
00170 }

template<class Core>
osg::CoredNodePtr< Core >::operator NodePtr (  )  [inline]

Definition at line 173 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtr< Core >::_core, FFASSERT, and osg::CoredNodePtrBase::node().

00174 {
00175 #ifdef OSG_DEBUG
00176     FFASSERT((node()->getCore() == _core), false, 
00177               ("CoredNodePtr::operator NodePtr: core changed!"););
00178 #endif
00179     return node();
00180 }

template<class Core>
osg::CoredNodePtr< Core >::operator typename Core::Ptr (  )  [inline]

Definition at line 183 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtr< Core >::_core, FFASSERT, and osg::CoredNodePtrBase::node().

00184 {
00185 #ifdef OSG_DEBUG
00186     FFASSERT((node()->getCore() == _core), false, 
00187               ("CoredNodePtr::operator Core::Ptr: core changed!"););
00188 #endif
00189     return _core;
00190 }

template<class Core>
CoredNodePtr< Core > & osg::CoredNodePtr< Core >::operator= ( const NodePtr node  )  [inline]

Definition at line 195 of file OSGCoredNodePtr.inl.

References osg::NodePtr::getCore(), osg::CoredNodePtr< Core >::setCore(), and osg::CoredNodePtrBase::setNode().

00196 {
00197     setNode(node);
00198     setCore(Core::Ptr::dcast(node->getCore()));
00199     return *this;
00200 }

template<class Core>
CoredNodePtr< Core > & osg::CoredNodePtr< Core >::operator= ( const typename Core::Ptr &  core  )  [inline]

Definition at line 203 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtr< Core >::setCore(), and osg::CoredNodePtr< Core >::updateNode().

00204 {
00205     setCore(core);
00206     updateNode();
00207 
00208     return *this;
00209 }

template<class Core>
CoredNodePtr< Core > & osg::CoredNodePtr< Core >::operator= ( const CoredNodePtr< Core > &  cnp  )  [inline]

Definition at line 212 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtr< Core >::_core, osg::CoredNodePtrBase::node(), osg::CoredNodePtr< Core >::setCore(), and osg::CoredNodePtrBase::setNode().

00213 {
00214     setNode(cnp.node());
00215     setCore(cnp._core);
00216     return *this;
00217 }

template<class Core>
CoredNodePtr< Core > & osg::CoredNodePtr< Core >::operator= ( const NullFieldContainerPtr  )  [inline]

Definition at line 220 of file OSGCoredNodePtr.inl.

References osg::NullFC, osg::CoredNodePtr< Core >::setCore(), and osg::CoredNodePtrBase::setNode().

00221 {
00222     setNode(NullFC);
00223     setCore(NullFC);
00224     return *this;
00225 }

template<class Core>
NodeCorePtr osg::CoredNodePtr< Core >::getCoreV ( void   )  const [inline, protected, virtual]

Implements osg::CoredNodePtrBase.

Definition at line 228 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtr< Core >::_core.

00229 {
00230     return _core;
00231 }

template<class Core>
void osg::CoredNodePtr< Core >::setCore ( const NodeCorePtr core  )  [inline, protected]

template<class Core>
void osg::CoredNodePtr< Core >::setCore ( const typename Core::Ptr &  core  )  [inline, protected]

Definition at line 240 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtr< Core >::_core, osg::addRefCP(), osg::NullFC, and osg::subRefCP().

00241 {
00242     if(_core == core)
00243         return;
00244 
00245     if(_core != NullFC)
00246         subRefCP(_core);
00247 
00248     _core = core;
00249 
00250     if(_core != NullFC)
00251         addRefCP(_core);
00252 }

template<class Core>
void osg::CoredNodePtr< Core >::setCore ( const NullFieldContainerPtr  )  [inline, protected]

Definition at line 255 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtr< Core >::_core, osg::NullFC, and osg::subRefCP().

00256 {
00257     if(_core != NullFC)
00258         subRefCP(_core);
00259 
00260     _core = NullFC;
00261 }

template<class Core>
void osg::CoredNodePtr< Core >::updateNode ( void   )  [inline, protected]

NodePtr osg::CoredNodePtrBase::node ( void   )  const [inline, inherited]

void osg::CoredNodePtrBase::setNode ( const NodePtr node  )  [inline, protected, inherited]

void osg::CoredNodePtrBase::setNode ( const NullFieldContainerPtr  )  [inline, protected, inherited]

Definition at line 87 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtrBase::_node, osg::NullFC, and osg::subRefCP().

00088 {
00089     if(_node != NullFC)
00090         subRefCP(_node);
00091 
00092     _node = NullFC;
00093 }


Member Data Documentation

template<class Core>
Core::Ptr osg::CoredNodePtr< Core >::_core [private]


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

Generated on Mon Mar 17 12:04:41 2008 for OpenSG by  doxygen 1.5.5