00001 //--------------------------------------------------------------------------- 00002 00003 #ifndef NCIGrowthH 00004 #define NCIGrowthH 00005 //--------------------------------------------------------------------------- 00006 #include "GrowthBase.h" 00007 #include "NCIBase.h" 00008 00009 class clSimManager; 00010 class clTree; 00011 class clTreePopulation; 00012 class DOMDocument; 00013 00058 class clNciGrowth : virtual public clGrowthBase, clNCIBase { 00059 //note: need the virtual keyword to avoid base class ambiguity. 00060 00061 public: 00062 00067 clNciGrowth(clSimManager *p_oSimManager); 00068 00072 ~clNciGrowth(); 00073 00083 float CalcDiameterGrowthValue(clTree *p_oTree, clTreePopulation *p_oPop, float fHeightGrowth); 00084 00109 void PreGrowthCalcs( clTreePopulation *p_oPop ); 00110 00124 void DoShellSetup(xercesc::DOMDocument *p_oDoc); 00125 00134 void SetNameData(char *cNameString); 00135 00136 protected: 00137 00138 short int **mp_iGrowthCodes; 00141 short int *mp_iWhatBehaviorTypes; 00142 short int m_iNumBehaviorTypes; 00161 void ValidateData(); 00162 00171 void GetTreeMemberCodes(); 00172 00179 void ReadParameterFile( xercesc::DOMDocument *p_oDoc ); 00180 00185 void AssembleUniqueTypes(); 00186 }; 00187 //--------------------------------------------------------------------------- 00188 #endif