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