Rev 61 | Rev 83 | 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 | |||
16 | Werner | 6 | #include "core/grid.h" |
3 | Werner | 7 | |
30 | Werner | 8 | class ImageStamp; |
38 | Werner | 9 | class TreeSpecies; |
10 | class Stamp; |
||
3 | Werner | 11 | |
12 | class Tree |
||
13 | { |
||
14 | public: |
||
15 | Tree(); |
||
40 | Werner | 16 | void setId(const int id) { m_id=id;} |
17 | const int id() const { return m_id; } |
||
39 | Werner | 18 | void setPosition(const QPointF pos) { m_Position=pos; } |
19 | const QPointF position() const { return m_Position; } |
||
3 | Werner | 20 | |
39 | Werner | 21 | void setDbh(const float dbh) { m_Dbh=dbh; } |
22 | const float dbh() const { return m_Dbh; } |
||
3 | Werner | 23 | |
39 | Werner | 24 | void setHeight(const float height) { m_Height=height; } |
25 | const float height() const { return m_Height; } |
||
3 | Werner | 26 | |
27 | const float impact() const { return mImpact; } |
||
15 | Werner | 28 | const float impactRadius() const { return mImpactRadius; } |
3 | Werner | 29 | |
39 | Werner | 30 | const TreeSpecies* species() const { return m_species; } |
31 | void setSpecies(TreeSpecies *ts) { m_species=ts; } |
||
32 | |||
38 | Werner | 33 | void setup(); |
34 | |||
58 | Werner | 35 | void enableDebugging() { m_debugid = m_id; } |
36 | |||
3 | Werner | 37 | |
39 | Werner | 38 | // grid based stamp functions |
45 | Werner | 39 | static void setGrid(FloatGrid* gridToStamp, FloatGrid *dominanceGrid) { m_grid = gridToStamp; m_dominanceGrid = dominanceGrid; } |
39 | Werner | 40 | void applyStamp(); |
40 | Werner | 41 | double readStamp(); |
58 | Werner | 42 | double readStampMul(); |
43 | void heightGrid(); |
||
39 | Werner | 44 | |
40 | Werner | 45 | // statistics |
46 | static void resetStatistics(); |
||
47 | static const int statPrints() { return m_statPrint; } |
||
48 | Werner | 48 | static const int statAboveZ() { return m_statAboveZ; } ///< # of trees that are above Z*, i.e. the top is above the dominant height grid |
40 | Werner | 49 | |
53 | Werner | 50 | static float lafactor; |
58 | Werner | 51 | |
3 | Werner | 52 | private: |
58 | Werner | 53 | bool isDebugging() { return m_id == m_debugid; } |
40 | Werner | 54 | int m_id; |
38 | Werner | 55 | float m_Dbh; |
56 | float m_Height; |
||
57 | QPointF m_Position; |
||
3 | Werner | 58 | float mOwnImpact; |
6 | Werner | 59 | float mImpactArea; |
15 | Werner | 60 | float mImpactRadius; |
3 | Werner | 61 | float mImpact; |
38 | Werner | 62 | // Stamp |
39 | Werner | 63 | const Stamp *m_stamp; |
38 | Werner | 64 | TreeSpecies *m_species; |
39 | Werner | 65 | static FloatGrid *m_grid; |
45 | Werner | 66 | static FloatGrid *m_dominanceGrid; |
58 | Werner | 67 | // debugging |
68 | static int m_debugid; |
||
53 | Werner | 69 | |
40 | Werner | 70 | // statistics |
71 | static int m_statPrint; |
||
48 | Werner | 72 | static int m_statAboveZ; |
40 | Werner | 73 | static int m_nextId; |
3 | Werner | 74 | }; |
75 | |||
76 | #endif // TREE_H |