]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Merge remote-tracking branch 'remotes/origin/master' into SketchSolver
authorazv <azv@opencascade.com>
Thu, 26 Jun 2014 12:34:51 +0000 (16:34 +0400)
committerazv <azv@opencascade.com>
Thu, 26 Jun 2014 12:34:51 +0000 (16:34 +0400)
src/PartSet/PartSet_Module.cpp
src/PartSet/PartSet_OperationSketch.cpp
src/PartSet/PartSet_OperationSketch.h
src/PartSet/PartSet_OperationSketchBase.cpp
src/PartSet/PartSet_OperationSketchBase.h

index 5ecb14ba79ba24217af16a52faad63b3fcaaa982..2e410b5004e723c3f8939230c68020536cd0e098 100644 (file)
@@ -317,16 +317,14 @@ void PartSet_Module::onFeatureConstructed(FeaturePtr theFeature, int theMode)
     FeaturePtr aSketch;
     PartSet_OperationSketchBase* aPrevOp = dynamic_cast<PartSet_OperationSketchBase*>(aCurOperation);
     if (aPrevOp) {
-      std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> > aList = aPrevOp->subPreview();
+      std::list<FeaturePtr> aList = aPrevOp->subFeatures();
       XGUI_Displayer* aDisplayer = myWorkshop->displayer();
       std::list<int> aModes = aPrevOp->getSelectionModes(aPrevOp->feature());
 
-      std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> >::const_iterator
-                                                             anIt = aList.begin(), aLast = aList.end();
-      for (; anIt != aLast; anIt++) {
-        FeaturePtr aFeature = (*anIt).first;
-        visualizePreview(aFeature, false, false);
-      }
+      std::list<FeaturePtr>::const_iterator anIt = aList.begin(),
+                                            aLast = aList.end();
+      for (; anIt != aLast; anIt++)
+        visualizePreview(*anIt, false, false);
       aDisplayer->updateViewer();
     }
   }
@@ -477,23 +475,19 @@ void PartSet_Module::updateCurrentPreview(const std::string& theCmdId)
   if (!aFeature || aFeature->getKind() != theCmdId)
     return;
 
-  std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> > aList = aPreviewOp->subPreview();
+  std::list<FeaturePtr> aList = aPreviewOp->subFeatures();
   XGUI_Displayer* aDisplayer = myWorkshop->displayer();
   std::list<int> aModes = aPreviewOp->getSelectionModes(aPreviewOp->feature());
 
-  std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> >::const_iterator
-                                                         anIt = aList.begin(), aLast = aList.end();
+  std::list<FeaturePtr>::const_iterator anIt = aList.begin(), 
+                                        aLast = aList.end();
   for (; anIt != aLast; anIt++) {
-    FeaturePtr aFeature = (*anIt).first;
     boost::shared_ptr<SketchPlugin_Feature> aSPFeature = 
-      boost::dynamic_pointer_cast<SketchPlugin_Feature>((*anIt).first);
+      boost::dynamic_pointer_cast<SketchPlugin_Feature>(*anIt);
     if (!aSPFeature)
       continue;
-
-    Handle(AIS_InteractiveObject) anAIS = aSPFeature->getAISShape(aDisplayer->getAISObject(aFeature));
-    if (!anAIS.IsNull())
-      aDisplayer->redisplay(aFeature, anAIS, false);
-    aDisplayer->activateInLocalContext(aFeature, aModes, false);
+    visualizePreview(*anIt, true, false);
+    aDisplayer->activateInLocalContext(*anIt, aModes, false);
   }
   aDisplayer->updateViewer();
 }
index b035dca5ca7c26e6c8f2b0b1cddf42856419fdea..87f7635a58c1798cff6f4ec9b5fd86b94778829b 100644 (file)
@@ -137,29 +137,15 @@ void PartSet_OperationSketch::mouseMoved(QMouseEvent* theEvent, Handle(V3d_View)
   }
 }
 
