OSG::CoredNodePtr< Core > Class Template Reference

#include <OSGCoredNodePtr.h>

Inheritance diagram for OSG::CoredNodePtr< Core >:

OSG::CoredNodePtrBase List of all members.

Public Member Functions

Constructors


 CoredNodePtr (void)
 CoredNodePtr (const CoredNodePtr< Core > &pCore)
 CoredNodePtr (const NodePtr &pNode)
 CoredNodePtr (const NodeCorePtr &pCore)
 CoredNodePtr (const typename Core::ObjPtr &pCore)
Destructor


virtual ~CoredNodePtr (void)
Access


void coreChanged (void)
Core::ObjPtr core (void) const
Core::ObjPtr & operator-> (void)
 operator NodePtr (void)
 operator typename Core::ObjPtr (void)
CoredNodePtr< Core > & operator= (const NodePtr &pNode)
CoredNodePtr< Core > & operator= (const typename Core::ObjPtr &pCore)
CoredNodePtr< Core > & operator= (const CoredNodePtr< Core > &pCNP)
Access


NodePtr node (void) const

Static Public Member Functions

Create


static CoredNodePtr< Core > create (void)

Protected Types

typedef CoredNodePtrBase Inherited
typedef Core::ObjPtr CorePtr

Protected Member Functions

Access


NodeCorePtr getCoreV (void) const
void setCore (const NodeCorePtr &pCore)
void setCore (const typename Core::ObjPtr &pCore)
void updateNode (void)
Access


void setNode (NodePtrConstArg pNode)

Private Attributes

Core::ObjPtr _pCore

Detailed Description

template<class Core>
class OSG::CoredNodePtr< Core >

Definition at line 109 of file OSGCoredNodePtr.h.


Member Typedef Documentation

template<class Core>
typedef CoredNodePtrBase OSG::CoredNodePtr< Core >::Inherited [protected]

Definition at line 171 of file OSGCoredNodePtr.h.

template<class Core>
typedef Core::ObjPtr OSG::CoredNodePtr< Core >::CorePtr [protected]

Definition at line 173 of file OSGCoredNodePtr.h.


Constructor & Destructor Documentation

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

Definition at line 83 of file OSGCoredNodePtr.inl.

00083                                      : 
00084      Inherited(NullFC), 
00085     _pCore    (NullFC)
00086 {
00087 }

template<class Core>
OSG::CoredNodePtr< Core >::CoredNodePtr ( const CoredNodePtr< Core > &  pCore  )  [inline]

Definition at line 118 of file OSGCoredNodePtr.inl.

References OSG::CoredNodePtr< Core >::_pCore, OSG::CoredNodePtrBase::node(), OSG::CoredNodePtr< Core >::setCore(), and OSG::CoredNodePtrBase::setNode().

00118                                                                 : 
00119      Inherited(      ),
00120     _pCore    (NullFC)
00121 {
00122     setCore(pCore._pCore  );
00123     setNode(pCore. node());
00124 }

template<class Core>
OSG::CoredNodePtr< Core >::CoredNodePtr ( const NodePtr &  pNode  )  [inline, explicit]

Definition at line 90 of file OSGCoredNodePtr.inl.

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

00090                                                      : 
00091      Inherited(pNode),
00092     _pCore    (NullFC)
00093 {
00094     setCore(dynamic_cast<CorePtr>(Inherited::node()->getCore()));
00095 }

template<class Core>
OSG::CoredNodePtr< Core >::CoredNodePtr ( const NodeCorePtr &  pCore  )  [inline, explicit]

Definition at line 98 of file OSGCoredNodePtr.inl.

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

00098                                                          : 
00099      Inherited(      ),
00100     _pCore    (NullFC)
00101 {
00102     setCore(dynamic_cast<CorePtr>(pCore));
00103 
00104     updateNode();
00105 }

template<class Core>
OSG::CoredNodePtr< Core >::CoredNodePtr ( const typename Core::ObjPtr &  pCore  )  [inline, explicit]

Definition at line 108 of file OSGCoredNodePtr.inl.

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

00108                                                                  : 
00109      Inherited(      ),
00110     _pCore    (NullFC)
00111 {
00112     setCore(pCore);
00113 
00114     updateNode();
00115 }

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

Definition at line 127 of file OSGCoredNodePtr.inl.

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

00128 {
00129     setCore(NodeCorePtr(NullFC));
00130     setNode(NullFC             );
00131 }


Member Function Documentation

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

Definition at line 134 of file OSGCoredNodePtr.inl.

00135 {
00136     return CoredNodePtr<Core>(Core::create());
00137 }

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

Definition at line 140 of file OSGCoredNodePtr.inl.

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

00141 {
00142     setCore(node()->getCore());
00143 }

