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