From 35f3d0a6f0a54cd9d9e804b6a414a2c15fafe345 Mon Sep 17 00:00:00 2001 From: Tri-Thien TRUONG Date: Sat, 25 Apr 2020 18:29:13 +0200 Subject: [PATCH] desactivage filtre --- ColorimetricSegmenter.cpp | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/ColorimetricSegmenter.cpp b/ColorimetricSegmenter.cpp index 4abe6d2..ff62d8f 100644 --- a/ColorimetricSegmenter.cpp +++ b/ColorimetricSegmenter.cpp @@ -71,8 +71,30 @@ void ColorimetricSegmenter::onNewSelection( const ccHObject::Container &selected } // Only enable our action if something is selected. - m_action_filterRgb->setEnabled(!selectedEntities.empty()); - m_action_filterHSV->setEnabled(!selectedEntities.empty()); + bool activateColorFilters = false; + bool activateScalarFilter = false; + for (ccHObject *entity : selectedEntities) + { + if (entity->isKindOf(CC_TYPES::POINT_CLOUD)) + { + if (entity->hasColors()) { + activateColorFilters = true; + } + else if (entity->hasDisplayedScalarField()) { + activateScalarFilter = true; + } + } + } + + m_action_filterRgb->setEnabled(false); + m_action_filterHSV->setEnabled(false); + + //Activate only if only one of them is activated + if ((activateColorFilters != activateScalarFilter) && !selectedEntities.empty()) { + m_action_filterRgb->setEnabled(activateColorFilters); + m_action_filterHSV->setEnabled(activateColorFilters); + } + } // This method returns all the 'actions' your plugin can perform.