template<class Core>
Core::ObjPtr OSG::CoredNodePtr< Core >::core ( void   )  const [inline]

Definition at line 146 of file OSGCoredNodePtr.inl.

References OSG::CoredNodePtr< Core >::_pCore, FFASSERT, and OSG::CoredNodePtrBase::node().

00147 {
00148 #ifdef OSG_DEBUG
00149     FFASSERT((node()->getCore() == _pCore), false, 
00150               ("CoredNodePtr::core: core changed!"););
00151 #endif
00152 
00153     return _pCore;
00154 }

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

Definition at line 157 of file OSGCoredNodePtr.inl.

References OSG::CoredNodePtr< Core >::_pCore, FFASSERT, and OSG::CoredNodePtrBase::node().

00158 {
00159 #ifdef OSG_DEBUG
00160     FFASSERT((node()->getCore() == _pCore), false, 
00161               ("CoredNodePtr::operator ->: core changed!"););
00162 #endif
00163 
00164     return _pCore;
00165 }

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

Definition at line 168 of file OSGCoredNodePtr.inl.

References OSG::CoredNodePtr< Core >::_pCore, FFASSERT, and OSG::CoredNodePtrBase::node().

00169 {
00170 #ifdef OSG_DEBUG
00171     FFASSERT((node()->getCore() == _pCore), false, 
00172               ("CoredNodePtr::operator NodePtr: core changed!"););
00173 #endif
00174 
00175     return node();
00176 }

template<class Core>
OSG::CoredNodePtr< Core >::operator typename Core::ObjPtr ( void   )  [inline]

Definition at line 179 of file OSGCoredNodePtr.inl.

References OSG::CoredNodePtr< Core >::_pCore, FFASSERT, and OSG::CoredNodePtrBase::node().

00180 {
00181 #ifdef OSG_DEBUG
00182     FFASSERT((node()->getCore() == _pCore), false, 
00183               ("CoredNodePtr::operator Core::ObjPtr: core changed!"););
00184 #endif
00185 
00186     return _pCore;
00187 }

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

Definition at line 192 of file OSGCoredNodePtr.inl.

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

00193 {
00194     setNode(pNode);
00195 
00196     if(_pNode != NullFC)
00197     {
00198         setCore(dynamic_cast<CorePtr>(pNode->getCore()));
00199     }
00200     else
00201     {
00202         setCore(NullFC);
00203     }
00204 
00205     return *this;
00206 }

template<class Core>
CoredNodePtr< Core > & OSG::CoredNodePtr< Core >::operator= ( const typename Core::ObjPtr &  pCore  )  [inline]

Definition at line 209 of file OSGCoredNodePtr.inl.

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

00211 {
00212     setCore(pCore);
00213 
00214     updateNode();
00215 
00216     return *this;
00217 }

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

Definition at line 220 of file OSGCoredNodePtr.inl.

References OSG::CoredNodePtr< Core >::_pCore, OSG::CoredNodePtrBase::node(), OSG::CoredNodePtr< Core >::setCore(), and OSG::CoredNodePtrBase::setNode().

00222 {
00223     setNode(pCNP.node());
00224     setCore(pCNP._pCore);
00225 
00226     return *this;
00227 }

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

Implements OSG::CoredNodePtrBase.

Definition at line 230 of file OSGCoredNodePtr.inl.

References OSG::CoredNodePtr< Core >::_pCore.

00231 {
00232     return _pCore;
00233 }

template<class Core>
void OSG::CoredNodePtr< Core >::setCore ( const NodeCorePtr &  pCore  )  [inline, protected]

template<class Core>
void OSG::CoredNodePtr< Core >::setCore ( const typename Core::ObjPtr &  pCore  )  [inline, protected]

Definition at line 242 of file OSGCoredNodePtr.inl.

References OSG::CoredNodePtr< Core >::_pCore, and OSG::setRefd().

00243 {
00244     if(_pCore == pCore)
00245         return;
00246 
00247     setRefd(_pCore, pCore);
00248 }

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

Definition at line 251 of file OSGCoredNodePtr.inl.

References OSG::CoredNodePtr< Core >::_pCore, OSG::CoredNodePtrBase::node(), NullFC, and OSG::CoredNodePtrBase::setNode().

Referenced by OSG::CoredNodePtr< Core >::CoredNodePtr(), and OSG::CoredNodePtr< Core >::operator=().

00252 {
00253     if(node() == NullFC)
00254     {
00255         setNode(Node::create());
00256     }
00257 
00258     node()->setCore(_pCore);
00259 }

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

void OSG::CoredNodePtrBase::setNode ( NodePtrConstArg  pNode  )  [inline, protected, inherited]


Member Data Documentation

template<class Core>
Core::ObjPtr OSG::CoredNodePtr< Core >::_pCore [private]


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