Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/scripting/src/lib/collision_detection/obb_tree.h @ 9239

Last change on this file since 9239 was 9235, checked in by bensch, 18 years ago

merged the presentation back

File size: 1.5 KB
Line 
1/*!
2 * @file obb_tree.h
3  *  Definition of an obb tree (object oriented Bounding Box)
4
5*/
6
7#ifndef _OBB_TREE_H
8#define _OBB_TREE_H
9
10#include "bv_tree.h"
11#include "model.h"
12#include "material.h"
13
14class Material;
15class OBBTreeNode;
16class PNode;
17class WorldEntity;
18
19//! A class for representing an obb tree
20class OBBTree : public BVTree
21{
22
23  public:
24    OBBTree(int depth, const modelInfo* modInfo, WorldEntity* entity);
25    OBBTree();
26    virtual ~OBBTree();
27    void init();
28
29    virtual void spawnBVTree(const modelInfo& modelInf);
30    virtual void flushTree();
31
32    void createBox(Vector start, Vector end);
33
34    virtual void collideWith(WorldEntity* entity1, WorldEntity* entity2);
35    virtual void drawBV(int depth, int drawMode) const;
36
37    /** returns the next if for the obb tree node @return integer id number of the next node */
38    inline const int getID() { return ++this->id;}
39    /** returns the root node of the bounding volume tree @return reference to the root node */
40    inline OBBTreeNode* getRootNode() const { return this->rootNode; }
41    inline WorldEntity* getOwner() const { return this->owner; }
42
43    void debug();
44
45  private:
46    OBBTreeNode*         rootNode;                        //!< reference to the root node of the tree
47    int                  id;                              //!< the next id of a obb tree node
48    int                  depth;                           //!< the depth of the tree to generate
49    WorldEntity*         owner;                           //!< owner
50};
51
52#endif /* _OBB_TREE_H */
Note: See TracBrowser for help on using the repository browser.