Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

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]
 

Definition at line 234 of file OSGCoredNodePtr.inl.

Referenced by osg::CoredNodePtr< Core >::coreChanged(), osg::CoredNodePtr< Core >::CoredNodePtr(), osg::CoredNodePtr< Core >::operator=(), and osg::CoredNodePtr< Core >::~CoredNodePtr().

00235 {
00236     setCore(Core::Ptr::dcast(core));
00237 }

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]
 

Definition at line 264 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtr< Core >::_core, osg::beginEditCP(), osg::Node::CoreFieldMask, osg::Node::create(), osg::endEditCP(), osg::CoredNodePtrBase::node(), osg::NullFC, and osg::CoredNodePtrBase::setNode().

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

00265 {
00266     if(node() == NullFC)
00267     {
00268         setNode(Node::create());
00269     }
00270 
00271     beginEditCP(node(), Node::CoreFieldMask);
00272     node()->setCore(_core);
00273     endEditCP(node(), Node::CoreFieldMask); 
00274 }

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

Definition at line 66 of file OSGCoredNodePtr.inl.

References osg::CoredNodePtrBase::_node.

Referenced by osg::beginEditCP(), osg::CoredNodePtr< Core >::core(), osg::CoredNodePtr< Core >::coreChanged(), osg::CoredNodePtr< Core >::CoredNodePtr(), osg::endEditCP(), osg::CoredNodePtr< Core >::operator NodePtr(), osg::CoredNodePtr< Core >::operator typename Core::Ptr(), osg::CoredNodePtr< Core >::operator->(), osg::operator<<(), osg::CoredNodePtr< Core >::operator=(), and osg::CoredNodePtr< Core >::updateNode().

00067 { 
00068     return _node; 
00069 }

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

Definition at line 72 of file OSGCoredNodePtr.inl.

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

Referenced by osg::CoredNodePtr< Core >::CoredNodePtr(), osg::CoredNodePtrBase::CoredNodePtrBase(), osg::CoredNodePtr< Core >::operator=(), osg::CoredNodePtr< Core >::updateNode(), osg::CoredNodePtr< Core >::~CoredNodePtr(), and osg::CoredNodePtrBase::~CoredNodePtrBase().

00073 {
00074     if(_node == node)
00075         return;
00076 
00077     if(_node != NullFC)
00078         subRefCP(_node);
00079 
00080     _node = node;
00081 
00082     if(_node != NullFC)
00083         addRefCP(_node);
00084 }

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]
 

Definition at line 197 of file OSGCoredNodePtr.h.

Referenced by osg::CoredNodePtr< Core >::core(), osg::CoredNodePtr< Core >::CoredNodePtr(), osg::CoredNodePtr< Core >::getCoreV(), osg::CoredNodePtr< Core >::operator NodePtr(), osg::CoredNodePtr< Core >::operator typename Core::Ptr(), osg::CoredNodePtr< Core >::operator->(), osg::CoredNodePtr< Core >::operator=(), osg::CoredNodePtr< Core >::setCore(), and osg::CoredNodePtr< Core >::updateNode().


The documentation for this class was generated from the following files:
Generated on Thu Aug 25 04:13:32 2005 for OpenSG by  doxygen 1.4.3