Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/terrain.old/src/lib/collision_detection/bv_tree.h

Last change on this file was 7711, checked in by patrick, 19 years ago

trunk: merged the cd branche back to trunk

File size: 980 bytes
Line 
1/*!
2 * @file bv_tree.h
3  *  Definition of a bounding volume tree
4
5*/
6
7#ifndef _BV_TREE_H
8#define _BV_TREE_H
9
10
11#include "base_object.h"
12#include "model.h"
13
14// FORWARD DECLARATION
15class BoundingVolume;
16class BVTreeNode;
17class PNode;
18class WorldEntity;
19
20//! draw mode for the bounding volume
21typedef enum DrawMode
22{
23  DRAW_ALL               = 1<<0,
24  DRAW_SINGLE            = 1<<1,
25
26  DRAW_SEPARATING_PLANE  = 1<<2,
27  DRAW_BV_AXIS           = 1<<3,
28  DRAW_BV_BLENDED        = 1<<4,
29  DRAW_BV_POLYGON        = 1<<5,
30  DRAW_MODEL             = 1<<6,
31  DRAW_POINTS            = 1<<7
32};
33
34
35//! A class that represents a bounding volume tree
36class BVTree : public BaseObject
37{
38
39  public:
40    BVTree();
41    virtual ~BVTree();
42
43    virtual void spawnBVTree(const modelInfo& modelInf) = 0;
44    virtual void flushTree() = 0;
45
46    virtual void collideWith(WorldEntity* entity1, WorldEntity* entity2) = 0;
47
48    virtual void drawBV(int depth, int drawMode) const = 0;
49};
50
51#endif /* _BV_TREE_H */
Note: See TracBrowser for help on using the repository browser.