-std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> >
-                                                        PartSet_OperationSketch::subPreview() const
+std::list<FeaturePtr> PartSet_OperationSketch::subFeatures() const
 {
-  std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> > aPreviewMap;
-
-  boost::shared_ptr<SketchPlugin_Feature> aFeature;
-
   boost::shared_ptr<ModelAPI_Data> aData = feature()->data();
   if (!aData->isValid())
-    return aPreviewMap;
+    return std::list<FeaturePtr>();
   boost::shared_ptr<ModelAPI_AttributeRefList> aRefList =
         boost::dynamic_pointer_cast<ModelAPI_AttributeRefList>(aData->attribute(SKETCH_ATTR_FEATURES));
 
-  std::list<FeaturePtr > aFeatures = aRefList->list();
-  std::list<FeaturePtr >::const_iterator anIt = aFeatures.begin(),
-                                                                  aLast = aFeatures.end();
-  for (; anIt != aLast; anIt++) {
-    aFeature = boost::dynamic_pointer_cast<SketchPlugin_Feature>(*anIt);
-    boost::shared_ptr<GeomAPI_Shape> aPreview = aFeature->preview();
-    if (aPreview)
-      aPreviewMap[aFeature] = aPreview;
-  }
-  return aPreviewMap;
+  return aRefList->list();
 }
 
 void PartSet_OperationSketch::stopOperation()
index 37c0482cac0275bd2be5912d6103c1bf56e0547e..df7243a49fa6a4978e438de4fdb7b77e82a56227 100644 (file)
@@ -68,10 +68,9 @@ public:
   /// \param theEvent the mouse event
   virtual void mouseMoved(QMouseEvent* theEvent, Handle_V3d_View theView);
 
-  /// Returns the map of the operation previews including the nested feature previews
-  /// \return the map of feature to the feature preview
-  virtual std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> >
-                                                                           subPreview() const;
+  /// Returns the list of the nested features
+  /// \return the list of subfeatures
+  virtual std::list<FeaturePtr> subFeatures() const;
 
   /// Virtual method called when operation stopped - committed or aborted.
   /// Emits a signal to hide the preview of the operation
index 60396b8146cb94edf019f9132ee383942275f1b5..117195468dec6912ae0ce6843be9687ca736314d 100644 (file)
@@ -38,10 +38,9 @@ boost::shared_ptr<GeomAPI_Shape> PartSet_OperationSketchBase::preview(
   return aFeature->preview();
 }
 
-std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> >
-                                                     PartSet_OperationSketchBase::subPreview() const
+std::list<FeaturePtr> PartSet_OperationSketchBase::subFeatures() const
 {
-  return std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> >();
+  return std::list<FeaturePtr>();
 }
 
 std::list<int> PartSet_OperationSketchBase::getSelectionModes(FeaturePtr theFeature) const
index f5caebdbf968649f550e7a8b2e6c4054890d0e38..8fa6439d7ff636505e4aa484783f1eaaf3848717 100644 (file)
 #include <ModuleBase_Operation.h>
 
 #include <XGUI_Constants.h>
+#include <XGUI_Displayer.h>
 
 #include <QObject>
 
+#include <AIS_InteractiveObject.hxx>
+
 #include <map>
 
 class Handle_V3d_View;
@@ -48,9 +51,9 @@ public:
   /// \param theFeature the feature object to obtain the preview
   static boost::shared_ptr<GeomAPI_Shape> preview(FeaturePtr theFeature);
 
-  /// Returns the map of the operation previews including the nested feature previews
-  /// \return the map of feature to the feature preview
-  virtual std::map<FeaturePtr, boost::shared_ptr<GeomAPI_Shape> > subPreview() const;
+  /// Returns the list of the nested features
+  /// \return the list of subfeatures
+  virtual std::list<FeaturePtr> subFeatures() const;
 
   /// Returns the operation local selection mode
   /// \param theFeature the feature object to get the selection mode