- Timestamp:
- 10/24/07 19:30:30 (11 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/Carsten_PtrWork/Source/System/FieldContainer/Base/OSGParentPointer.inl
r976 r988 91 91 inline 92 92 ParentPointer<ObjectT, RootObjectT>::ParentPointer( 93 ObjectPtrConstArg pObject, 94 UInt16 const fieldId = 0xFFFF) 95 : _pointer (pContainer), 96 _parentFieldId(fieldId ) 93 ObjectPtrConstArg pObject, 94 UInt16 const fieldId ) 95 96 : _pointer (Self::castPtrUp(pObject)), 97 _parentFieldId(fieldId ) 97 98 { 98 99 } … … 103 104 ParentPointer<ObjectT, RootObjectT>::ParentPointer( 104 105 ParentPointer<OtherObjectT, RootObjectT> const &parentPtr) 106 105 107 : _pointer (Self::castPtrUp(parentPtr.get())), 106 108 _parentFieldId(parentPtr.getFieldId() ) 109 { 110 } 111 112 template <class ObjectT, class RootObjectT> 113 template <class OtherObjectT > 114 inline 115 ParentPointer<ObjectT, RootObjectT>::ParentPointer( 116 ParentPointer<OtherObjectT, RootObjectT> const &parentPtr, 117 detail::StaticCastTag) 118 : _pointer (parentPtr._pointer, detail::StaticCastTag()), 119 _parentFieldId(parentPtr.getFieldId() ) 120 { 121 } 122 123 template <class ObjectT, class RootObjectT> 124 template <class OtherObjectT > 125 inline 126 ParentPointer<ObjectT, RootObjectT>::ParentPointer( 127 ParentPointer<OtherObjectT, RootObjectT> const &parentPtr, 128 detail::ConstCastTag) 129 : _pointer (parentPtr._pointer, detail::ConstCastTag()), 130 _parentFieldId(parentPtr.getFieldId() ) 131 { 132 } 133 134 template <class ObjectT, class RootObjectT> 135 template <class OtherObjectT > 136 inline 137 ParentPointer<ObjectT, RootObjectT>::ParentPointer( 138 ParentPointer<OtherObjectT, RootObjectT> const &parentPtr, 139 detail::DynamicCastTag) 140 : _pointer (parentPtr._pointer, detail::DynamicCastTag()), 141 _parentFieldId(parentPtr.getFieldId() ) 107 142 { 108 143 } … … 115 150 OtherRefCountPolicyT, 116 151 RootObjectT > const &refPtr, 117 UInt16 const fieldId = 0xFFFF) 152 UInt16 const fieldId) 153 118 154 : _pointer (Self::castPtrUp(refPtr.get())), 119 155 _parentFieldId(fieldId ) … … 168 204 template <class ObjectT, class RootObjectT > 169 205 template <class OtherObjectT, class OtherRefCountPolicyT> 170 inline 206 inline typename ParentPointer<ObjectT, RootObjectT>::Self & 171 207 ParentPointer<ObjectT, RootObjectT>::operator=( 172 208 ReferenceCountPointer<OtherObjectT, … … 194 230 195 231 template <class ObjectT, class RootObjectT> 196 inline typename ParentPoin er<ObjectT, RootObjectT>::ObjectPtr232 inline typename ParentPointer<ObjectT, RootObjectT>::ObjectPtr 197 233 ParentPointer<ObjectT, RootObjectT>::operator->(void) const 198 234 { … … 201 237 202 238 template <class ObjectT, class RootObjectT> 203 inline typename ParentPoin er<ObjectT, RootObjectT>::Object &239 inline typename ParentPointer<ObjectT, RootObjectT>::Object & 204 240 ParentPointer<ObjectT, RootObjectT>::operator*(void) const 205 241 { … … 208 244 209 245 template <class ObjectT, class RootObjectT> 210 inline typename ParentPoin er<ObjectT, RootObjectT>::ObjectPtr246 inline typename ParentPointer<ObjectT, RootObjectT>::ObjectPtr 211 247 ParentPointer<ObjectT, RootObjectT>::get(void) const 212 248 { … … 245 281 246 282 OSG_END_NAMESPACE 283 284 namespace boost 285 { 286 287 template <class TargetObjectT, class SourceObjectT, class RootObjectT> 288 OSG::ParentPointer<TargetObjectT, RootObjectT> 289 static_pointer_cast(OSG::ParentPointer<SourceObjectT, 290 RootObjectT > const &source) 291 { 292 return OSG::ParentPointer<TargetObjectT, RootObjectT>( 293 source, OSG::detail::StaticCastTag()); 294 } 295 296 template <class TargetObjectT, class SourceObjectT, class RootObjectT> 297 OSG::ParentPointer<TargetObjectT, RootObjectT> 298 const_pointer_cast(OSG::ParentPointer<SourceObjectT, 299 RootObjectT > const &source) 300 { 301 return OSG::ParentPointer<TargetObjectT, RootObjectT>( 302 source, OSG::detail::ConstCastTag()); 303 } 304 305 template <class TargetObjectT, class SourceObjectT, class RootObjectT> 306 OSG::ParentPointer<TargetObjectT, RootObjectT> 307 dynamic_pointer_cast(OSG::ParentPointer<SourceObjectT, 308 RootObjectT > const &source) 309 { 310 return OSG::ParentPointer<TargetObjectT, RootObjectT>( 311 source, OSG::detail::DynamicCastTag()); 312 } 313 314 } // namespace boost
