ESyS-Particle
4.0.1
|
00001 00002 // // 00003 // Copyright (c) 2003-2011 by The University of Queensland // 00004 // Earth Systems Science Computational Centre (ESSCC) // 00005 // http://www.uq.edu.au/esscc // 00006 // // 00007 // Primary Business: Brisbane, Queensland, Australia // 00008 // Licensed under the Open Software License version 3.0 // 00009 // http://www.opensource.org/licenses/osl-3.0.php // 00010 // // 00012 00013 #ifndef __ROUGHPADDEDBLOCK3D_H 00014 #define __ROUGHPADDEDBLOCK3D_H 00015 00016 //-- project includes -- 00017 #include "Geometry/PaddedBlock3D.h" 00018 #include "Geometry/Plane.h" 00019 #include "Geometry/RectPatch.h" 00020 00021 // --- STL includes --- 00022 #include <vector> 00023 00033 class CRoughPaddedBlock3D : public CPaddedBlock3D 00034 { 00035 protected: 00036 double m_rough_xres,m_rough_yres; 00037 double m_rough_depth; 00038 double m_rough_prob; 00039 00040 vector<RectPatch> m_fault; 00041 00042 virtual RectPatch getClosestPatch(const SimpleParticle&,double); 00043 virtual Plane getClosestPlane(const SimpleParticle&); 00044 00045 public: 00046 CRoughPaddedBlock3D(double,double,double,double,double,double,double,double,double,double,bool circ_x=false); 00047 virtual ~CRoughPaddedBlock3D(){}; 00048 00049 void setRoughness(int,int,double,double); 00050 00051 virtual bool checkAFit(const SimpleParticle&) ; 00052 virtual void generate(int,unsigned int); 00053 /* virtual void tagSplit(int,int,double); */ 00054 }; 00055 00056 #endif // __ROUGHPADDEDBLOCK3D_H