]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/PartSet/PartSet_Module.cpp
Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / PartSet / PartSet_Module.cpp
index c53208916bd95a0ab065bc8d194fc53333539ace..1a0e84dd5c0125236e3df181065eb3af7b6bc42f 100644 (file)
@@ -103,8 +103,11 @@ void PartSet_Module::onOperationStarted()
   ModuleBase_Operation* anOperation = myWorkshop->operationMgr()->currentOperation();
 
   PartSet_OperationSketchBase* aPreviewOp = dynamic_cast<PartSet_OperationSketchBase*>(anOperation);
-  if (aPreviewOp)
+  if (aPreviewOp) {
     visualizePreview(true);
+    connect(aPreviewOp, SIGNAL(viewerProjectionChange(double, double, double)),
+            this, SLOT(onViewerProjectionChange(double, double, double)));
+  }
 }
 
 void PartSet_Module::onOperationStopped(ModuleBase_Operation* theOperation)
@@ -124,13 +127,21 @@ void PartSet_Module::onViewSelectionChanged()
   if (aPreviewOp) {
     XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
     if (aViewer) {
-      AIS_ListOfInteractive aList;
-      aViewer->getSelectedObjects(aList);
-      aPreviewOp->setSelectedObjects(aList);
+      NCollection_List<TopoDS_Shape> aList;
+      aViewer->getSelectedShapes(aList);
+      aPreviewOp->setSelectedShapes(aList);
     }
   }
 }
 
+void PartSet_Module::onViewerProjectionChange(double theX, double theY, double theZ)
+{
+  XGUI_Viewer* aViewer = myWorkshop->mainWindow()->viewer();
+  if (aViewer) {
+    aViewer->setViewProjection(theX, theY, theZ);
+  }
+}
+
 void PartSet_Module::visualizePreview(bool isDisplay)
 {
   ModuleBase_Operation* anOperation = myWorkshop->operationMgr()->currentOperation();
@@ -147,6 +158,6 @@ void PartSet_Module::visualizePreview(bool isDisplay)
   }
   else {
     myWorkshop->displayer()->GlobalSelection(false);
-    myWorkshop->displayer()->Erase(anOperation->feature(), aPreviewOp->preview());
+    myWorkshop->displayer()->Erase(anOperation->feature());
   }
 }