00001 //--------------------------------------------------------------------------- 00002 // AnisotropicDisperse 00003 //--------------------------------------------------------------------------- 00004 #if !defined(AnisotropicDisperse_H) 00005 #define AnisotropicDisperse_H 00006 00007 #include "GridBasedSpatialDisperse.h" 00008 00009 class DOMDocument; 00010 class clSimManager; 00011 00038 class clAnisotropicDisperse : virtual public clGridBasedSpatialDisperse { 00039 //note: need the virtual keyword to avoid base class ambiguity. 00040 00041 public: 00042 00048 clAnisotropicDisperse(clSimManager *p_oSimManager); 00049 00053 ~clAnisotropicDisperse(); 00054 00055 protected: 00056 00057 float ***mp_fProb; 00060 float *mp_fDirectionMaxDispersal; 00062 float *mp_fAnisotropicAmplitude; 00064 float *mp_fNormalizer; 00065 float m_fAngleIncr; 00067 int m_iMaxSearchRadius; 00069 int m_iNumAngles; 00077 void DoChildSetup(xercesc::DOMDocument *p_oDoc); 00078 00084 void GetParameterData(xercesc::DOMDocument *p_oDoc); 00085 00086 00101 float GetFunctionValue(float &fCellX, float &fCellY, float &fTreeX, 00102 float &fTreeY, int &iSpecies); 00103 00113 float CalculateNormalizer(int iSpecies); 00114 00118 void CalculateProbs(); 00119 }; 00120 //--------------------------------------------------------------------------- 00121 #endif // AnisotropicDisperse_H