mirror of https://github.com/CGAL/cgal
optimizations about vtuning
This commit is contained in:
parent
44b6c51828
commit
379bb331cf
|
|
@ -161,7 +161,7 @@ protected:
|
||||||
const T_3* tr;
|
const T_3* tr;
|
||||||
Compare_vertex_handle(const T_3* tr) : tr(tr) {}
|
Compare_vertex_handle(const T_3* tr) : tr(tr) {}
|
||||||
bool operator()(const Vertex_handle va, const Vertex_handle vb) const {
|
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;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1530,12 +1530,18 @@ private:
|
||||||
auto tetrahedron =
|
auto tetrahedron =
|
||||||
typename Geom_traits::Tetrahedron_3{tr.point(n_ch->vertex(0)), tr.point(n_ch->vertex(1)),
|
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))};
|
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) {
|
if(std::any_of(fh_region.begin(), fh_region.end(), [&](auto fh) {
|
||||||
const auto v0 = fh->vertex(0)->info().vertex_handle_3d;
|
const auto v0 = fh->vertex(0)->info().vertex_handle_3d;
|
||||||
const auto v1 = fh->vertex(1)->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 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)};
|
const auto triangle = typename Geom_traits::Triangle_3{tr.point(v0), tr.point(v1), tr.point(v2)};
|
||||||
|
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());
|
return does_tetrahedron_intersect_triangle_interior(tetrahedron, triangle, tr.geom_traits());
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}))
|
}))
|
||||||
{
|
{
|
||||||
intersecting_cells.insert(n_ch);
|
intersecting_cells.insert(n_ch);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue