MeshKit  1.0
CAMALTetMesher.hpp
Go to the documentation of this file.
00001 #ifndef MESHKIT_CAMAL_TET_MESHER_HPP
00002 #define MESHKIT_CAMAL_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 CAMALTetMesher : public MeshScheme
00028 {
00029 public:
00034   CAMALTetMesher(MKCore *mk_core, const MEntVector &me_vec);
00035 
00038   ~CAMALTetMesher();
00039 
00042   virtual void setup_this();
00043 
00046   virtual void execute_this();
00047         
00050   static moab::EntityType meshTps[];
00051   
00052   
00054   static const char* name() 
00055     { return "CAMALTetMesher"; }
00056 
00061   static bool can_mesh(iBase_EntityType dim)
00062     { return iBase_REGION == dim; }
00063 
00070   static bool can_mesh(ModelEnt *me)
00071     { return canmesh_region(me); }
00072 
00076   static const moab::EntityType* output_types()
00077     { return meshTps; }
00078 
00082   virtual const moab::EntityType* mesh_types_arr() const
00083     { return output_types(); }
00084   
00085 private:
00086 
00090   MeshOp *get_tri_mesher();
00091 
00094   void print_debug(ModelEnt *me, std::vector<double> &coords,
00095                    moab::Range &bdy_vrange,
00096                    std::vector<moab::EntityHandle> &bdy,
00097                    std::vector<int> &group_sizes,
00098                    std::vector<int> &bdy_ids);
00099   
00102   CMLTetMesher *cmlTetMesher;
00103 };
00104 
00105 } // namespace MeshKit
00106 
00107 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines