Subversion Repositories public iLand

Rev

Rev 105 | Rev 107 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1
 
3 Werner 2
#ifndef TREE_H
3
#define TREE_H
4
#include <QPointF>
5
 
83 Werner 6
#include "grid.h"
3 Werner 7
 
90 Werner 8
class Species;
38 Werner 9
class Stamp;
106 Werner 10
class RessourceUnit;
3 Werner 11
 
12
class Tree
13
{
14
public:
15
    Tree();
106 Werner 16
    void setId(const int id) { mId=id;}
17
    const int id() const { return mId; }
18
    void setPosition(const QPointF pos) { mPosition=pos; }
19
    const QPointF position() const { return mPosition; }
3 Werner 20
 
106 Werner 21
    void setDbh(const float dbh) { mDbh=dbh; }
22
    const float dbh() const { return mDbh; }
3 Werner 23
 
106 Werner 24
    void setHeight(const float height) { mHeight=height; }
25
    const float height() const { return mHeight; }
3 Werner 26
 
106 Werner 27
    const float lightRessourceIndex() const { return mLRI; }
3 Werner 28
 
106 Werner 29
    const Species* species() const { return mSpecies; }
30
    void setSpecies(Species *ts) { mSpecies=ts; }
31
    const RessourceUnit *ru() const { return mRU; }
32
    void setRU(RessourceUnit *ru) { mRU = ru; }
39 Werner 33
 
38 Werner 34
    void setup();
35
 
106 Werner 36
    void enableDebugging() { mDebugid = mId; }
58 Werner 37
 
3 Werner 38
 
39 Werner 39
    // grid based stamp functions
106 Werner 40
    static void setGrid(FloatGrid* gridToStamp, FloatGrid *dominanceGrid) { mGrid = gridToStamp; mHeightGrid = dominanceGrid; }
39 Werner 41
    void applyStamp();
40 Werner 42
    double readStamp();
58 Werner 43
    double readStampMul();
44
    void heightGrid();
39 Werner 45
 
40 Werner 46
    // statistics
47
    static void resetStatistics();
48
    static const int statPrints() { return m_statPrint; }
106 Werner 49
    static const int statCreated() { return m_statCreated; }
40 Werner 50
 
53 Werner 51
    static float lafactor;
58 Werner 52
 
3 Werner 53
private:
106 Werner 54
    bool isDebugging() { return mId == mDebugid; }
55
    int mId;
56
    float mDbh;
57
    float mHeight;
58
    QPointF mPosition;
59
    //float mOwnImpact;
60
    //float mImpactArea;
61
    //float mImpactRadius;
62
    float mLRI;
38 Werner 63
    // Stamp
106 Werner 64
    const Stamp *mStamp;
65
    Species *mSpecies;
66
    RessourceUnit *mRU;
67
    static FloatGrid *mGrid;
68
    static FloatGrid *mHeightGrid;
58 Werner 69
    // debugging
106 Werner 70
    static int mDebugid;
53 Werner 71
 
40 Werner 72
    // statistics
73
    static int m_statPrint;
48 Werner 74
    static int m_statAboveZ;
105 Werner 75
    static int m_statCreated;
40 Werner 76
    static int m_nextId;
3 Werner 77
};
78
 
79
#endif // TREE_H