xmsmesh  1.0
MePolyMesher.h
Go to the documentation of this file.
1 #pragma once
2 //------------------------------------------------------------------------------
7 //------------------------------------------------------------------------------
8 
9 //----- Included files ---------------------------------------------------------
10 
11 // 3. Standard library headers
12 #include <vector>
13 
14 // 4. External library headers
15 #include <boost/shared_ptr.hpp>
16 
17 // 5. Shared code headers
18 
19 #include <xmscore/stl/vector.h>
20 #include <xmscore/misc/base_macros.h> // for XM_DISALLOW_COPY_AND_ASSIGN
21 
22 //----- Forward declarations ---------------------------------------------------
23 
24 //----- Namespace declaration --------------------------------------------------
25 
26 namespace xms
27 {
28 class MeMultiPolyMesherIo;
29 //----- Constants / Enumerations -----------------------------------------------
30 
31 //----- Structs / Classes ------------------------------------------------------
32 
33 //----- Function prototypes ----------------------------------------------------
34 
40 {
41 public:
42  static boost::shared_ptr<MePolyMesher> New();
43 
44  MePolyMesher();
45  virtual ~MePolyMesher();
46 
48  virtual bool MeshIt(const MeMultiPolyMesherIo& a_input,
49  size_t a_polyIdx,
50  VecPt3d& a_points,
51  VecInt& a_triangles,
52  VecInt& a_cell) = 0;
53 
54  virtual void GetProcessedRefinePts(VecPt3d& a_pts) = 0;
55 
56 private:
59 }; // MePolyMesher
60 
61 } // namespace xms
std::vector< int > VecInt
Fills a polygon with a mesh (points and cells). Honors the polygon boundary.
Definition: MePolyMesher.h:39
#define XM_DISALLOW_COPY_AND_ASSIGN(TypeName)
Provides the input to meshing multiple polygons and holds the output.
static boost::shared_ptr< MePolyMesher > New()
Creates a polymesher class.
std::vector< Pt3d > VecPt3d