UGDK
|
00001 #ifndef PYRAMIDWORKS_COLLISION_COLLISIONLOGIC_H_ 00002 #define PYRAMIDWORKS_COLLISION_COLLISIONLOGIC_H_ 00003 00004 namespace pyramidworks { 00005 namespace collision { 00006 00007 #define COLLISION_DIRECT(DATA, NAME, ARG) class NAME : public pyramidworks::collision::CollisionLogic { \ 00008 protected: DATA data_; \ 00009 public: NAME ( DATA data) : data_(data) {} \ 00010 void Handle(void*); }; \ 00011 void NAME::Handle(void* ARG) 00012 00015 00017 class CollisionLogic { 00018 public: 00019 virtual ~CollisionLogic() {} 00020 00022 00023 virtual void Handle(void *data) = 0; 00024 00025 protected: 00026 CollisionLogic() {} 00027 }; 00028 00029 } // namespace collision 00030 } // namespace pyramidworks 00031 00032 #endif /* PYRAMIDWORKS_COLLISION_COLLISIONLOGIC_H_ */