Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/trunk/src/lib/collision_detection/cd_engine.h @ 4836

Last change on this file since 4836 was 4836, checked in by bensch, 19 years ago

orxonox/trunk: renamed all the \param → @param and so on in Doxygen tags.
Thanks a lot to the kDevelop team. this took since the last commit :)

File size: 1.9 KB
RevLine 
[4615]1/*!
[4511]2    \file cd_engine.h
[4836]3  *  Definition of the collision detection engine
[4615]4
[4510]5*/
6
[4511]7#ifndef _CD_ENGINE_H
8#define _CD_ENGINE_H
[4510]9
10#include "base_object.h"
[4522]11#include "collision_defs.h"
[4615]12#include "abstract_model.h"
[4510]13
[4523]14template<class T> class tList;
15class WorldEntity;
[4551]16class OBBTree;
[4510]17
[4526]18
[4523]19//! featured state options, they are all additive
[4522]20typedef enum cdState
21  {
22    CD_DEBUG_DRAW_ALL = 1,
23    CD_DEBUG_DRAW_POLYGONS = 1<<1,
24    CD_DEBUG_DRAW_BLENDED = 1<<2,
25    CD_DEBUG_DRAW_HIT_BV = 1<<3,
[4541]26    CD_DEBUG_VERBOSE = 1<<4,
27
28    CD_STORE_VERTICES = 1<<5
[4522]29  };
30
31
[4511]32//! The class representing the collision detection system of orxonox
33class CDEngine : public BaseObject {
[4510]34
35 public:
[4746]36  virtual ~CDEngine();
[4836]37  /** @returns a Pointer to the only object of this Class */
[4746]38  static CDEngine* getInstance() { if (!singletonRef) singletonRef = new CDEngine(); return singletonRef; }
[4522]39  void init();
[4510]40
[4688]41  inline void setState(const int newState) { this->state = newState; }
42  inline const int getState() const { return this->state; }
43  inline void enable(const int options) { this->state |= options; }
44  inline void disable(const int options) { int temp = this->state & options; this->state ^= temp; }
[4522]45
[4688]46  inline void setEntityList(tList<WorldEntity>* entityList) { this->entityList = entityList; }
47
[4635]48  void drawBV(int depth, int drawMode) const;
[4522]49
50  void checkCollisions();
51
[4546]52  void debug();
[4615]53  void debugSpawnTree(int depth, sVec3D* vertices, int numVertices);
[4710]54  void debugDraw(int depth, int drawMode);
[4546]55
[4510]56 private:
[4746]57  CDEngine();
[4511]58  static CDEngine* singletonRef;
[4522]59
[4523]60  void spawnBVTree(int depth = MAX_BV_TREE_DEPTH);
[4522]61
[4523]62  void checkCollisionObjects();
63  void checkCollisionGround();
[4522]64
[4523]65
[4522]66 private:
[4523]67  int                     state;                            //!< the current state of the cd engine
68  tList<WorldEntity>*     entityList;                       //!< pointer to the world entity list
[4551]69  OBBTree*                rootTree;                         //!< for testing purposes a root tree
[4510]70};
71
[4511]72#endif /* _CD_ENGINE_H */
Note: See TracBrowser for help on using the repository browser.