MeshKit
1.0
|
00001 //-----------------------------------C++-------------------------------------// 00002 // File: src/algs/QuadMesher.hpp 00003 // Wednesday February 11 10:50 2011 00004 // Brief: QuadMesher class definition: four schemes are provided: equal meshing, 00005 // Bias Meshing, Dual Bias Meshing, Curvature-based meshing 00006 //---------------------------------------------------------------------------// 00007 00008 #ifndef MESHKIT_QUADMESHER_HPP 00009 #define MESHKIT_QUADMESHER_HPP 00010 00011 #include "meshkit/MeshScheme.hpp" 00012 00013 namespace Jaal { class Mesh; } 00014 00015 namespace MeshKit 00016 { 00017 //===========================================================================// 00023 //===========================================================================// 00024 00025 class QuadMesher : public MeshScheme 00026 { 00027 public: 00028 enum MeshCleanOps {LOCAL_MESH_CLEANUP, GLOBAL_MESH_CLEANUP }; 00029 00030 //construction function for edge mesher 00031 QuadMesher(MKCore *mk_core, const MEntVector &me_vec); 00032 00033 ~QuadMesher() {} 00034 00035 //set up the parameters for edge meshing, e.g. compute the number of intervals 00036 virtual void setup_this(); 00037 00038 //Generate the edge mesh 00039 virtual void execute_this(); 00040 00042 static const char* name() { return "QuadMesher"; } 00043 00048 static bool can_mesh(iBase_EntityType dim) 00049 { return iBase_FACE == dim; } 00050 00057 static bool can_mesh(ModelEnt *me) 00058 { return canmesh_face(me); } 00059 00060 00064 static const moab::EntityType* output_types(); 00065 00069 virtual const moab::EntityType* mesh_types_arr() const 00070 { return output_types(); } 00071 00076 void allow_boundary_steiner_points( bool a = 0 ); 00077 00081 void mesh_cleanup( MeshCleanOps mcleanup = GLOBAL_MESH_CLEANUP); 00082 00083 private: 00084 // Base: Everythiing must convert to Jaal format for the time being.. 00085 //Jaal::Mesh* tri_quad_conversion (Jaal::Mesh *trimesh); 00086 00087 // Interface with iMesh. Internally convert to Jaal format and call the previous function.. 00088 //Jaal::Mesh* tri_quad_conversion (iMesh_Instance imesh); 00089 }; 00090 00091 } 00092 00093 #endif