Goosefoot Mesher - CGAL
mesher_cgal_app.h
1 
20 #ifndef MESHER_CGAL_APP_H
21 #define MESHER_CGAL_APP_H
22 
23 #include "mesher_cgal.h"
24 
25 #include "Signed_mesh_domain_3.h"
26 #include "implicit_zone_function.h"
27 #include "proximity_domain_3.h"
28 
29 namespace mesherCGAL {
30  // MesherCGAL members
31  typedef CGAL::Signed_mesh_domain_3< Implicit_zone_function<K>, K > Mesh_domain_implicit;
32  typedef K::Iso_cuboid_3 Iso_cuboid;
33 
34  class MesherCGAL {
35  CGALSettings _settings;
36  Point* _centre;
37  std::map<typename C3t3::Triangulation::Facet,int> _boundary_indices;
38  region_ip_map _region_ips;
39  C3t3 _c3t3;
40  std::vector< int > vessels;
41  std::vector< int > needles;
42  std::vector< int > polyhedral_zones;
43  std::vector< std::unique_ptr<Zone> > _zones;
44 
45  region_ep_map _region_eps;
46  FT _bbox_radius;
47  Tree *_boundary_tree;
48  std::unique_ptr<Iso_cuboid> _bbox_p;
50  Mesh_domain_implicit* _domain;
51 
52  public:
53  MesherCGAL(const CGALSettings& settings) :
54  _settings(settings), _centre(NULL),
55  _boundary_tree(NULL), _pdf(NULL),
56  _domain(NULL)
57  {}
58 
59  int init();
60  int setup_regions();
61  int calculate_bbox();
62  int setup_domain_field();
63  int mesh();
64  int label_boundaries();
65  int output();
66 
67  int run();
68  };
69 }
70 
71 #endif
Definition: implicit_zone_function.h:17
Definition: Signed_mesh_domain_3.h:54
Definition: mesher_cgal_app.h:34