00001 //--------------------------------------------------------------------------- 00002 // GridBasedSpatialDisperse 00003 //--------------------------------------------------------------------------- 00004 #if !defined(GridBasedSpatialDisperse_H) 00005 #define GridBasedSpatialDisperse_H 00006 00007 #include "DisperseBase.h" 00008 00009 class DOMDocument; 00010 class clPlot; 00011 class clModelMath; 00033 class clGridBasedSpatialDisperse : virtual public clDisperseBase { 00034 //note: need the virtual keyword to avoid base class ambiguity. 00035 00036 public: 00037 00043 clGridBasedSpatialDisperse(clSimManager *p_oSimManager); 00044 00048 ~clGridBasedSpatialDisperse(); 00049 00050 protected: 00051 00052 clPlot *mp_oPlot; 00053 float *mp_fDispersalX0; 00055 float *mp_fThetaXb; 00057 float *mp_fStr; 00059 float *mp_fBeta; 00061 float *mp_fFecundity; 00063 float m_fMaxSearchRadius; 00066 float m_fQueryHeight; 00068 float m_fSeedCellArea; 00069 float m_fNumYearsPerTimestep; 00070 short int *mp_iIndexes; 00073 short int m_iNumFunctions; 00074 short int *mp_iWhatFunction; 00076 bool **mp_bIsUsed; 00088 void AddSeeds(); 00089 00090 00095 virtual void DoChildSetup(xercesc::DOMDocument *p_oDoc) {;}; 00096 00102 void DoShellSetup(xercesc::DOMDocument *p_oDoc); 00103 00116 virtual float GetFunctionValue(float &fCellX, float &fCellY, float &fTreeX, 00117 float &fTreeY, int &iSpecies) = 0; 00118 00122 void DeclareArrays(); 00123 00131 void GetParameterFileData(xercesc::DOMDocument *p_oDoc); 00132 00138 void CalculateFecundity(); 00139 00145 void PopulateUsedTable(); 00146 00151 void CalculateQueryHeight(); 00152 }; 00153 //--------------------------------------------------------------------------- 00154 #endif // AnisotropicDisperse_H