MeshKit
1.0
|
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