00001 //--------------------------------------------------------------------------- 00002 // LogisticGrowth 00003 //--------------------------------------------------------------------------- 00004 #if !defined(LogisticGrowth_H) 00005 #define LogisticGrowth_H 00006 00007 #include "GrowthBase.h" 00008 00036 class clLogisticGrowth : virtual public clGrowthBase { 00037 //note: need the virtual keyword to avoid base class ambiguity. 00038 00039 public: 00040 00044 clLogisticGrowth(clSimManager *p_oSimManager); 00045 00049 ~clLogisticGrowth(); 00050 00060 float CalcHeightGrowthValue(clTree *p_oTree, clTreePopulation *p_oPop, float fDiameterGrowth) 00061 {return CalculateFunctionValue(p_oTree) * m_fConversionFactor;}; 00062 00072 float CalcDiameterGrowthValue(clTree *p_oTree, clTreePopulation *p_oPop, float fHeightGrowth) 00073 {return CalculateFunctionValue(p_oTree) * m_fConversionFactor;}; 00074 00083 void DoShellSetup(xercesc::DOMDocument *p_oDoc); 00084 00093 void SetNameData(char *cNameString); 00094 00095 00096 protected: 00097 00099 float *mp_fAsympGrowthAtFullLight; 00100 00102 float *mp_fShape1; 00103 00105 float *mp_fShape2; 00106 00108 short int *mp_iIndexes; 00109 00113 float m_fConversionFactor; 00114 00123 float CalculateFunctionValue(clTree *p_oTree); 00124 }; 00125 //--------------------------------------------------------------------------- 00126 #endif // LogisticGrowth_H