00001 //--------------------------------------------------------------------------- 00002 // SizeDepLogisticGrowth 00003 //--------------------------------------------------------------------------- 00004 #if !defined(SizeDepLogisticGrowth_H) 00005 #define SizeDepLogisticGrowth_H 00006 00007 #include "GrowthBase.h" 00008 00048 class clSizeDepLogisticGrowth : virtual public clGrowthBase { 00049 //note: need the virtual keyword to avoid base class ambiguity. 00050 00051 public: 00052 00056 clSizeDepLogisticGrowth(clSimManager *p_oSimManager); 00057 00061 ~clSizeDepLogisticGrowth(); 00062 00076 float CalcHeightGrowthValue(clTree *p_oTree, clTreePopulation *p_oPop, float fDiameterGrowth); 00077 00091 float CalcDiameterGrowthValue(clTree *p_oTree, clTreePopulation *p_oPop, float fHeightGrowth); 00092 00101 void DoShellSetup(xercesc::DOMDocument *p_oDoc); 00102 00111 void SetNameData(char *cNameString); 00112 00113 00114 protected: 00115 00117 float *mp_fSlope; 00118 00120 float *mp_fIntercept; 00121 00123 float *mp_fShape1; 00124 00126 float *mp_fShape2; 00127 00129 short int *mp_iIndexes; 00130 00133 float m_fConversionFactor; 00134 00136 float m_fNumberOfYearsPerTimestep; 00137 00148 inline float CalculateFunctionValue(int iSpecies, float fGLI, float fDiam); 00149 }; 00150 //--------------------------------------------------------------------------- 00151 #endif // SizeDepLogisticGrowth_H