MeshKit  1.0
NGTetMesher.hpp
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines