- Timestamp:
- 04/02/08 14:18:07 (8 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/Carsten_PtrWork2/Source/Base/Field/OSGFieldTraits.inl
r1033 r1072 39 39 OSG_BEGIN_NAMESPACE 40 40 41 template <class DescT, 42 enum FieldType::Cardinality FieldCardE> inline 43 FieldDescription<DescT, 44 FieldCardE>::FieldDescription( 41 /*-------------------------------------------------------------------------*/ 42 /* Constructors */ 43 44 template <class DescTypeT, 45 enum FieldType::Cardinality FieldCardE, 46 enum FieldType::Class FieldClassE> 47 inline 48 FieldDescription<DescTypeT, 49 FieldCardE, 50 FieldClassE>::FieldDescription( 45 51 const FieldType &elementType, 46 52 const Char8 *szName, … … 63 69 fGetMethod ) 64 70 { 65 } 66 67 template <class DescT, 68 enum FieldType::Cardinality FieldCardE> inline 69 FieldDescription<DescT, 70 FieldCardE>::FieldDescription( 71 // nothing to do 72 } 73 74 template <class DescTypeT, 75 enum FieldType::Cardinality FieldCardE, 76 enum FieldType::Class FieldClassE> 77 inline 78 FieldDescription<DescTypeT, 79 FieldCardE, 80 FieldClassE>::FieldDescription( 71 81 const FieldType &elementType, 72 82 const Char8 *szName, … … 89 99 fIndexedGetMethod ) 90 100 { 91 } 92 93 template <class DescT, 94 enum FieldType::Cardinality FieldCardE> inline 95 FieldDescription<DescT, 96 FieldCardE>::FieldDescription( 101 // nothing to do 102 } 103 104 template <class DescTypeT, 105 enum FieldType::Cardinality FieldCardE, 106 enum FieldType::Class FieldClassE> 107 inline 108 FieldDescription<DescTypeT, 109 FieldCardE, 110 FieldClassE>::FieldDescription( 97 111 const FieldDescription &source) : 98 112 99 113 Inherited(source) 100 114 { 101 } 102 103 template <class DescT, 104 enum FieldType::Cardinality FieldCardE> inline 105 FieldDescription<DescT, 106 FieldCardE>::~FieldDescription(void) 107 { 108 } 109 110 template <class DescT, 111 enum FieldType::Cardinality FieldCardE> inline 112 typename FieldDescription<DescT, 113 FieldCardE>::HandledField const * 114 FieldDescription<DescT, 115 FieldCardE>::dcast_const(const Field *pField) const 116 { 117 return static_cast<const HandledField *>(pField); 118 } 119 120 template <class DescT, 121 enum FieldType::Cardinality FieldCardE> inline 122 typename FieldDescription<DescT, 123 FieldCardE>::HandledField * 124 FieldDescription<DescT, 125 FieldCardE>::dcast(Field *pField) const 126 { 127 return static_cast<HandledField *>(pField); 128 } 129 130 template <class DescT, 131 enum FieldType::Cardinality FieldCardE> inline 132 Field *FieldDescription<DescT, 133 FieldCardE>::createField(FieldContainer *) const 134 { 135 return new HandledField(); 136 } 137 138 template <class DescT, 139 enum FieldType::Cardinality FieldCardE> inline 140 void FieldDescription<DescT, 141 FieldCardE>::destroyField(Field *pField) const 142 { 143 HandledField *pDelField = dcast(pField); 115 // nothing to do 116 } 117 118 /*-------------------------------------------------------------------------*/ 119 /* Destructor */ 120 121 template <class DescTypeT, 122 enum FieldType::Cardinality FieldCardE, 123 enum FieldType::Class FieldClassE> 124 inline 125 FieldDescription<DescTypeT, 126 FieldCardE, 127 FieldClassE>::~FieldDescription(void) 128 { 129 // nothing to do 130 } 131 132 /*-------------------------------------------------------------------------*/ 133 /* Class specific */ 134 135 template <class DescTypeT, 136 enum FieldType::Cardinality FieldCardE, 137 enum FieldType::Class FieldClassE> 138 inline typename FieldDescription<DescTypeT, 139 FieldCardE, 140 FieldClassE>::HandledFieldType const * 141 FieldDescription<DescTypeT, 142 FieldCardE, 143 FieldClassE>::dcast_const(const Field *pField) const 144 { 145 return static_cast<const HandledFieldType *>(pField); 146 } 147 148 template <class DescTypeT, 149 enum FieldType::Cardinality FieldCardE, 150 enum FieldType::Class FieldClassE> 151 inline typename FieldDescription<DescTypeT, 152 FieldCardE, 153 FieldClassE>::HandledFieldType * 154 FieldDescription<DescTypeT, 155 FieldCardE, 156 FieldClassE>::dcast(Field *pField) const 157 { 158 return static_cast<HandledFieldType *>(pField); 159 } 160 161 template <class DescTypeT, 162 enum FieldType::Cardinality FieldCardE, 163 enum FieldType::Class FieldClassE> 164 inline Field * 165 FieldDescription<DescTypeT, 166 FieldCardE, 167 FieldClassE>::createField(FieldContainerPtr) const 168 { 169 return new HandledFieldType(); 170 } 171 172 template <class DescTypeT, 173 enum FieldType::Cardinality FieldCardE, 174 enum FieldType::Class FieldClassE> 175 inline void 176 FieldDescription<DescTypeT, 177 FieldCardE, 178 FieldClassE>::destroyField(Field *pField) const 179 { 180 HandledFieldType *pDelField = dcast(pField); 144 181 145 182 delete pDelField; 146 183 } 147 184 148 template <class DescT, 149 enum FieldType::Cardinality FieldCardE> inline 150 FieldDescriptionBase *FieldDescription<DescT, 151 FieldCardE>::clone(void) const 185 template <class DescTypeT, 186 enum FieldType::Cardinality FieldCardE, 187 enum FieldType::Class FieldClassE> 188 inline FieldDescriptionBase * 189 FieldDescription<DescTypeT, 190 FieldCardE, 191 FieldClassE>::clone(void) const 152 192 { 153 193 return new Self(*this); 154 194 } 155 195 156 template <class DescT, 157 enum FieldType::Cardinality FieldCardE> 196 template <class DescTypeT, 197 enum FieldType::Cardinality FieldCardE, 198 enum FieldType::Class FieldClassE> 158 199 inline GetFieldHandlePtr 159 FieldDescription<DescT, 160 FieldCardE>::createGetHandler(Field const *pField) const 161 { 162 HandledField const *pTypedField = dcast_const(pField); 200 FieldDescription<DescTypeT, 201 FieldCardE, 202 FieldClassE>::createGetHandler(Field const *pField) const 203 { 204 HandledFieldType const *pTypedField = dcast_const(pField); 163 205 164 206 GetHandlePtr retVal(new GetHandle(pTypedField, this)); … … 167 209 } 168 210 169 template <class DescT, 170 enum FieldType::Cardinality FieldCardE> inline 171 EditFieldHandlePtr 172 FieldDescription<DescT, 173 FieldCardE>::createEditHandler(Field *pField) const 174 { 175 HandledField *pTypedField = dcast(pField); 211 template <class DescTypeT, 212 enum FieldType::Cardinality FieldCardE, 213 enum FieldType::Class FieldClassE> 214 inline EditFieldHandlePtr 215 FieldDescription<DescTypeT, 216 FieldCardE, 217 FieldClassE>::createEditHandler(Field *pField) const 218 { 219 HandledFieldType *pTypedField = dcast(pField); 176 220 177 221 EditHandlePtr retVal(new EditHandle(pTypedField, this)); … … 180 224 } 181 225 182 template <class DescT, 183 enum FieldType::Cardinality FieldCardE> 226 template <class DescTypeT, 227 enum FieldType::Cardinality FieldCardE, 228 enum FieldType::Class FieldClassE> 184 229 inline GetFieldHandlePtr 185 FieldDescription<DescT, 186 FieldCardE>::createDynamicGetHandler(Field const *pField) const 187 { 188 HandledField const *pTypedField = dcast_const(pField); 230 FieldDescription<DescTypeT, 231 FieldCardE, 232 FieldClassE>::createDynamicGetHandler( 233 Field const *pField) const 234 { 235 HandledFieldType const *pTypedField = dcast_const(pField); 189 236 190 237 GetHandlePtr retVal(new DynamicGetHandle(pTypedField, this)); … … 193 240 } 194 241 195 template <class DescT, 196 enum FieldType::Cardinality FieldCardE> inline 197 EditFieldHandlePtr 198 FieldDescription<DescT, 199 FieldCardE>::createDynamicEditHandler(Field *pField) const 200 { 201 HandledField *pTypedField = dcast(pField); 242 template <class DescTypeT, 243 enum FieldType::Cardinality FieldCardE, 244 enum FieldType::Class FieldClassE> 245 inline EditFieldHandlePtr 246 FieldDescription<DescTypeT, 247 FieldCardE, 248 FieldClassE>::createDynamicEditHandler(Field *pField) const 249 { 250 HandledFieldType *pTypedField = dcast(pField); 202 251 203 252 EditHandlePtr retVal(new DynamicEditHandle(pTypedField, this)); … … 206 255 } 207 256 208 template <class DescT, 209 enum FieldType::Cardinality FieldCardE> inline 210 void FieldDescription<DescT, 211 FieldCardE>::beginEdit(Field *pField, 257 template <class DescTypeT, 258 enum FieldType::Cardinality FieldCardE, 259 enum FieldType::Class FieldClassE> 260 inline void 261 FieldDescription<DescTypeT, 262 FieldCardE, 263 FieldClassE>::beginEdit(Field *pField, 212 264 UInt32 uiAspect, 213 265 AspectOffsetStore &oOffsets) 214 266 { 215 HandledField *pTypedField = dcast(pField);267 HandledFieldType *pTypedField = dcast(pField); 216 268 217 269 FieldFunctions::beginEdit(pTypedField, uiAspect, oOffsets); 218 270 } 219 271 220 template <class DescT, 221 enum FieldType::Cardinality FieldCardE> inline 222 bool FieldDescription<DescT, 223 FieldCardE>::isShared(Field *pField) 224 { 225 HandledField *pTypedField = dcast(pField); 272 template <class DescTypeT, 273 enum FieldType::Cardinality FieldCardE, 274 enum FieldType::Class FieldClassE> 275 inline bool 276 FieldDescription<DescTypeT, 277 FieldCardE, 278 FieldClassE>::isShared(Field *pField) 279 { 280 HandledFieldType *pTypedField = dcast(pField); 226 281 227 282 return FieldFunctions::isShared(pTypedField);
