MeshKit
1.0
|
00001 #ifndef MESHKIT_VERTEXMESHER_HPP 00002 #define MESHKIT_VERTEXMESHER_HPP 00003 00004 #include "meshkit/Types.hpp" 00005 #include "meshkit/Error.hpp" 00006 #include "meshkit/MeshScheme.hpp" 00007 #include "meshkit/ModelEnt.hpp" 00008 #include "iGeom.h" 00009 #include "moab/Interface.hpp" 00010 #include <vector> 00011 00012 namespace MeshKit { 00013 00014 class MKCore; 00015 00016 00033 class VertexMesher : public MeshScheme 00034 { 00035 public: 00036 00038 VertexMesher(MKCore *mkcore, const MEntVector &me_vec = MEntVector()); 00039 00041 virtual ~VertexMesher(); 00042 00046 virtual bool add_modelent(ModelEnt *model_ent); 00047 00049 virtual void setup_this(); 00050 00052 virtual void execute_this(); 00053 00054 00056 static const char* name() 00057 { return "VertexMesher"; } 00058 00063 static bool can_mesh(iBase_EntityType dim) 00064 { return iBase_VERTEX == dim; } 00065 00072 static bool can_mesh(ModelEnt *model_ent) 00073 { return canmesh_vertex(model_ent); } 00074 00078 static const moab::EntityType* output_types(); 00079 00083 virtual const moab::EntityType* mesh_types_arr() const 00084 { return output_types(); } 00085 00086 protected: 00087 00088 private: 00089 00091 VertexMesher(const VertexMesher &); 00092 00094 VertexMesher &operator=(const VertexMesher &); 00095 00097 static int init; 00098 }; 00099 00100 } 00101 00102 #endif 00103 00104