diff --git a/Tangential_complex/include/CGAL/Tangential_complex.h b/Tangential_complex/include/CGAL/Tangential_complex.h index 6b2a27e3769..59ac7edce50 100644 --- a/Tangential_complex/include/CGAL/Tangential_complex.h +++ b/Tangential_complex/include/CGAL/Tangential_complex.h @@ -780,7 +780,10 @@ public: std::vector, std::greater > AATC_pq; - AATC_pq pqueue; + // One queue per dimension, from intrinsic dim (index = 0) to + // ambiant dim (index = ambiant - intrinsic dim) + std::vector pqueues; + pqueues.resize(m_ambient_dim - m_intrinsic_dimension + 1); // For each triangulation for (std::size_t idx = 0 ; idx < m_points.size() ; ++idx) @@ -796,6 +799,8 @@ public: if (*s.rbegin() == std::numeric_limits::max()) continue; + int simplex_dim = s.size(); + // P: points whose star does not contain "s" std::vector P; is_simplex_consistent(idx, s, std::back_inserter(P), true); @@ -826,8 +831,8 @@ public: Vector thickening_v = k_diff_points(inters_global, m_points[p]); FT squared_alpha = k_sqlen(thickening_v); - pqueue.push(Simplex_and_alpha( - p, full_simplex, squared_alpha, thickening_v)); + pqueues[simplex_dim - m_intrinsic_dimension].push( + Simplex_and_alpha(p, full_simplex, squared_alpha, thickening_v)); } } }