- Timestamp:
- Aug 19, 2010, 2:11:28 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/consolecommands3/src/libraries/core/Functor.h
r7180 r7185 38 38 #include "util/Debug.h" 39 39 #include "util/MultiType.h" 40 #include "BaseObject.h"41 40 42 41 namespace orxonox … … 116 115 virtual void evaluateParam(unsigned int index, MultiType& param) const = 0; 117 116 118 virtual void setBaseObject(BaseObject* object) {}119 virtual void setBaseObject(const BaseObject* object) {}120 virtual BaseObject* getBaseObject() const { return 0; }121 122 117 virtual void setRawObjectPointer(void* object) {} 123 118 virtual void* getRawObjectPointer() const { return 0; } … … 183 178 } 184 179 185 void setBaseObject(BaseObject* object)186 {187 this->object_ = dynamic_cast<T*>(object);188 this->constObject_ = 0;189 }190 191 void setBaseObject(const BaseObject* object)192 {193 this->object_ = 0;194 this->constObject_ = dynamic_cast<const T*>(object);195 }196 197 BaseObject* getBaseObject() const198 {199 if (this->object_)200 return upcast<BaseObject*>(this->object_);201 else202 return const_cast<BaseObject*>(upcast<const BaseObject*>(this->constObject_));203 }204 205 180 void setRawObjectPointer(void* object) 206 181 { … … 237 212 238 213 239 template < int r,class R, class P1, class P2, class P3, class P4, class P5>214 template <class R, class P1, class P2, class P3, class P4, class P5> 240 215 struct FunctorHeaderIdentifier {}; 241 216 … … 354 329 355 330 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES(returnvalue, numparams) FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES##numparams(returnvalue) 356 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES0(returnvalue) < returnvalue,FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE(returnvalue), void, void, void, void, void>357 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES1(returnvalue) < returnvalue,FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE(returnvalue), P1, void, void, void, void>358 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES2(returnvalue) < returnvalue,FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE(returnvalue), P1, P2, void, void, void>359 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES3(returnvalue) < returnvalue,FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE(returnvalue), P1, P2, P3, void, void>360 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES4(returnvalue) < returnvalue,FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE(returnvalue), P1, P2, P3, P4, void>361 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES5(returnvalue) < returnvalue,FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE(returnvalue), P1, P2, P3, P4, P5>331 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES0(returnvalue) <FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE(returnvalue), void, void, void, void, void> 332 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES1(returnvalue) <FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE(returnvalue), P1, void, void, void, void> 333 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES2(returnvalue) <FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE(returnvalue), P1, P2, void, void, void> 334 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES3(returnvalue) <FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE(returnvalue), P1, P2, P3, void, void> 335 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES4(returnvalue) <FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE(returnvalue), P1, P2, P3, P4, void> 336 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES5(returnvalue) <FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE(returnvalue), P1, P2, P3, P4, P5> 362 337 363 338 #define FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE(returnvalue) FUNCTOR_HEADER_IDENTIFIER_TEMPLATE_CLASSES_RETURNVALUE##returnvalue
Note: See TracChangeset
for help on using the changeset viewer.