MeshKit
1.0
|
00001 #ifndef MESHKIT_NETGEN_TET_MESHER_HPP 00002 #define MESHKIT_NETGEN_TET_MESHER_HPP 00003 00004 #include "meshkit/iGeom.hpp" 00005 #include <set> 00006 #include <vector> 00007 #include "meshkit/MeshScheme.hpp" 00008 #include "moab/Interface.hpp" 00009 00013 #include "meshkit/MeshScheme.hpp" 00014 00015 class CMLTetMesher; 00016 00017 namespace MeshKit 00018 { 00019 00020 class MKCore; 00021 00027 class NGTetMesher : public MeshScheme 00028 { 00029 public: 00034 NGTetMesher(MKCore *mk_core, const MEntVector &me_vec); 00035 00038 ~NGTetMesher(); 00039 00042 virtual void setup_this(); 00043 00046 virtual void execute_this(); 00047 00050 static bool meshopRegistered; 00051 00054 static iBase_EntityType geomTps[]; 00055 00058 static moab::EntityType meshTps[]; 00059 00060 00062 static const char* name() 00063 { return "NGTetMesher"; } 00064 00069 static bool can_mesh(iBase_EntityType dim) 00070 { return iBase_REGION == dim; } 00071 00078 static bool can_mesh(ModelEnt *me) 00079 { return canmesh_region(me); } 00080 00084 static const moab::EntityType* output_types() 00085 { return meshTps; } 00086 00090 virtual const moab::EntityType* mesh_types_arr() const 00091 { return output_types(); } 00092 00093 private: 00094 00098 MeshOp *get_tri_mesher(); 00099 }; 00100 00101 } // namespace MeshKit 00102 00103 #endif