Salome HOME
Issue #2309 Possibility to hide faces : transparency using
[modules/shaper.git] / src / PartSet / PartSet_Module.cpp
index f6131c3fe37b61a13c8aa19504a8b202efcfa33f..1455f1ab08e55363ff68b2c20a1d1b38ac2e320f 100755 (executable)
 #include <GeomDataAPI_Point.h>
 #include <GeomDataAPI_Dir.h>
 
-#include <XGUI_Displayer.h>
-#include <XGUI_Workshop.h>
-#include <XGUI_OperationMgr.h>
-#include <XGUI_PropertyPanel.h>
-#include <XGUI_ModuleConnector.h>
+#include <XGUI_ActiveControlMgr.h>
+#include <XGUI_ActiveControlSelector.h>
+#include <XGUI_ActionsMgr.h>
 #include <XGUI_ContextMenuMgr.h>
-#include <XGUI_Tools.h>
-#include <XGUI_ObjectsBrowser.h>
-#include <XGUI_SelectionMgr.h>
+#include <XGUI_CustomPrs.h>
 #include <XGUI_DataModel.h>
+#include <XGUI_Displayer.h>
 #include <XGUI_ErrorMgr.h>
-#include <XGUI_CustomPrs.h>
+#include <XGUI_FacesPanelSelector.h>
+#include <XGUI_ModuleConnector.h>
+#include <XGUI_ObjectsBrowser.h>
+#include <XGUI_OperationMgr.h>
+#include <XGUI_PropertyPanel.h>
 #include <XGUI_SelectionMgr.h>
-#include <XGUI_ActionsMgr.h>
+#include <XGUI_Tools.h>
+#include <XGUI_Workshop.h>
 
 #include <SketchPlugin_ConstraintAngle.h>
 #include <SketchPlugin_ConstraintLength.h>
@@ -189,6 +191,11 @@ PartSet_Module::PartSet_Module(ModuleBase_IWorkshop* theWshop)
   Config_PropManager::registerProp("Visualization", "sketch_preview_plane",
                           "Color of sketch plane", Config_Prop::Color,
                           PartSet_CustomPrs::OPERATION_SKETCH_PLANE());
+
+  Config_PropManager::registerProp("Visualization", "hidden_face_transparency",
+                                   "Hidden faces transparency",
+                                   Config_Prop::Double,
+                                   "0.8");
 }
 
 PartSet_Module::~PartSet_Module()
@@ -223,6 +230,17 @@ void PartSet_Module::deactivateSelectionFilters()
   }
 }
 
+void PartSet_Module::updateActiveSelectionFilters()
+{
+  XGUI_Workshop* aWorkshop = XGUI_Tools::workshop(workshop());
+  XGUI_ActiveControlSelector* anActiveSelector = aWorkshop->activeControlMgr()->activeSelector();
+
+  if (anActiveSelector && anActiveSelector->getType() == XGUI_FacesPanelSelector::Type())
+    sketchMgr()->deactivateSelectionFilters();
+  else
+    sketchMgr()->activateSelectionFilters();
+}
+
 void PartSet_Module::storeSelection()
 {
   // cash is used only to restore selection, so it should be filled in storeSelection and