- Timestamp:
- 10/24/07 19:30:30 (10 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/Carsten_PtrWork/Source/System/FieldContainer/Base/OSGParentPointer.h
r976 r988 65 65 typedef ObjectT Object; 66 66 typedef RootObjectT RootObject; 67 typedef typename WeakRefCountPtrBuilder< ObjectT,67 typedef typename WeakRefCountPtrBuilder<RootObject, 68 68 RootObject >::Ptr PointerType; 69 69 typedef ParentPointer<ObjectT, RootObjectT> Self; … … 96 96 RootObject > const &parentPtr ); 97 97 98 template <class OtherObjectT> 99 ParentPointer(ParentPointer<OtherObjectT, 100 RootObject> const &parentPtr, 101 detail::StaticCastTag ); 102 103 template <class OtherObjectT> 104 ParentPointer(ParentPointer<OtherObjectT, 105 RootObject> const &parentPtr, 106 detail::ConstCastTag ); 107 108 template <class OtherObjectT> 109 ParentPointer(ParentPointer<OtherObjectT, 110 RootObject> const &parentPtr, 111 detail::DynamicCastTag ); 112 98 113 template <class OtherObjectT, class OtherRefCountPolicyT> 99 114 explicit … … 116 131 /*! \{ */ 117 132 118 Self &operator=(Self const &other ); 119 Self &operator=(ObjectPtrConstArg objectPtr); 133 Self &operator=(Self const &other ); 134 135 Self &operator=(ObjectPtrConstArg objectPtr ); 120 136 121 137 template <class OtherObjectT> 122 138 Self &operator=( 123 ParentPointer<OtherObjectT, RootObject> const &parentPtr );124 139 ParentPointer<OtherObjectT, RootObject> const &parentPtr ); 140 125 141 template <class OtherObjectT, class OtherRefCountPolicy> 126 142 Self &operator=( … … 175 191 /*! \} */ 176 192 /*---------------------------------------------------------------------*/ 193 /*! \name Friends */ 194 /*! \{ */ 195 196 template <class OtherObjectT, class OtherRootObjectT> 197 friend class ParentPointer; 198 199 /*! \} */ 200 /*---------------------------------------------------------------------*/ 177 201 }; 178 202 179 203 OSG_END_NAMESPACE 180 204 205 namespace boost 206 { 207 208 template <class TargetObjectT, class SourceObjectT, class RootObjectT> 209 OSG::ParentPointer<TargetObjectT, RootObjectT> 210 static_pointer_cast(OSG::ParentPointer<SourceObjectT, 211 RootObjectT > const &source); 212 213 template <class TargetObjectT, class SourceObjectT, class RootObjectT> 214 OSG::ParentPointer<TargetObjectT, RootObjectT> 215 const_pointer_cast(OSG::ParentPointer<SourceObjectT, 216 RootObjectT > const &source); 217 218 template <class TargetObjectT, class SourceObjectT, class RootObjectT> 219 OSG::ParentPointer<TargetObjectT, RootObjectT> 220 dynamic_pointer_cast(OSG::ParentPointer<SourceObjectT, 221 RootObjectT > const &source); 222 223 } // namespace boost 224 225 #include "OSGParentPointer.inl" 226 181 227 #endif // _OSGPARENTPOINTER_H_
