Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/ai/src/lib/graphics/spatial_separation/spatial_separation.h @ 10266

Last change on this file since 10266 was 9869, checked in by bensch, 18 years ago

orxonox/trunk: merged the new_class_id branche back to the trunk.
merged with command:
svn merge https://svn.orxonox.net/orxonox/branches/new_class_id trunk -r9683:HEAD
no conflicts… puh..

File size: 1.6 KB
Line 
1/*!
2 * @file spatial_separation.h  Definition of the generic spatial separation process of model data
3 */
4
5#ifndef _SPATIAL_SEPARATION_H
6#define _SPATIAL_SEPARATION_H
7
8#include "base_object.h"
9
10
11class Model;
12class Quadtree;
13
14
15#define SEC_OFFSET 1.0                       //!< the offset added to the overlapSize to ensure that there are no problems in
16
17
18
19//! A class for spatial separation of vertices based arrays
20class SpatialSeparation : public BaseObject {
21  ObjectListDeclaration(SpatialSeparation);
22
23  public:
24    SpatialSeparation(Model* model, float overlapSize);
25    SpatialSeparation(Model* model, Model* playerModel);
26    virtual ~SpatialSeparation();
27
28    void setTreeDepth(int depth) { this->treeDepth = depth; }
29    void setMinLength(int minLength) { this->minLength = minLength; }
30
31    Quadtree* createQuadtree(Model* model, float minLength);
32    Quadtree* createQuadtree(Model* model, int treeDepth);
33    Quadtree* createQuadtree(Model* model);
34
35    inline Quadtree* getQuadtree() { return this->quadtree; }
36
37    void drawQuadtree();
38
39  private:
40    void separateZone();
41
42
43  private:
44    Model*             model;        //!< the reference to the model that has to be handled
45    Quadtree*                  quadtree;     //!< the reference to the created quadtree
46
47    Model*             playerModel;  //!< referece to the player model, if needed for overlap calculations
48    float                      overlapSize;  //!< the size of overlaping
49
50    int                        treeDepth;    //!< depth of the quadtree
51    float                      minLength;    //!< min length of a quadtree node
52};
53
54#endif /* _SPATIAL_SEPARATION_H */
Note: See TracBrowser for help on using the repository browser.