Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

Last change on this file since 4588 was 4551, checked in by patrick, 19 years ago

orxonox/trunk: further work on the test env, cdengine draw functions, debug functions

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