00001 //--------------------------------------------------------------------------- 00002 00003 #ifndef DensitySelfThinning 00004 #define DensitySelfThinning 00005 //--------------------------------------------------------------------------- 00006 #include "MortalityBase.h" 00029 class clDensitySelfThinning : virtual public clMortalityBase { 00030 //note: need the virtual keyword to avoid base class ambiguity. 00031 00032 public: 00033 00037 clDensitySelfThinning(clSimManager *p_oSimManager); 00038 00042 ~clDensitySelfThinning(); 00043 00058 void DoShellSetup(xercesc::DOMDocument *p_oDoc); 00059 00068 void clDensitySelfThinning::CalculateNeighborhoodTreeCountAndMeanDiam10( clTree * p_oTree, float *p_fTreeCount, float *p_fMeanDiam10); 00069 00077 bool DoMort(clTree *p_oTree, const float &fDbh, const short int &iSpecies); 00078 00079 protected: 00080 float m_fNumberYearsPerTimestep; 00081 float * mp_fSelfThinRadius; 00082 float * mp_fMinDensityForMort; 00083 float * mp_fSelfThinAsymptote; 00084 float * mp_fSelfThinDiamEffect; 00085 float * mp_fSelfThinDensityEffect; 00086 short int * mp_iIndexes; 00089 }; 00090 //--------------------------------------------------------------------------- 00091 #endif //DensitySelfThinning 00092