38 #ifndef GETFEM_MESH_IM_LEVEL_SET_H__
39 #define GETFEM_MESH_IM_LEVEL_SET_H__
58 pintegration_method regular_simplex_pim;
59 pintegration_method base_singular_pim;
65 dal::bit_vector ignored_im;
69 std::vector<pintegration_method> build_methods;
71 mutable bool is_adapted;
74 void clear_build_methods();
75 void build_method_of_convex(
size_type cv);
80 std::string ls_csg_description;
91 bool2 is_point_in_selected_area
92 (
const std::vector<pmesher_signed_distance> &mesherls0,
93 const std::vector<pmesher_signed_distance> &mesherls1,
const base_node& P);
94 bool2 is_point_in_selected_area2
95 (
const std::vector<pmesher_signed_distance> &mesherls0,
96 const std::vector<pmesher_signed_distance> &mesherls1,
const base_node& P);
99 enum { INTEGRATE_INSIDE = 1, INTEGRATE_OUTSIDE = 2, INTEGRATE_ALL = 2+1,
100 INTEGRATE_BOUNDARY = 4};
110 pintegration_method sing = 0) {
111 regular_simplex_pim = reg;
112 base_singular_pim = sing;
115 int location()
const {
return integrate_where; }
118 return mesh_im::memsize();
121 void init_with_mls(mesh_level_set &me,
122 int integrate_where_ = INTEGRATE_ALL,
123 pintegration_method reg = 0,
124 pintegration_method sing = 0);
141 int integrate_where_ = INTEGRATE_ALL,
142 pintegration_method reg = 0,
143 pintegration_method sing = 0);
174 ls_csg_description = description;
177 base_small_vector &vec)
const;
188 pintegration_method segment_pim;
194 dal::bit_vector ignored_im;
198 std::vector<pintegration_method> build_methods;
200 mutable bool is_adapted;
203 void clear_build_methods();
204 void build_method_of_convex(
size_type cv,
mesh &global_intersection,
209 enum { INTEGRATE_INSIDE = 1, INTEGRATE_OUTSIDE = 2, INTEGRATE_ALL = 2+1,
210 INTEGRATE_BOUNDARY = 4};
220 { segment_pim = pim; }
223 return mesh_im::memsize();
226 void init_with_mls(mesh_level_set &me,
228 pintegration_method pim = 0);
230 mesh_im_cross_level_set(mesh_level_set &me,
232 pintegration_method pim = 0);
233 mesh_im_cross_level_set(
void);
237 ~mesh_im_cross_level_set() { clear_build_methods(); }