00001
00002 #ifndef SpatialDisperseH
00003 #define SpatialDisperseH
00004
00005 #include "DisperseBase.h"
00006
00007 class DOMDocument;
00008 class clTreePopulation;
00009 class clPlot;
00010 class clTree;
00011
00050 class clSpatialDispersal : virtual public clDisperseBase {
00051
00052
00053 public:
00054
00060 clSpatialDispersal(clSimManager *p_oSimManager);
00061
00065 ~clSpatialDispersal();
00066
00073 void SetNameData(char *cNameString);
00074
00078
00079
00080 protected:
00081
00082 float ***mp_fDispersalX0;
00086 float ***mp_fThetaXb;
00091 float ***mp_fStr;
00094 float ***mp_fBeta;
00097 float ***mp_fFecundity;
00101 float *mp_fStumpBeta;
00103 float *mp_fStumpStr;
00105 float *mp_fStumpFecundity;
00106 float ****mp_fCumProb;
00108 float m_fNumYearsPerTimestep;
00109 int m_iMaxDistance;
00110 int m_iMaxGapDensity;
00112 short int *mp_iIndexes;
00115 short int m_iNumFunctions;
00116 short int m_iNumCovers;
00117 short int **mp_iWhatFunction;
00119 char *m_cQuery;
00121 bool **mp_bIsUsed;
00123 bool m_bIsGap;
00124 bool m_bStumps;
00131 void DoShellSetup(xercesc::DOMDocument *p_oDoc);
00132
00141 float CalculateFunctionValue(int iDistance, int iSpecies,
00142 function iFunction, cover iCover);
00143
00147 void DeclareArrays();
00148
00182 void GapDisperse(clTree * p_oTree, clTreePopulation * p_oPop, clPlot * p_oPlot, float fDbh );
00183
00198 void NonGapDisperse(clTree * p_oTree, clTreePopulation * p_oPop, clPlot * p_oPlot, float fDbh );
00199
00216 void GetParameterFileData(xercesc::DOMDocument *p_oDoc);
00217
00223 void CalcFecAndFunctions();
00224
00229 void PopulateUsedTable(clTreePopulation *p_oPop);
00230
00245 void CalculateGapStatus(clTreePopulation *p_oPop);
00246
00258 void CalculateProbabilityDistribution(float *p_fProbArray, int iMaxDistance,
00259 int iSpecies, function iFunction, cover iCover);
00260
00266 void AddSeeds();
00267
00280 float GetNumberOfSeeds(float fDbh, short int iSp, int iCover, int iFunc);
00281
00282 };
00283
00284 #endif