optimizations about vtuning

This commit is contained in:
Laurent Rineau 2024-03-18 17:22:37 +01:00
parent 44b6c51828
commit 379bb331cf
2 changed files with 8 additions and 2 deletions

View File

@ -161,7 +161,7 @@ protected:
const T_3* tr;
Compare_vertex_handle(const T_3* tr) : tr(tr) {}
bool operator()(const Vertex_handle va, const Vertex_handle vb) const {
return tr->compare_xyz(tr->point(va), tr->point(vb)) == SMALLER;
return va < vb;
}
};

View File

@ -1530,12 +1530,18 @@ private:
auto tetrahedron =
typename Geom_traits::Tetrahedron_3{tr.point(n_ch->vertex(0)), tr.point(n_ch->vertex(1)),
tr.point(n_ch->vertex(2)), tr.point(n_ch->vertex(3))};
auto tet_bbox = tetrahedron.bbox();
if(std::any_of(fh_region.begin(), fh_region.end(), [&](auto fh) {
const auto v0 = fh->vertex(0)->info().vertex_handle_3d;
const auto v1 = fh->vertex(1)->info().vertex_handle_3d;
const auto v2 = fh->vertex(2)->info().vertex_handle_3d;
const auto triangle = typename Geom_traits::Triangle_3{tr.point(v0), tr.point(v1), tr.point(v2)};
return does_tetrahedron_intersect_triangle_interior(tetrahedron, triangle, tr.geom_traits());
const auto tri_bbox = triangle.bbox();
if(CGAL::do_overlap(tet_bbox, tri_bbox)) {
return does_tetrahedron_intersect_triangle_interior(tetrahedron, triangle, tr.geom_traits());
} else {
return false;
}
}))
{
intersecting_cells.insert(n_ch);