MeshKit  1.0
AF2DfltTriangleMeshOp.hpp
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines