82 std::size_t cod_d = oracle.cod_d();
83 std::queue<Simplex_handle> queue;
85 for (
const auto& p : seed_points) {
86 Simplex_handle full_simplex = triangulation.locate_point(p);
87 for (Simplex_handle face : full_simplex.face_range(cod_d)) {
91 mt_seed_inserted_list.push_back(MT_inserted_info(qr, face,
false));
99 while (!queue.empty()) {
100 Simplex_handle s = queue.front();
102 for (
auto cof : s.coface_range(cod_d + 1)) {
103 for (
auto face : cof.face_range(cod_d)) {
105 if (qr.
success && out_simplex_map.emplace(face, qr.
intersection).second) queue.emplace(face);
137 const Intersection_oracle& oracle,
Out_simplex_map& interior_simplex_map,
139 std::size_t cod_d = oracle.cod_d();
140 std::queue<Simplex_handle> queue;
142 for (
const auto& p : seed_points) {
143 Simplex_handle full_simplex = triangulation.locate_point(p);
144 for (Simplex_handle face : full_simplex.face_range(cod_d)) {
145 auto qr = oracle.intersects(face, triangulation);
147 mt_seed_inserted_list.push_back(MT_inserted_info(qr, face,
false));
150 if (oracle.lies_in_domain(qr.intersection, triangulation)) {
151 if (interior_simplex_map.emplace(face, qr.intersection).second) queue.emplace(face);
153 for (Simplex_handle cof : face.coface_range(cod_d + 1)) {
154 auto qrb = oracle.intersects_boundary(cof, triangulation);
156 mt_seed_inserted_list.push_back(MT_inserted_info(qrb, cof,
true));
158 if (qrb.success) boundary_simplex_map.emplace(cof, qrb.intersection);
166 while (!queue.empty()) {
167 Simplex_handle s = queue.front();
169 for (
auto cof : s.coface_range(cod_d + 1)) {
170 for (
auto face : cof.face_range(cod_d)) {
171 auto qr = oracle.intersects(face, triangulation);
173 mt_inserted_list.push_back(MT_inserted_info(qr, face,
false));
176 if (oracle.lies_in_domain(qr.intersection, triangulation)) {
177 if (interior_simplex_map.emplace(face, qr.intersection).second) queue.emplace(face);
179 auto qrb = oracle.intersects_boundary(cof, triangulation);
181 mt_inserted_list.push_back(MT_inserted_info(qrb, cof,
true));
183 if (qrb.success) boundary_simplex_map.emplace(cof, qrb.intersection);