Changeset 8190 in orxonox.OLD for trunk/src/lib/collision_reaction/collision_handle.h
- Timestamp:
- Jun 7, 2006, 3:00:01 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/collision_reaction/collision_handle.h
r7927 r8190 11 11 12 12 #include <vector> 13 #include <list> 13 14 14 15 15 16 class Collision; 16 17 class WorldEntity; 18 class CollisionReaction; 17 19 18 // struct CRType;19 20 20 21 21 22 //! A class for defining collision reactions and storing events 22 class CollisionHandle : public BaseObject { 23 class CollisionHandle : public BaseObject 24 { 23 25 24 public: 25 CollisionHandle(WorldEntity* owner, CREngine::CRType type); 26 virtual ~CollisionHandle(); 26 public: 27 CollisionHandle(WorldEntity* owner, CREngine::CRType type); 28 virtual ~CollisionHandle(); 29 30 void reset(); 31 32 void addTarget(long target); 33 Collision* registerCollision(WorldEntity* entityA, WorldEntity* entityB); 34 void registerSharedCollision(Collision* collision); 35 void registerCollisionEvent(CollisionEvent* collisionEvent); 36 37 /** @returns true if regiestered some new collision events in this tick frame */ 38 inline bool isCollided() const { return this->bCollided; } 39 /** @returns true if this collision handle has already been dispatched */ 40 inline bool isDispatched() const { return this->bDispatched; } 41 /** @returns true if this handle should be pulled also if there are no collisions */ 42 inline bool isContinuousPoll() const { return this->bContinuousPoll; } 43 44 void handleCollisions(); 27 45 28 46 29 void addTarget(); 30 31 void registerCollision(Collision* collision); 32 33 void handleCollisions(); 47 private: 48 void flushCollisions(); 49 bool filterCollisionEvent(CollisionEvent* collisionEvent); 50 bool filterCollision(Collision* collision); 34 51 35 52 36 private:37 WorldEntity* owner; //!< the worldenity this reaction will be applied on38 CREngine::CRType type; //!< the reaction type39 53 40 bool bDispatched; //!< true if this handle has already been dispatched 41 bool bStopOnFirstCollision; //!< true if the cd of this object should be terminated after one match 54 private: 55 WorldEntity* owner; //!< the worldenity this reaction will be applied on 56 CREngine::CRType type; //!< the reaction type 42 57 43 std::vector<Collision*> collisionList; //!< a list full of collisions 44 std::vector<long> targetList; //!< a list of target classes for filtering 58 bool bContinuousPoll; //!< if this is true 59 bool bDispatched; //!< true if this handle has already been dispatched 60 bool bStopOnFirstCollision; //!< true if the cd of this object should be terminated after one match 61 bool bCollided; //!< true if the CollsionHandle has registered some new collisions 62 63 std::vector<Collision*> collisionList; //!< a list full of collisions 64 std::vector<long> targetList; //!< a list of target classes for filtering 65 66 CollisionReaction* collisionReaction; //!< reference to the collision reaction object 45 67 46 68 };
Note: See TracChangeset
for help on using the changeset viewer.