00001 #ifndef MESHGENERATOR_H
00002 #define MESHGENERATOR_H
00003
00004 #include "SundanceDefs.h"
00005
00006 #include "Mesh.h"
00007 #include "TSFSmartPtr.h"
00008 #include "TSFTimeMonitor.h"
00009
00010 namespace Sundance
00011 {
00012
00013 using namespace TSF;
00014 using std::string;
00015
00016 using std::ostream;
00017
00018
00019
00020
00021
00022
00023 class MeshGeneratorBase
00024 {
00025 public:
00026
00027 MeshGeneratorBase() {;}
00028
00029 virtual ~MeshGeneratorBase() {;}
00030
00031
00032 virtual Mesh getMesh() const = 0;
00033
00034 protected:
00035 };
00036
00037
00038
00039
00040
00041
00042 class MeshGenerator
00043 {
00044 public:
00045
00046 MeshGenerator() : ptr_(0){;}
00047
00048 MeshGenerator(MeshGeneratorBase* ptr);
00049
00050
00051 Mesh getMesh() const ;
00052
00053 private:
00054 TSFSmartPtr<MeshGeneratorBase> ptr_;
00055
00056 static TSFTimer& meshBuildTimer();
00057 };
00058
00059
00060
00061
00062
00063 }
00064 #endif