mirror of https://github.com/CGAL/cgal
update cell selector after collapse
This commit is contained in:
parent
7a0cb92e43
commit
1891985a82
|
|
@ -744,10 +744,11 @@ void merge_surface_patch_indices(const typename C3t3::Facet& f1,
|
|||
}
|
||||
}
|
||||
|
||||
template<typename C3t3>
|
||||
template<typename C3t3, typename CellSelector>
|
||||
typename C3t3::Vertex_handle
|
||||
collapse(const typename C3t3::Cell_handle ch,
|
||||
const int to, const int from,
|
||||
CellSelector& cell_selector,
|
||||
C3t3& c3t3)
|
||||
{
|
||||
typedef typename C3t3::Triangulation Tr;
|
||||
|
|
@ -913,8 +914,7 @@ collapse(const typename C3t3::Cell_handle ch,
|
|||
for (Cell_handle cell_to_remove : cells_to_remove)
|
||||
{
|
||||
// remove cell
|
||||
if (c3t3.is_in_complex(cell_to_remove))
|
||||
c3t3.remove_from_complex(cell_to_remove);
|
||||
treat_before_delete(cell_to_remove, cell_selector, c3t3);
|
||||
c3t3.triangulation().tds().delete_cell(cell_to_remove);
|
||||
}
|
||||
|
||||
|
|
@ -927,9 +927,10 @@ collapse(const typename C3t3::Cell_handle ch,
|
|||
}
|
||||
|
||||
|
||||
template<typename C3t3>
|
||||
template<typename C3t3, typename CellSelector>
|
||||
typename C3t3::Vertex_handle collapse(typename C3t3::Edge& edge,
|
||||
const Collapse_type& collapse_type,
|
||||
CellSelector& cell_selector,
|
||||
C3t3& c3t3)
|
||||
{
|
||||
typedef typename C3t3::Vertex_handle Vertex_handle;
|
||||
|
|
@ -953,7 +954,7 @@ typename C3t3::Vertex_handle collapse(typename C3t3::Edge& edge,
|
|||
vh0->set_point(new_position);
|
||||
vh1->set_point(new_position);
|
||||
|
||||
vh = collapse(edge.first, edge.second, edge.third, c3t3);
|
||||
vh = collapse(edge.first, edge.second, edge.third, cell_selector, c3t3);
|
||||
c3t3.set_dimension(vh, (std::min)(dim_vh0, dim_vh1));
|
||||
}
|
||||
else //Collapse at vertex
|
||||
|
|
@ -961,7 +962,7 @@ typename C3t3::Vertex_handle collapse(typename C3t3::Edge& edge,
|
|||
if (collapse_type == TO_V1)
|
||||
{
|
||||
vh0->set_point(p1);
|
||||
vh = collapse(edge.first, edge.third, edge.second, c3t3);
|
||||
vh = collapse(edge.first, edge.third, edge.second, cell_selector, c3t3);
|
||||
c3t3.set_dimension(vh, (std::min)(dim_vh0, dim_vh1));
|
||||
}
|
||||
else //Collapse at v0
|
||||
|
|
@ -969,7 +970,7 @@ typename C3t3::Vertex_handle collapse(typename C3t3::Edge& edge,
|
|||
if (collapse_type == TO_V0)
|
||||
{
|
||||
vh1->set_point(p0);
|
||||
vh = collapse(edge.first, edge.second, edge.third, c3t3);
|
||||
vh = collapse(edge.first, edge.second, edge.third, cell_selector, c3t3);
|
||||
c3t3.set_dimension(vh, (std::min)(dim_vh0, dim_vh1));
|
||||
}
|
||||
else
|
||||
|
|
@ -1133,7 +1134,7 @@ typename C3t3::Vertex_handle collapse_edge(typename C3t3::Edge& edge,
|
|||
if (in_cx)
|
||||
nb_valid_collapse++;
|
||||
#endif
|
||||
return collapse(edge, collapse_type, c3t3);
|
||||
return collapse(edge, collapse_type, cell_selector, c3t3);
|
||||
}
|
||||
}
|
||||
#ifdef CGAL_DEBUG_TET_REMESHING_IN_PLUGIN
|
||||
|
|
|
|||
Loading…
Reference in New Issue