]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/PartSet/PartSet_PreviewPlanes.cpp
Salome HOME
1. Correction for perfomance problem by Apply button state update: do not listen...
[modules/shaper.git] / src / PartSet / PartSet_PreviewPlanes.cpp
index f7735336a7cdc168121d8e34193a8aa5915a1c29..424deec9d0356aeeed7f034cc0d266b4f86ae6cf 100755 (executable)
@@ -42,6 +42,25 @@ bool PartSet_PreviewPlanes::hasVisualizedBodies(ModuleBase_IWorkshop* theWorksho
   return aBodyIsVisualized;
 }
 
+bool PartSet_PreviewPlanes::hasVisualizedSketch(ModuleBase_IWorkshop* theWorkshop)
+{
+  bool aSketchIsVisualized = false;
+
+  XGUI_Workshop* aWorkshop = XGUI_Tools::workshop(theWorkshop);
+  XGUI_Displayer* aDisp = aWorkshop->displayer();
+  QObjectPtrList aDisplayed = aDisp->displayedObjects();
+  foreach (ObjectPtr anObj, aDisplayed) {
+    ResultPtr aResult = std::dynamic_pointer_cast<ModelAPI_Result>(anObj);
+    if (aResult.get() != NULL) {
+      FeaturePtr aFeature = ModelAPI_Feature::feature(aResult);
+      aSketchIsVisualized = aFeature.get() && aFeature->getKind() == SketchPlugin_Sketch::ID();
+      if (aSketchIsVisualized)
+        break;
+    }
+  }
+  return aSketchIsVisualized;
+}
+
 void PartSet_PreviewPlanes::erasePreviewPlanes(ModuleBase_IWorkshop* theWorkshop)
 {
   if (myPreviewDisplayed) {