Changeset 1155
- Timestamp:
- 04/14/08 08:17:49 (1 month ago)
- Files:
-
- trunk/Source/System/FieldContainer/Base/OSGAttachmentContainer.cpp (modified) (4 diffs)
- trunk/Source/System/FieldContainer/Base/OSGFieldContainer.cpp (modified) (1 diff)
- trunk/Source/System/FieldContainer/Base/OSGFieldContainer.h (modified) (2 diffs)
- trunk/Source/System/FieldContainer/Base/OSGFieldContainerAttachment.cpp (modified) (1 diff)
- trunk/Source/System/FieldContainer/Base/OSGFieldContainerAttachment.h (modified) (4 diffs)
- trunk/Source/System/FieldContainer/Base/OSGFieldContainerAttachment.inl (modified) (1 diff)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildAccessHandler.inl (modified) (8 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerMField.h (modified) (2 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerMField.inl (modified) (3 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerMFieldBase.h (modified) (2 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerMFieldBase.inl (modified) (2 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSField.h (modified) (1 diff)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSField.inl (modified) (2 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSFieldBase.h (modified) (3 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSFieldBase.inl (modified) (3 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGParentPointerMField.h (modified) (3 diffs)
- trunk/Source/System/FieldContainer/Fields/PointerFields/OSGParentPointerMField.inl (modified) (5 diffs)
- trunk/Source/System/FieldContainer/Node/OSGNode.cpp (modified) (4 diffs)
- trunk/Source/System/FieldContainer/Node/OSGNode.h (modified) (2 diffs)
- trunk/Source/System/FieldContainer/Node/OSGNode.inl (modified) (1 diff)
- trunk/Source/System/FieldContainer/Node/OSGNodeCore.cpp (modified) (1 diff)
- trunk/Source/System/FieldContainer/Node/OSGNodeCore.h (modified) (2 diffs)
- trunk/Source/System/FieldContainer/Node/OSGNodeCore.inl (modified) (1 diff)
- trunk/Source/System/Image/WS/OSGImage.cpp (modified) (1 diff)
- trunk/Source/System/Image/WS/OSGImage.h (modified) (1 diff)
- trunk/Source/System/NodeCores/Drawables/Geometry/Base/WS/OSGGeometry.fcd (modified) (4 diffs)
- trunk/Source/System/NodeCores/Drawables/Particles/OSGParticles.fcd (modified) (4 diffs)
- trunk/Source/System/NodeCores/Groups/Misc/OSGMultiCore.fcd (modified) (1 diff)
- trunk/Source/System/State/Base/WS/OSGTextureObjChunk.fcd (modified) (1 diff)
- trunk/Source/System/State/SHL/OSGShaderParameterChunk.fcd (modified) (1 diff)
- trunk/Source/System/State/SHL/Parameter/OSGShaderParameter.cpp (modified) (1 diff)
- trunk/Source/System/State/SHL/Parameter/OSGShaderParameter.h (modified) (1 diff)
- trunk/Source/System/Window/Base/OSGViewport.h (modified) (1 diff)
- trunk/Source/System/Window/Base/OSGViewport.inl (modified) (1 diff)
- trunk/Source/System/Window/Base/OSGWindow.fcd (modified) (1 diff)
- trunk/Tools/fcd2code/Field.py (modified) (7 diffs)
- trunk/Tools/fcd2code/FieldContainer.py (modified) (2 diffs)
- trunk/Tools/fcd2code/TemplateFieldContainerBase_cpp.txt (modified) (4 diffs)
- trunk/Tools/fcd2code/TemplateFieldContainerBase_h.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Source/System/FieldContainer/Base/OSGAttachmentContainer.cpp
r1151 r1155 246 246 pAttachment->addReferenceX(); 247 247 248 pAttachment->addParent(this); 248 pAttachment->linkParent(this, 249 AttachmentsFieldId, 250 FieldContainerAttachment::ParentsFieldId); 249 251 250 252 Self::editSField(AttachmentsFieldMask); … … 254 256 if(fcI != _sfAttachments.getValue().end()) 255 257 { 256 (*fcI).second->subParent(this); 258 (*fcI).second->unlinkParent(this, 259 FieldContainerAttachment::ParentsFieldId); 257 260 258 261 (*fcI).second->subReferenceX(); … … 296 299 if(fcI != _sfAttachments.getValue().end()) 297 300 { 298 (*fcI).second->subParent(this); 301 (*fcI).second->unlinkParent(this, 302 FieldContainerAttachment::ParentsFieldId); 299 303 300 304 (*fcI).second->subReferenceX(); … … 355 359 while(fcI != fcE) 356 360 { 357 (*fcI).second->subParent(this); 361 (*fcI).second->unlinkParent(this, 362 FieldContainerAttachment::ParentsFieldId); 358 363 359 364 (*fcI).second->subReferenceX(); trunk/Source/System/FieldContainer/Base/OSGFieldContainer.cpp
r1106 r1155 118 118 } 119 119 120 void FieldContainer::subChildPointer(FieldContainerPtr pObj, 121 UInt16 usFieldPos) 122 { 123 OSG_ASSERT(false); 120 bool FieldContainer::linkParent(const FieldContainerPtr pParent, 121 const UInt16 childFieldId, 122 const UInt16 parentFieldId) 123 { 124 return false; 125 } 126 127 bool FieldContainer::unlinkParent(const FieldContainerPtr pParent, 128 const UInt16 parentFieldId) 129 { 130 return false; 131 } 132 133 bool FieldContainer::unlinkChild(const FieldContainerPtr pChild, 134 const UInt16 childFieldId) 135 { 136 return false; 124 137 } 125 138 trunk/Source/System/FieldContainer/Base/OSGFieldContainer.h
r1140 r1155 248 248 /*! \{ */ 249 249 250 OSG_SYSTEM_DLLMAPPING251 virtual void subChildPointer(FieldContainerPtr pObj,252 UInt16 usFieldPos);253 #ifndef OSG_DELETE_LATER254 250 /*! \} */ 255 251 /*---------------------------------------------------------------------*/ … … 258 254 259 255 OSG_SYSTEM_DLLMAPPING 260 virtual bool linkParent (FieldContainerPtrConst pParent, 261 UInt16 const childFieldId, 262 UInt16 const parentFieldId) 263 {return false;} 264 265 OSG_SYSTEM_DLLMAPPING 266 virtual bool unlinkParent(FieldContainerPtrConst pParent, 267 UInt16 const parentFieldId) 268 {return false;} 256 virtual bool linkParent (const FieldContainerPtr pParent, 257 const UInt16 childFieldId, 258 const UInt16 parentFieldId); 259 260 OSG_SYSTEM_DLLMAPPING 261 virtual bool unlinkParent(const FieldContainerPtr pParent, 262 const UInt16 parentFieldId); 269 263 270 264 OSG_SYSTEM_DLLMAPPING 271 virtual bool unlinkChild (FieldContainerPtrConst pChild, 272 UInt16 const childFieldId ) 273 {return false;} 265 virtual bool unlinkChild (const FieldContainerPtrConst pChild, 266 const UInt16 childFieldId); 274 267 275 #endif276 268 /*! \} */ 277 269 /*---------------------------------------------------------------------*/ trunk/Source/System/FieldContainer/Base/OSGFieldContainerAttachment.cpp
r1091 r1155 131 131 OSG_ABSTR_FIELD_CONTAINER_DEF(FieldContainerAttachment) 132 132 133 134 bool FieldContainerAttachment::linkParent ( 135 const FieldContainerPtr pParent, 136 const UInt16 childFieldId, 137 const UInt16 parentFieldId) 138 { 139 if(parentFieldId == ParentsFieldId) 140 { 141 FieldContainerPtr pTypedParent = 142 dynamic_cast<FieldContainerPtr>(pParent); 143 144 if(pTypedParent != NullFC) 145 { 146 editMField(ParentsFieldMask, _mfParents); 147 148 _mfParents.push_back(pParent, childFieldId); 149 150 return true; 151 } 152 153 return false; 154 } 155 156 return Inherited::linkParent(pParent, childFieldId, parentFieldId); 157 } 158 159 bool FieldContainerAttachment::unlinkParent( 160 const FieldContainerPtr pParent, 161 const UInt16 parentFieldId) 162 { 163 if(parentFieldId == ParentsFieldId) 164 { 165 FieldContainerPtr pTypedParent = 166 dynamic_cast<FieldContainerPtr>(pParent); 167 168 if(pTypedParent != NullFC) 169 { 170 MFParentFieldContainerPtr::iterator pIt = 171 _mfParents.find_nc(pParent); 172 173 if(pIt != _mfParents.end()) 174 { 175 editMField(ParentsFieldMask, _mfParents); 176 177 _mfParents.erase(pIt); 178 179 return true; 180 } 181 182 FWARNING(("FieldContainerAttachment::unlinkParent: " 183 "Child <-> Parent link inconsistent.\n")); 184 185 return false; 186 } 187 188 return false; 189 } 190 191 return Inherited::unlinkParent(pParent, parentFieldId); 192 } 193 194 133 195 /*-------------------------------------------------------------------------*/ 134 196 /* Assignment */ trunk/Source/System/FieldContainer/Base/OSGFieldContainerAttachment.h
r1092 r1155 49 49 OSG_BEGIN_NAMESPACE 50 50 51 class AttachmentContainer; 52 51 53 //! Brief 52 54 //! \ingroup baselib … … 116 118 /*! \name your_category */ 117 119 /*! \{ */ 118 119 void addParent( FieldContainerPtrConst parent,120 const UInt16 uiStoredInFieldId =121 InvalidParentEPos);122 123 void subParent(FieldContainerPtrConst parent );124 120 125 121 /*! \} */ … … 200 196 201 197 virtual ~FieldContainerAttachment(void); 198 199 /*! \} */ 200 /*---------------------------------------------------------------------*/ 201 /*! \name Sync */ 202 /*! \{ */ 203 204 virtual bool linkParent (const FieldContainerPtr pParent, 205 const UInt16 childFieldId, 206 const UInt16 parentFieldId); 207 208 virtual bool unlinkParent(const FieldContainerPtr pParent, 209 const UInt16 parentFieldId); 202 210 203 211 /*! \} */ … … 244 252 private: 245 253 254 friend class AttachmentContainer; 255 246 256 /*!\brief prohibit default function (move to 'public' if needed) */ 247 257 void operator =(const FieldContainerAttachment &source); trunk/Source/System/FieldContainer/Base/OSGFieldContainerAttachment.inl
r1091 r1155 92 92 93 93 inline 94 void FieldContainerAttachment::addParent(95 FieldContainerPtrConst parent,96 const UInt16 uiStoredInFieldId)97 {98 Inherited::editMField(ParentsFieldMask, _mfParents);99 100 _mfParents.push_back(parent, uiStoredInFieldId);101 // _mfParents.back().setParentFieldPos(uiStoredInFieldId);102 }103 104 inline105 void FieldContainerAttachment::subParent(FieldContainerPtrConst parent)106 {107 Int32 iParentIdx = _mfParents.findIndex(parent);108 109 if(iParentIdx != -1)110 {111 Inherited::editMField(ParentsFieldMask, _mfParents);112 113 #if 0114 MFParentFieldContainerPtr::iterator parentIt = _mfParents.begin();115 116 parentIt += iParentIdx;117 118 _mfParents.erase(parentIt);119 #endif120 _mfParents.erase(iParentIdx);121 122 }123 }124 125 inline126 94 FieldContainerPtr FieldContainerAttachment::getParent(UInt32 uiIdx) const 127 95 { trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildAccessHandler.inl
r1148 r1155 109 109 dcastSField(pSField)->getChildFieldId (), 110 110 pObj, 111 dcastSField(pSField)->getParentField Pos() );111 dcastSField(pSField)->getParentFieldId () ); 112 112 } 113 113 } … … 125 125 dcastMField(pMField)->getChildFieldId (), 126 126 pObj, 127 dcastMField(pMField)->getParentField Pos() );127 dcastMField(pMField)->getParentFieldId () ); 128 128 } 129 129 } … … 138 138 unlinkParent(dcastSField(pSField)->getEnclosingObject(), 139 139 pObj, 140 dcastSField(pSField)->getParentField Pos() );140 dcastSField(pSField)->getParentFieldId () ); 141 141 142 142 RefCountPolicyType::subRef(pObj/*, false*/); … … 153 153 unlinkParent(dcastMField(pMField)->getEnclosingObject(), 154 154 pObj, 155 dcastMField(pMField)->getParentField Pos() );155 dcastMField(pMField)->getParentFieldId () ); 156 156 157 157 RefCountPolicyType::subRef(pObj/*, false*/); … … 171 171 unlinkParent(dcastSField(pSField)->getEnclosingObject(), 172 172 pOldObj, 173 dcastSField(pSField)->getParentField Pos());173 dcastSField(pSField)->getParentFieldId ()); 174 174 175 175 RefCountPolicyType::subRef(pOldObj/*, false*/); … … 181 181 dcastSField(pSField)->getChildFieldId (), 182 182 pNewObj, 183 dcastSField(pSField)->getParentField Pos());183 dcastSField(pSField)->getParentFieldId ()); 184 184 } 185 185 } … … 197 197 unlinkParent(dcastMField(pMField)->getEnclosingObject(), 198 198 pOldObj, 199 dcastMField(pMField)->getParentField Pos() );199 dcastMField(pMField)->getParentFieldId() ); 200 200 201 201 RefCountPolicyType::subRef(pOldObj/*, false*/); … … 207 207 dcastMField(pMField)->getChildFieldId (), 208 208 pNewObj, 209 dcastMField(pMField)->getParentField Pos());209 dcastMField(pMField)->getParentFieldId ()); 210 210 } 211 211 } trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerMField.h
r1154 r1155 507 507 /*! \{ */ 508 508 509 ChildPointerMField(FieldContainerPtr pParent, 510 UInt16 usParentFieldPos); 509 ChildPointerMField(const FieldContainerPtr pParent, 510 UInt16 usChildFieldId, 511 UInt16 usParentFieldId); 511 512 512 513 … … 552 553 reference front_nc(void ); 553 554 reference back_nc (void ); 555 #endif 554 556 555 557 iterator find_nc (const_value value); 556 #endif557 558 558 559 /*! \} */ trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerMField.inl
r1154 r1155 712 712 RefCountPolicy, 713 713 NamespaceI >::ChildPointerMField( 714 FieldContainerPtr pParent, 715 UInt16 usParentFieldPos) : 716 Inherited(pParent, usParentFieldPos) 714 const FieldContainerPtr pParent, 715 UInt16 usChildFieldId, 716 UInt16 usParentFieldId) : 717 Inherited(pParent, usChildFieldId, usParentFieldId) 717 718 { 718 719 } … … 766 767 reference front_nc(void ); 767 768 reference back_nc (void ); 768 769 iterator find_nc (const_value value);770 769 #endif 770 771 template <class ObjectTypeT, typename RefCountPolicy, Int32 NamespaceI> inline 772 typename ChildPointerMField<ObjectTypeT, 773 RefCountPolicy, 774 NamespaceI >::iterator 775 ChildPointerMField<ObjectTypeT, 776 RefCountPolicy, 777 NamespaceI >::find_nc(const_value value) 778 { 779 return iterator(this->ptrStoreFind(value), this); 780 } 771 781 772 782 #ifndef OSG_CLEAN_FCFIELDS … … 1043 1053 { 1044 1054 this->ptrStoreAssign(first, last); 1055 } 1056 1057 1058 template <class ObjectTypeT, typename RefCountPolicy, Int32 NamespaceI> inline 1059 void ChildPointerMField<ObjectTypeT, 1060 RefCountPolicy, 1061 NamespaceI >::replace(UInt32 uiIdx, 1062 const_value value) 1063 { 1064 this->ptrStoreReplace(uiIdx, value); 1065 } 1066 1067 template <class ObjectTypeT, typename RefCountPolicy, Int32 NamespaceI> inline 1068 void ChildPointerMField<ObjectTypeT, 1069 RefCountPolicy, 1070 NamespaceI >::replace(iterator pos, 1071 const_value value) 1072 { 1073 this->ptrStoreReplace(pos.base(), value); 1045 1074 } 1046 1075 trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerMFieldBase.h
r1152 r1155 51 51 52 52 ChildPointerMFieldBase(const FieldContainerPtr pParent, 53 UInt16 usParentFieldPos); 53 UInt16 usChildFieldId, 54 UInt16 usParentFieldId); 54 55 55 56 /*! \} */ … … 71 72 void setChildFieldId (const UInt16 childFieldId ); 72 73 73 UInt16 getParentField Pos( void ) const;74 UInt16 getParentFieldId ( void ) const; 74 75 void setParentFieldId (const UInt16 parentFieldId ); 75 76 trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerMFieldBase.inl
r1152 r1155 16 16 NamespaceI >::ChildPointerMFieldBase( 17 17 const FieldContainerPtr pParent, 18 UInt16 usParentFieldPos) : 19 Inherited ( ), 20 _pEnclosingObj(pParent ), 21 _childFieldId (0xFFFF ), 22 _parentFieldId(usParentFieldPos) 18 UInt16 usChildFieldId, 19 UInt16 usParentFieldId) : 20 Inherited ( ), 21 _pEnclosingObj(pParent ), 22 _childFieldId (usChildFieldId ), 23 _parentFieldId(usParentFieldId) 23 24 { 24 25 } … … 70 71 template <typename AccessHandlerT, Int32 NamespaceI> inline 71 72 UInt16 ChildPointerMFieldBase<AccessHandlerT, 72 NamespaceI >::getParentField Pos(void) const73 NamespaceI >::getParentFieldId(void) const 73 74 { 74 75 return _parentFieldId; trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSField.h
r1148 r1155 118 118 119 119 ChildPointerSField(ParentT pParent, 120 UInt16 usParentFieldPos); 120 UInt16 usChildFieldId, 121 UInt16 usParentFieldId); 121 122 122 123 ChildPointerSField(const_value value, 123 124 ParentT pParent, 124 UInt16 usParentFieldPos); 125 UInt16 usChildFieldId, 126 UInt16 usParentFieldId); 125 127 126 128 /*! \} */ trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSField.inl
r1148 r1155 69 69 NamespaceI >::ChildPointerSField( 70 70 ParentT pParent, 71 UInt16 usParentFieldPos) : 71 UInt16 usChildFieldId, 72 UInt16 usParentFieldId) : 72 73 Inherited(pParent, 73 usParentFieldPos) 74 usChildFieldId, 75 usParentFieldId) 74 76 { 75 77 } … … 81 83 const_value value, 82 84 ParentT pParent, 83 UInt16 usParentFieldPos) : 85 UInt16 usChildFieldId, 86 UInt16 usParentFieldId) : 84 87 Inherited(value, 85 88 pParent, 86 usParentFieldPos) 89 usChildFieldId, 90 usParentFieldId) 87 91 { 88 92 } trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSFieldBase.h
r1152 r1155 50 50 51 51 ChildPointerSFieldBase(const FieldContainerPtr pParent, 52 UInt16 usParentFieldPos); 52 UInt16 usChildFieldId, 53 UInt16 usParentFieldId); 53 54 54 55 ChildPointerSFieldBase( const_value value, 55 56 const FieldContainerPtr pParent, 56 UInt16 usParentFieldPos); 57 UInt16 usChildFieldId, 58 UInt16 usParentFieldId); 57 59 58 60 /*! \} */ … … 74 76 void setChildFieldId (const UInt16 childFieldId ); 75 77 76 UInt16 getParentField Pos( void ) const;77 void setParentField Pos (const UInt16 usParentFieldPos);78 UInt16 getParentFieldId ( void ) const; 79 void setParentFieldId (const UInt16 usParentFieldId ); 78 80 79 81 /*! \} */ … … 84 86 FieldContainerPtr _pEnclosingObj; 85 87 UInt16 _childFieldId; 86 UInt16 _usParentField Pos;88 UInt16 _usParentFieldId; 87 89 88 90 /*! \} */ trunk/Source/System/FieldContainer/Fields/PointerFields/OSGChildPointerSFieldBase.inl
r1148 r1155 15 15 NamespaceI>::ChildPointerSFieldBase( 16 16 const FieldContainerPtr pParent, 17 UInt16 usParentFieldPos) : 18 Inherited ( ), 19 _pEnclosingObj (pParent ), 20 _childFieldId (0xFFFF ), 21 _usParentFieldPos(usParentFieldPos) 17 UInt16 usChildFieldId, 18 UInt16 usParentFieldId) : 19 Inherited ( ), 20 _pEnclosingObj (pParent ), 21 _childFieldId (usChildFieldId ), 22 _usParentFieldId(usParentFieldId) 22 23 { 23 24 } … … 28 29 const_value value, 29 30 const FieldContainerPtr pParent, 30 UInt16 usParentFieldPos) : 31 Inherited ( ), 32 _pEnclosingObj (pParent ), 33 _childFieldId (0xFFFF ), 34 _usParentFieldPos(usParentFieldPos) 31 UInt16 usChildFieldId, 32 UInt16 usParentFieldId) : 33 Inherited ( ), 34 _pEnclosingObj (pParent ), 35 _childFieldId (usChildFieldId ), 36 _usParentFieldId(usParentFieldId) 35 37 { 36 38 this->ptrStoreSet(value); … … 81 83 template <typename AccessHandlerT, Int32 NamespaceI> inline 82 84 UInt16 ChildPointerSFieldBase<AccessHandlerT, 83 NamespaceI >::getParentField Pos(void) const85 NamespaceI >::getParentFieldId(void) const 84 86 { 85 return _usParentField Pos;87 return _usParentFieldId; 86 88 } 87 89 88 90 template <typename AccessHandlerT, Int32 NamespaceI> inline 89 void ChildPointerSFieldBase<AccessHandlerT, NamespaceI>::setParentField Pos(90 const UInt16 usParentField Pos)91 void ChildPointerSFieldBase<AccessHandlerT, NamespaceI>::setParentFieldId( 92 const UInt16 usParentFieldId) 91 93 { 92 _usParentField Pos = usParentFieldPos;94 _usParentFieldId = usParentFieldId; 93 95 } 94 96 trunk/Source/System/FieldContainer/Fields/PointerFields/OSGParentPointerMField.h
r1152 r1155 199 199 template <class ST> 200 200 friend class ParentMFieldConstIterator; 201 202 template <class OT, typename RC, Int32 NI> 203 friend class ParentPointerMField; 201 204 202 205 /*========================== PUBLIC =================================*/ … … 346 349 347 350 typedef typename Inherited::PtrStoreItType PtrStoreItType; 351 typedef typename Inherited::PtrStoreConstItType PtrStoreConstItType; 348 352 349 353 typedef ParentMFieldConstIterator<Self > const_iterator; … … 471 475 iterator find (const_value value ); 472 476 #endif 477 iterator find_nc (const_value value ); 473 478 474 479 const_iterator find (const_value value ) const; trunk/Source/System/FieldContainer/Fields/PointerFields/OSGParentPointerMField.inl
r1152 r1155 241 241 } 242 242 243 template <class StorageTypeT> inline 244 const typename ParentMFieldConstIterator<StorageTypeT>::Inherited & 245 ParentMFieldConstIterator<StorageTypeT>::ptrBase(void) const 246 { 247 return *this; 248 } 249 250 template <class StorageTypeT> inline 251 const typename ParentMFieldConstIterator<StorageTypeT>::PosStorageIt & 252 ParentMFieldConstIterator<StorageTypeT>::idBase (void) const 253 { 254 return *this; 255 } 243 256 244 257 /*-------------------------------------------------------------------------*/ … … 449 462 } 450 463 464 template <class StorageTypeT> inline 465 const typename ParentMFieldIterator<StorageTypeT>::Inherited & 466 ParentMFieldIterator<StorageTypeT>::ptrBase(void) const 467 { 468 return *this; 469 } 470 471 template <class StorageTypeT> inline 472 const typename ParentMFieldIterator<StorageTypeT>::PosStorageIt & 473 ParentMFieldIterator<StorageTypeT>::idBase (void) const 474 { 475 return _posIt; 476 } 451 477 452 478 /*-------------------------------------------------------------------------*/ … … 793 819 NamespaceI >::find(const_value value) 794 820 { 795 return iterator(this->ptrStoreFind(value)); 821 IdStoreItType posIt = _vParentPos.begin(); 822 823 PtrStoreItType ptrIt = this->ptrStoreFind(value); 824 825 posIt += (ptrIt - this->_ptrStore.begin()); 826 827 return iterator(ptrIt, posIt); 796 828 } 797 829 #endif … … 800 832 typename ParentPointerMField<ObjectTypeT, 801 833 RefCountPolicy, 834 NamespaceI >::iterator 835 ParentPointerMField<ObjectTypeT, 836 RefCountPolicy, 837 NamespaceI >::find_nc(const_value value) 838 { 839 IdStoreItType posIt = _vParentPos.begin(); 840 841 PtrStoreItType ptrIt = this->ptrStoreFind(value); 842 843 posIt += (ptrIt - this->_ptrStore.begin()); 844 845 return iterator(ptrIt, posIt); 846 } 847 848 template <class ObjectTypeT, typename RefCountPolicy, Int32 NamespaceI> inline 849 typename ParentPointerMField<ObjectTypeT, 850 RefCountPolicy, 802 851 NamespaceI >::const_iterator 803 852 ParentPointerMField<ObjectTypeT, … … 805 854 NamespaceI >::find(const_value value) const 806 855 { 807 return const_iterator(this->ptrStoreFind(value)); 856 IdStoreConstItType posIt = _vParentPos.begin(); 857 858 PtrStoreConstItType ptrIt = this->ptrStoreFind(value); 859 860 posIt += (ptrIt - this->_ptrStore.begin()); 861 862 return const_iterator(ptrIt, posIt); 808 863 } 809 864 trunk/Source/System/FieldContainer/Node/OSGNode.cpp
r1113 r1155 490 490 #endif 491 491 492 void Node::subChildPointer(FieldContainerPtr pObj,493 UInt16 usFieldPos)494 {495 if(usFieldPos == ChildrenFieldId)496 {497 NodePtr pChild = dynamic_cast<NodePtr>(pObj);498 499 if(pChild != NullFC)500 subChild(pChild);501 }502 else if(usFieldPos == CoreFieldId)503 {504 if(_sfCore.getValue() == pObj)505 {506 editSField(CoreFieldMask);507 508 _sfCore.setValue(NullFC);509 }510 }
