MeshKit  1.0
QslimMesher.hpp
Go to the documentation of this file.
00001 //-----------------------------------C++-------------------------------------//
00002 // File: src/algs/meshkit/QslimMesher.hpp
00003 //
00004 // Brief: QslimMesher class definition:
00005 //        Operates on a set of triangles, options passed with another
00006 //         class, QslimOptions
00007 //---------------------------------------------------------------------------//
00008 
00009 #ifndef MESHKIT_QSLIM_MESHER_HPP
00010 #define MESHKIT_QSLIM_MESHER_HPP
00011 
00012 #include <stdlib.h>
00013 #include <stdio.h>
00014 #include <assert.h>
00015 #include <string>
00016 #include <iostream>
00017 #include <fstream>
00018 #include <string.h>
00019 #include <limits.h>
00020 
00021 //#include "meshkit/iGeom.hpp"
00022 #include <set>
00023 #include <vector>
00024 
00025 #include "meshkit/MeshScheme.hpp"
00026 #include "meshkit/QslimOptions.hpp"
00027 
00028 namespace MeshKit {
00029 //===========================================================================//
00038 //===========================================================================//
00039 
00040 using namespace std;
00041 
00042 class QslimDecimation;
00043 
00044 class QslimMesher: public MeshScheme {
00045 
00046 public:
00047   //construction function for Qslim mesher
00048   QslimMesher(MKCore *mk_core, const MEntVector &me_vec);
00049 
00050   //set up the parameters for decimation meshing
00051   // these will be passed with QslimOptions
00052   virtual void setup_this();
00053 
00054   //Decimate the mesh
00055   virtual void execute_this();
00056 
00058    static const char* name()
00059      { return "QslimMesher"; }
00060 
00061    // pass
00062   void set_options(QslimOptions & opts)
00063   {
00064     _opts = opts;
00065   }
00066 
00067   static bool can_mesh(iBase_EntityType dim)
00068   {
00069     return iBase_FACE == dim;
00070   }
00071 
00078   static bool can_mesh(ModelEnt *me)
00079   {
00080     return canmesh_face(me);
00081   }
00082 
00086   static const moab::EntityType* output_types();
00087 
00091   virtual const moab::EntityType* mesh_types_arr() const
00092   {
00093     return output_types();
00094   }
00095 
00096   ~QslimMesher();
00097 
00098 private:
00099 
00100   QslimOptions _opts;
00101   QslimDecimation * _worker;
00102 
00103 };
00104 
00105 }
00106 
00107 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines