diff --git a/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h b/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h index bac1f837ea4..453d27633ae 100644 --- a/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h +++ b/Combinatorial_map/include/CGAL/Combinatorial_map_operations.h @@ -169,12 +169,9 @@ namespace CGAL amap.template basic_link_beta(d1, d2); amap.mark(d1, mark_modified_darts); amap.mark(d2, mark_modified_darts); - if (amap.are_attributes_automatically_managed() && update_attributes) - { - first_modified_darts.push_back(d1); - modified_darts.push_back(d2); - // TODO push only one out of two dart ? - } + first_modified_darts.push_back(d1); + modified_darts.push_back(d2); + // TODO push only one out of two dart ? /*if ( i==1 ) { @@ -190,10 +187,7 @@ namespace CGAL amap.template unlink_beta(d1); CGAL_assertion( !amap.is_marked(d1, mark_modified_darts) ); amap.mark(d1, mark_modified_darts); - if (amap.are_attributes_automatically_managed() && update_attributes) - { - first_modified_darts.push_back(d1); - } + first_modified_darts.push_back(d1); } } } @@ -204,10 +198,7 @@ namespace CGAL amap.template unlink_beta(d2); CGAL_assertion( !amap.is_marked(d2, mark_modified_darts) ); amap.mark(d2, mark_modified_darts); - if (amap.are_attributes_automatically_managed() && update_attributes) - { - modified_darts.push_back(d2); - } + modified_darts.push_back(d2); } } } @@ -221,10 +212,7 @@ namespace CGAL amap.template unlink_beta(d1); CGAL_assertion( !amap.is_marked(d1, mark_modified_darts) ); amap.mark(d1, mark_modified_darts); - if (amap.are_attributes_automatically_managed() && update_attributes) - { - modified_darts.push_back(d1); - } + modified_darts.push_back(d1); } } } @@ -257,16 +245,15 @@ namespace CGAL if ( !amap.is_whole_map_unmarked(mark_modified_darts) ) { for ( typename std::deque:: - iterator it=modified_darts.begin(); + iterator it=modified_darts.begin(); it!=modified_darts.end(); ++it ) amap.unmark(*it, mark_modified_darts); if ( i==1 ) { for ( typename std::deque:: - iterator it=modified_darts2.begin(); + iterator it=modified_darts2.begin(); it!=modified_darts2.end(); ++it ) amap.unmark(*it, mark_modified_darts); - } } @@ -617,12 +604,9 @@ namespace CGAL amap.template basic_link_beta_for_involution(d1, d2); amap.mark(d1, mark_modified_darts); amap.mark(d2, mark_modified_darts); - if ( amap.are_attributes_automatically_managed() ) - { - modified_darts.push_back(d1); - modified_darts.push_back(d2); - // TODO push only one out of two dart ? - } + modified_darts.push_back(d1); + modified_darts.push_back(d2); + // TODO push only one out of two dart ? } else { @@ -631,10 +615,7 @@ namespace CGAL amap.template unlink_beta(d1); CGAL_assertion( !amap.is_marked(d1, mark_modified_darts) ); amap.mark(d1, mark_modified_darts); - if ( amap.are_attributes_automatically_managed() ) - { - modified_darts.push_back(d1); - } + modified_darts.push_back(d1); } } } @@ -645,10 +626,7 @@ namespace CGAL amap.template unlink_beta(d2); CGAL_assertion( !amap.is_marked(d2, mark_modified_darts) ); amap.mark(d2, mark_modified_darts); - if ( amap.are_attributes_automatically_managed() ) - { - modified_darts.push_back(d2); - } + modified_darts.push_back(d2); } } } @@ -661,10 +639,7 @@ namespace CGAL amap.template unlink_beta(d1); CGAL_assertion( !amap.is_marked(d1, mark_modified_darts) ); amap.mark(d1, mark_modified_darts); - if ( amap.are_attributes_automatically_managed() ) - { - modified_darts.push_back(d1); - } + modified_darts.push_back(d1); } } } diff --git a/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.cpp b/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.cpp index 946923b2b7c..082be0ecff3 100644 --- a/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.cpp +++ b/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.cpp @@ -100,7 +100,6 @@ void MainWindow::connect_actions () QObject::connect(this->volumeList->horizontalHeader(), SIGNAL(sectionClicked(int)), this, SLOT(onHeaderClicked(int))); - QObject::connect(dialogmenger.mengerLevel, SIGNAL(valueChanged(int)), this, SLOT(onMengerChange(int))); QObject::connect(dialogmenger.updateAttributes, SIGNAL(clicked(bool)), @@ -784,6 +783,8 @@ void MainWindow::on_actionMerge_all_volumes_triggered() timer.start(); #endif + scene.lcc->set_update_attributes(false); + Dart_handle prev = scene.lcc->null_handle; for (LCC::Dart_range::iterator it(scene.lcc->darts().begin()), itend=scene.lcc->darts().end(); it!=itend; ) @@ -802,6 +803,8 @@ void MainWindow::on_actionMerge_all_volumes_triggered() ++it; } + scene.lcc->set_update_attributes(true); + #ifdef CGAL_PROFILE_LCC_DEMO timer.stop(); std::cout<<"Time to merge all filled volumes: " @@ -831,7 +834,7 @@ bool MainWindow::is_volume_in_list(LCC::Attribute_handle<3>::type ah) void MainWindow::update_volume_list_add(LCC::Attribute_handle<3>::type ah) { - CGAL_assertion( !is_volume_in_list(ah) ); + // CGAL_assertion( !is_volume_in_list(ah) ); volumeList->disconnect(this); @@ -1165,6 +1168,7 @@ void MainWindow::onMengerCancel() recreate_whole_volume_list(); mengerVolumes.clear(); + update_operations_entries(true); emit(sceneChanged()); } @@ -1274,9 +1278,8 @@ void MainWindow::onMengerInc() for(unsigned int i = nbvolinit; i < (unsigned int)mengerVolumes.size(); i++) { LCC::Attribute_handle<3>::type ah = (scene.lcc)->create_attribute<3>(); - CGAL::Set_i_attribute_functor:: - run(scene.lcc, mengerVolumes[i], ah); - scene.lcc->info<3>(mengerVolumes[i]).color()= + scene.lcc->set_attribute<3>(mengerVolumes[i], ah); + scene.lcc->info<3>(mengerVolumes[i]).color()= (CGAL::Color(myrandom.get_int(0,256), myrandom.get_int(0,256), myrandom.get_int(0,256))); @@ -1780,6 +1783,7 @@ void MainWindow::onSierpinskiCarpetCancel() recreate_whole_volume_list(); sierpinskiCarpetSurfaces.clear(); + update_operations_entries(true); emit(sceneChanged()); } @@ -2554,6 +2558,7 @@ void MainWindow::onSierpinskiTriangleCancel() recreate_whole_volume_list(); sierpinskiTriangleSurfaces.clear(); + update_operations_entries(true); emit(sceneChanged()); } diff --git a/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.h b/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.h index 086fecafe10..19fcbf18bc7 100644 --- a/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.h +++ b/Linear_cell_complex/demo/Linear_cell_complex/MainWindow.h @@ -16,7 +16,7 @@ // $Id$ // // Author(s) : Guillaume Damiand -// Kumar Snehasish +// Contributor(s): Kumar Snehasish // #ifndef MAIN_WINDOW_H #define MAIN_WINDOW_H