add set_infinite_vertex to Triangulation_3 and use it with copy_tds

the 2D version already exists
This commit is contained in:
Sébastien Loriot 2013-04-12 16:04:59 +02:00
parent f915998b2f
commit 498492e770
7 changed files with 21 additions and 11 deletions

View File

@ -91,7 +91,7 @@ void make_one_run(const char* filename){
//copy triangulation for familly alpha-shape
WDT T1;
T1.infinite_vertex() = T1.tds().copy_tds( wfixed_as.tds(), wfixed_as.infinite_vertex() );
T1.set_infinite_vertex( T1.tds().copy_tds( wfixed_as.tds(), wfixed_as.infinite_vertex() ) );
std::cout << "Build familly weighted alpha complex" << std::endl;
time.start();
WAS w_as(T1,0,WAS::GENERAL);
@ -102,7 +102,7 @@ void make_one_run(const char* filename){
//copy triangulation for familly alpha-shape
WDT_f T1f;
T1f.infinite_vertex() = T1f.tds().copy_tds(wfixed_as.tds(),wfixed_as.infinite_vertex());
T1f.set_infinite_vertex( T1f.tds().copy_tds(wfixed_as.tds(),wfixed_as.infinite_vertex()) );
std::cout << "Build familly filtered weighted alpha complex" << std::endl;
time.start();

View File

@ -217,7 +217,7 @@ void test_dynamic_insert(const std::list<Weighted_point >& lst)
// std::cout << ++k << " " << std::flush;
dynamic_as.insert(*it);
WFixed_DT tr_copy;
tr_copy.infinite_vertex() = tr_copy.tds().copy_tds( dynamic_as.tds(), dynamic_as.infinite_vertex() );
tr_copy.set_infinite_vertex( tr_copy.tds().copy_tds( dynamic_as.tds(), dynamic_as.infinite_vertex() ) );
WFixed_AS static_as (tr_copy);
compare_all(dynamic_as,static_as);
}
@ -234,7 +234,7 @@ void test_dynamic_remove(const std::list<Weighted_point >& lst)
{
// std::cout << ++k << " " << std::flush;
WFixed_DT tr_copy;
tr_copy.infinite_vertex() = tr_copy.tds().copy_tds( dynamic_as.tds(), dynamic_as.infinite_vertex() );
tr_copy.set_infinite_vertex( tr_copy.tds().copy_tds( dynamic_as.tds(), dynamic_as.infinite_vertex() ) );
WFixed_AS static_as( tr_copy );
compare_all(dynamic_as,static_as);
dynamic_as.remove(dynamic_as.finite_vertices_begin());
@ -262,7 +262,7 @@ void make_one_run(const char* filename){
//copy triangulation for familly alpha-shape
WDT T1;
T1.infinite_vertex() = T1.tds().copy_tds( wfixed_as.tds(),wfixed_as.infinite_vertex() );
T1.set_infinite_vertex( T1.tds().copy_tds( wfixed_as.tds(),wfixed_as.infinite_vertex() ) );
std::cout << "Build familly weighted alpha complex" << std::endl;
WAS w_as(T1,0,WAS::GENERAL);
@ -278,7 +278,7 @@ void make_one_run(const char* filename){
//---Test alpha shape
Fixed_DT delaunay0(lst.begin(),lst.end());
DT delaunay1;
delaunay1.infinite_vertex() = delaunay1.tds().copy_tds( delaunay0.tds(),delaunay0.infinite_vertex() );
delaunay1.set_infinite_vertex( delaunay1.tds().copy_tds( delaunay0.tds(),delaunay0.infinite_vertex() ) );
std::cout << "Build Fixed alpha complex" << std::endl;
Fixed_AS fixed_as(delaunay0);

View File

@ -1071,7 +1071,8 @@ Point circumcenter(Face_handle f) const;
/// @{
/*!
\cgalAdvanced
\cgalAdvanced This method is meant to be used only if you have done a low-level operation on the underlying tds that invalidated the infinite vertex.
Sets the infinite vertex.
*/
void set_infinite_vertex(const Vertex_handle& v);

View File

@ -41,8 +41,8 @@ int main()
DT2_epic dt2_epic;
dt2_epic.insert(points.begin(), points.end());
DT2_epec dt2_epec;
dt2_epec.infinite_vertex() =
dt2_epec.tds().copy_tds( dt2_epic.tds(),dt2_epic.infinite_vertex(), Convert_vertex(), Convert_face() );
dt2_epec.set_infinite_vertex(
dt2_epec.tds().copy_tds( dt2_epic.tds(),dt2_epic.infinite_vertex(), Convert_vertex(), Convert_face() ) );
CGAL_assertion( dt2_epec.is_valid() );
}

View File

@ -305,6 +305,12 @@ Returns the infinite vertex.
*/
Vertex_handle infinite_vertex();
/*!
\cgalAdvanced This method is meant to be used only if you have done a low-level operation on the underlying tds that invalidated the infinite vertex.
Sets the infinite vertex.
*/
void set_infinite_vertex(Vertex_handle v);
/*!
Returns a cell incident to the infinite vertex.
*/

View File

@ -40,8 +40,8 @@ int main()
DT3_epic dt3_epic(points.begin(), points.end());
DT3_epec dt3_epec;
dt3_epec.infinite_vertex() =
dt3_epec.tds().copy_tds( dt3_epic.tds(),dt3_epic.infinite_vertex(), Convert_vertex(), Convert_cell() );
dt3_epec.set_infinite_vertex(
dt3_epec.tds().copy_tds( dt3_epic.tds(),dt3_epic.infinite_vertex(), Convert_vertex(), Convert_cell() ) );
CGAL_assertion( dt3_epec.is_valid() );
}

View File

@ -411,6 +411,9 @@ public:
Vertex_handle infinite_vertex() const
{ return infinite; }
void set_infinite_vertex(Vertex_handle v)
{ infinite=v;}
Cell_handle infinite_cell() const
{