MeshKit
1.0
|
00001 /* 00002 * AF2DfltTriangleMeshOp.hpp 00003 * 00004 * An AF2DfltTriangleMeshOp is a meshing operation that applies a 00005 * two-dimensional advancing front algorithm. The algorithm uses a 00006 * set of rules that add only triangular faces. 00007 * 00008 * Like any advancing front algorithm, it requires at least one 00009 * mesh edge to start the algorithm. Thus surfaces like spheres and 00010 * tori that have no one-dimensional boundary should have an artificial 00011 * one-dimensional boundary introduced. If not, the algorithm will fail. 00012 */ 00013 #ifndef AF2DFLTTRIANGLEMESHOP_HPP 00014 #define AF2DFLTTRIANGLEMESHOP_HPP 00015 00016 // C++ 00017 #include <list> 00018 00019 // MeshKit 00020 #include "meshkit/MeshScheme.hpp" 00021 00022 namespace MeshKit 00023 { 00024 00025 class AF2DfltTriangleMeshOp : public MeshScheme 00026 { 00027 private: 00028 00029 static moab::EntityType meshTypes[]; 00030 00041 int getSFIndex() const; 00042 00043 public: 00044 00050 static bool can_mesh(iBase_EntityType dimension); 00051 00057 static bool can_mesh(ModelEnt *me); 00058 00064 static const char* name(); 00065 00077 static const moab::EntityType* output_types(); 00078 00090 AF2DfltTriangleMeshOp(MKCore *meshkitCore, const MEntVector &meshEntVec); 00091 00095 virtual ~AF2DfltTriangleMeshOp(); 00096 00107 AF2DfltTriangleMeshOp(const AF2DfltTriangleMeshOp& toCopy); 00108 00122 AF2DfltTriangleMeshOp& operator=(const AF2DfltTriangleMeshOp& rhs); 00123 00136 virtual void execute_this(); 00137 00146 virtual const moab::EntityType* mesh_types_arr() const; 00147 00155 virtual void setup_this(); 00156 }; 00157 00158 } // end namespace MeshKit 00159 00160 #endif