From f324943fba613e48477f4fbc84afe07ec5e1f8f2 Mon Sep 17 00:00:00 2001 From: ange-clement Date: Thu, 28 Sep 2023 17:16:03 +0200 Subject: [PATCH 1/2] Added item in dropdown for selected edges + Fixed logic tautology when selecting edges before mesh --- .../demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp b/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp index c17f4879f1dc..7c5d37c8f9ff 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp +++ b/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp @@ -368,9 +368,9 @@ std::optional Mesh_3_plugin::get_items_or_return_error_string() const { auto poly_items_ptr = std::get_if(&items.value()); auto image_items_ptr = std::get_if(&items.value()); - if(poly_items_ptr && poly_items_ptr == nullptr) + if(poly_items_ptr != nullptr) poly_items_ptr->polylines_item = polylines_item; - else if(image_items_ptr && image_items_ptr == nullptr) + else if(image_items_ptr != nullptr ) image_items_ptr->polylines_item = polylines_item; } @@ -663,6 +663,8 @@ void Mesh_3_plugin::mesh_3(const Mesh_type mesh_type, ui.protectEdges->addItem(boundary_only.first, v(boundary_only.second)); } else ui.protectEdges->addItem(sharp_edges.first, v(sharp_edges.second)); + if (polylines_item != nullptr) + ui.protectEdges->addItem(input_polylines.first, v(input_polylines.second)); } else if (items->index() == IMAGE_MESH_ITEMS) { if (polylines_item != nullptr) { ui.protectEdges->addItem(input_polylines.first, QVariant::fromValue(input_polylines.second)); @@ -729,6 +731,7 @@ void Mesh_3_plugin::mesh_3(const Mesh_type mesh_type, const auto pe_flags = ui.protectEdges->currentData().value(); protect_borders = ui.protect->isChecked() && pe_flags.testFlag(BORDERS); protect_features = ui.protect->isChecked() && pe_flags.testFlag(FEATURES); + const bool protect_polylines = ui.protect->isChecked() && polylines_item != nullptr; const bool detect_connected_components = ui.detectComponents->isChecked(); const int manifold = (ui.manifoldCheckBox->isChecked() ? 1 : 0) + @@ -811,7 +814,7 @@ void Mesh_3_plugin::mesh_3(const Mesh_type mesh_type, { thread = cgal_code_mesh_3( polyhedrons, - (polylines_item == nullptr) ? plc : polylines_item->polylines, + protect_polylines ? polylines_item->polylines : plc, bounding_polyhedron, item_name, angle, From 685caf955d43580cdaba25fd1c35ca455f1d5626 Mon Sep 17 00:00:00 2001 From: ange-clement Date: Fri, 29 Sep 2023 10:54:53 +0200 Subject: [PATCH 2/2] Renamed variable for clarity --- .../demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp b/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp index 7c5d37c8f9ff..a146afb007a0 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp +++ b/Polyhedron/demo/Polyhedron/Plugins/Mesh_3/Mesh_3_plugin.cpp @@ -778,7 +778,7 @@ void Mesh_3_plugin::mesh_3(const Mesh_type mesh_type, sm_items.removeAll(make_not_null(bounding_sm_item)); } - Scene_polylines_item::Polylines_container plc; + Scene_polylines_item::Polylines_container polylines_empty_container; SMesh* bounding_polyhedron = (bounding_sm_item == nullptr) ? nullptr : bounding_sm_item->polyhedron(); @@ -814,7 +814,7 @@ void Mesh_3_plugin::mesh_3(const Mesh_type mesh_type, { thread = cgal_code_mesh_3( polyhedrons, - protect_polylines ? polylines_item->polylines : plc, + protect_polylines ? polylines_item->polylines : polylines_empty_container, bounding_polyhedron, item_name, angle, @@ -881,11 +881,11 @@ void Mesh_3_plugin::mesh_3(const Mesh_type mesh_type, ? image_item->image_weights() : nullptr; - Scene_polylines_item::Polylines_container plc; + Scene_polylines_item::Polylines_container polylines_empty_container; thread = cgal_code_mesh_3( pImage, - (img_polylines_item == nullptr) ? plc : img_polylines_item->polylines, + (img_polylines_item == nullptr) ? polylines_empty_container : img_polylines_item->polylines, angle, facets_sizing, facets_min_sizing,