mirror of https://github.com/CGAL/cgal
One priority queue per dimension
This commit is contained in:
parent
341f17a49c
commit
0a0714aa44
|
|
@ -780,7 +780,10 @@ public:
|
|||
std::vector<Simplex_and_alpha>,
|
||||
std::greater<Simplex_and_alpha> > AATC_pq;
|
||||
|
||||
AATC_pq pqueue;
|
||||
// One queue per dimension, from intrinsic dim (index = 0) to
|
||||
// ambiant dim (index = ambiant - intrinsic dim)
|
||||
std::vector<AATC_pq> 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<std::size_t>::max())
|
||||
continue;
|
||||
|
||||
int simplex_dim = s.size();
|
||||
|
||||
// P: points whose star does not contain "s"
|
||||
std::vector<std::size_t> 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue