Subject: CGAL users discussion list
List archive
- From: Panagiotis Foteinos <>
- To:
- Subject: [cgal-discuss] 3D Delaunay Triangulation
- Date: Tue, 12 Jan 2010 15:10:51 -0500
Hello yall!
I am developing my own Delaunay refinement technique and I am stuck debugging. Therefore, I would like to be sure that I understand quite well how CGAL updates the new cells.
In few words, I would like to know after removal or insertion which cells are not valid any more.
A valid cell is a cell that either does not belong to the triangulation any more or accommodates a different tetrahedron than it accommodated before the operation (removal or insertion).
........
........
Delaunay_Triangulation_3 T;
My_Removal(Vertex_handle v)
{
1) std::list<Cell_handle> to_be_invalid_cells; //these are the only cells that will not be valid after the removal.
2) T.incident_cells(v, invalid_cells);
//do something with those incident cells stored in to_be_invalid_cells;
3) std::list<Vertex_handle> vertices_list; //the vertices that the new cells will consist of.
4) T.incident_vertices(v, vertices_list);
5) T.remove(v); //remove the vertex for real.
6) find the cells that consist only with the vertices stored in vertices_list; //these are the new cells.
//do something with the new cells found right above;
}
My_Insertion(Point p)
{
1) std::list<Cell_handle> to_be_invalid_cells; //these are the only cells that are not be valid after the insertion.
2) T.find_conflicts(v, cells_list);
//do something with those cells stored in to_be_invalid_cells;
3) Vertex_handle v = T.insert(p); //insert the point for real.
4) std::list<Cell_handle> new_cells; //these will be the new cells.
5) T.incident_cells(v, new_cells);
//do something with the new cells found right above;
}
Do I capture the to be invalid and new cells correctly?
Hope I was clear,
Regards,
Panagiotis
- [cgal-discuss] 3D Delaunay Triangulation, Panagiotis Foteinos, 01/12/2010
Archive powered by MHonArc 2.6.16.