MeshKit  1.0
CurveFacetMeshReader.hpp
Go to the documentation of this file.
00001 
00002 
00003 #include <stdlib.h>
00004 #include <stdio.h>
00005 #include <assert.h>
00006 #include <string>
00007 #include <iostream>
00008 #include <fstream>
00009 #include <string.h>
00010 #include <limits.h>
00011 
00012 #include <iGeom.h>
00013 #include <iMesh.h>
00014 #include <set>
00015 #include <iRel.h>
00016 #include <vector>
00017 #include "meshkit/MKCore.hpp"
00018 #include "meshkit/MeshScheme.hpp"
00019 
00020 namespace MeshKit
00021 {
00022  
00023 using namespace std;
00024 
00037 class CurveFacetMeshReader : public MeshScheme
00038 {
00039 public: 
00040        CurveFacetMeshReader(MKCore *mk, const MEntVector &ments);
00041 
00042        ~CurveFacetMeshReader();
00043 private:
00044         double facet_tol;
00045         double geom_res;
00046         MKCore *mk;
00047 
00052         virtual double vtx2vtx_dist(iGeom::EntityHandle vtx1, iMesh::EntityHandle vtx2);
00053 
00058         virtual double mvtx2mvtx_dist(iMesh::EntityHandle vtx1, iMesh::EntityHandle vtx2);
00059 
00060 
00061         virtual void facet(ModelEnt *curve);
00062 
00066         virtual void set_senses( ModelEnt *curve);
00067 
00068 public:  
00069        virtual void setup_this();
00070        virtual void execute_this();
00071 
00078        void set_mesh_params(double faceting_tolerance = 0, double geom_resabs = 0);
00079 
00084       static bool can_mesh(iBase_EntityType dim)
00085       { return iBase_EDGE == dim; }
00086 
00093       static bool can_mesh(ModelEnt *me)
00094       { return canmesh_edge(me); }
00095 
00097       static const char* name()
00098       {return "CurveFacetMeshReader";}
00099 
00103       static const moab::EntityType* output_types();
00104 
00105       virtual const moab::EntityType* mesh_types_arr() const
00106       { return output_types(); }
00107 
00108 };
00109 
00110 
00111 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines