00001 //--------------------------------------------------------------------------- 00002 00003 #ifndef GrowthOrgH 00004 #define GrowthOrgH 00005 //--------------------------------------------------------------------------- 00006 00007 #include <xercesc/dom/dom.hpp> 00008 00009 class clGrowthBase; 00010 class clSimManager; 00011 class clTreePopulation; 00012 class clNciGrowth; 00013 00080 class clGrowthOrg { 00081 public: 00082 00086 ~clGrowthOrg(); 00087 00093 clGrowthOrg(clGrowthBase *p_oHookedShell); 00094 00136 void DoGrowthAssignments(); 00137 00156 void DoSetup(clSimManager *p_oSimManager, xercesc::DOMDocument *p_oDoc); 00157 00163 short int GetNumberOfSpecies() {return m_iTotalSpecies;}; 00164 00170 short int GetNumberOfTypes() {return m_iTotalTypes;}; 00171 00179 short int GetLightCode(short int iSp, short int iTp) 00180 {return mp_iLightCodes[iSp][iTp];}; 00181 00189 short int GetGrowthCode(short int iSp, short int iTp) 00190 {return mp_iGrowthCodes[iSp][iTp];}; 00191 00192 00200 short int GetDiamCode(short int iSp, short int iTp) 00201 {return mp_iDiamCodes[iSp][iTp];}; 00202 00211 clGrowthBase* GetGrowthShell(short int iSp, short int iTp) 00212 {return mp_oDiameterGrowthTable[iSp][iTp];}; 00213 00223 void DoTreeDataMemberRegistrations(clSimManager *p_oSimManager, 00224 clTreePopulation *p_oPop); 00225 00226 protected: 00227 clTreePopulation *mp_oPop; 00229 clGrowthBase ***mp_oDiameterGrowthTable; 00236 clGrowthBase ***mp_oHeightGrowthTable; 00243 clGrowthBase **mp_oShellList; 00248 float *mp_fMaxTreeHeight; 00249 00250 short int m_iTotalSpecies; 00252 short int m_iTotalTypes; 00254 short int m_iNumShells; 00261 short int **mp_iGrowthCodes; 00262 00267 short int **mp_iLightCodes; 00268 00273 short int **mp_iDiamCodes; 00274 00279 short int **mp_iHeightCodes; 00280 00281 00307 void PopulateGrowthTables(clSimManager *p_oSimManager); 00308 00315 void GetLightVariableCodes(); 00316 00324 void GetDiamVariableCodes(); 00325 00332 void GetHeightVariableCodes(); 00333 00339 void GetMaxTreeHeights(); 00340 }; 00341 //--------------------------------------------------------------------------- 00342 #endif