Salome HOME
Merge branch 'master' of newgeom:newgeom.git
authorsbh <sergey.belash@opencascade.com>
Mon, 5 May 2014 15:09:46 +0000 (19:09 +0400)
committersbh <sergey.belash@opencascade.com>
Mon, 5 May 2014 15:09:46 +0000 (19:09 +0400)
19 files changed:
.gitignore
eclipse_salome.sh [new file with mode: 0755]
linux_env.sh
salome_env.sh [new file with mode: 0644]
salome_run.sh [new file with mode: 0755]
src/Events/Events_Error.cpp
src/ModuleBase/ModuleBase_Operation.cpp
src/ModuleBase/ModuleBase_Operation.h
src/NewGeom/CMakeLists.txt
src/NewGeom/NewGeom_Module.cpp
src/PartSet/PartSet_Module.cpp
src/PartSet/PartSet_Module.h
src/PartSet/PartSet_OperationSketch.cpp
src/PartSet/PartSet_OperationSketch.h
src/PartSet/PartSet_OperationSketchBase.h
src/PartSet/PartSet_OperationSketchLine.cpp
src/PartSet/PartSet_OperationSketchLine.h
src/XGUI/XGUI_Displayer.cpp
src/XGUI/XGUI_Displayer.h

index bffde48c55c42db5c73160a8bac782710acf2feb..25d046ae1b03e0bfce5a2f82638e665e79a0218e 100644 (file)
@@ -24,4 +24,6 @@ resources
 doc/html
 *_log.txt
 start.bat
-*.orig
\ No newline at end of file
+*.orig
+*~
+/.project
diff --git a/eclipse_salome.sh b/eclipse_salome.sh
new file mode 100755 (executable)
index 0000000..103982b
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+source salome_env.sh
+
+mkdir -p ${ROOT_DIR}/build
+cd ${ROOT_DIR}/build
+
+CMAKE_ARGS="-D_ECLIPSE_VERSION=4.3"
+CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=Debug"
+CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=ON"
+CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=${ROOT_DIR}/install"
+CMAKE_ARGS="${CMAKE_ARGS} ${SRC_DIR}"
+
+
+cmake -G "Eclipse CDT4 - Unix Makefiles" ${CMAKE_ARGS}
+
+/misc/dn48/newgeom/common/eclipse-4.3.0/eclipse -Dosgi.locking=none &
index 37ae415084ff732fbadaefec7810a6e869fd3078..170f3bf3d0bad083faf6f4411e828079081d79d8 100644 (file)
@@ -1,9 +1,12 @@
 #------ Setting products installation directory ------
 
+if [ "${PDIR}" = "" ] ; then
+    export PDIR=/dn48/newgeom/common/products
+fi
+
 # Find absolute path to ROOT_DIR
 export ROOT_DIR=$(pwd)/..
 export ROOT_DIR=`cd "${ROOT_DIR}";pwd`
-export PDIR=/dn48/newgeom/common/products
 
 #------ Python ------
 export PYTHON_ROOT_DIR=${PDIR}/Python-2.7.3
diff --git a/salome_env.sh b/salome_env.sh
new file mode 100644 (file)
index 0000000..83ce4e2
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+if [ "${INST_ROOT}" = "" ] ; then
+    source /dn47/SALOME/PRODUCTS/7x/opt/CentOS.6.3.64/7.3.0/env_products.sh
+    source /dn47/SALOME/stable/V7_3_0/start.sh
+else
+    source ${INST_ROOT}/env_products.sh
+fi
+
+
+export ROOT_DIR=$(pwd)/..
+export ROOT_DIR=`cd "${ROOT_DIR}";pwd`
+
+SRC_DIR=${ROOT_DIR}/sources
+
+export LIB=${LD_LIBRARY_PATH}
+export PATH=${CASROOT}:${PATH}
+export PYTHON_INC_DIR=${PYTHON_INCLUDE}
+export PYTHON_LIB_DIR=${PYTHON_ROOT_DIR}/lib
+
+#------ NewGEOM ------
+export INST_DIR=${ROOT_DIR}/install
+export PATH=${INST_DIR}/bin:${INST_DIR}/plugins:${PATH}
+export LD_LIBRARY_PATH=${INST_DIR}/bin:${INST_DIR}/swig:${INST_DIR}/plugins:${PATH}${LD_LIBRARY_PATH}
+export NEW_GEOM_CONFIG_FILE=${INST_DIR}/plugins
diff --git a/salome_run.sh b/salome_run.sh
new file mode 100755 (executable)
index 0000000..e4dc6bd
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+export ROOT_DIR=$(pwd)/..
+
+source ${ROOT_DIR}/sources/salome_env.sh
+
+# Correcting path which defined with error
+export LD_LIBRARY_PATH=${KERNEL_ROOT_DIR}/lib/salome:${LD_LIBRARY_PATH}
+
+export LightAppConfig=${ROOT_DIR}/install/share/salome/resources/newgeom:${GUI_ROOT_DIR}/share/salome/resources/gui
+
+SUITApp LightApp -style salome --modules=NewGeom --uselicense --noexcepthandling
\ No newline at end of file
index eba313e5f1a9a42ad1b090e8c52d9a45e90e2c74..ae5d83c375c5182736ba73aa3fe4e1ca19f18535 100644 (file)
@@ -35,7 +35,7 @@ void Events_Error::send(char* theDescription, const void* theSender)
   Events_Loop::loop()->send(anError);
 }
 
-static void send(std::string theDescription, const void* theSender = 0)
+void Events_Error::send(std::string theDescription, const void* theSender)
 {
   Events_Error::send(theDescription.c_str(), theSender);
 }
index 08741337720e7e4dbb5e6efe8e190923b6718c17..bb1cefec685fd659fb961e2dfc8fa1a6a28b05c5 100644 (file)
@@ -14,7 +14,6 @@
 #include <ModelAPI_Document.h>
 #include <ModelAPI_Feature.h>
 #include <ModelAPI_Data.h>
-#include <ModelAPI_PluginManager.h>
 #include <ModelAPI_Document.h>
 
 #ifdef _DEBUG
@@ -67,10 +66,7 @@ void ModuleBase_Operation::storeCustomValue()
 
 void ModuleBase_Operation::startOperation()
 {
-  boost::shared_ptr<ModelAPI_Document> aDoc = ModelAPI_PluginManager::get()->rootDocument();
-  myFeature = aDoc->addFeature(getDescription()->operationId().toStdString());
-  if (myFeature) // TODO: generate an error if feature was not created
-    myFeature->execute();
+  createFeature();
   //emit callSlot();
   //commit();
 }
@@ -87,3 +83,11 @@ void ModuleBase_Operation::commitOperation()
 {
   if (myFeature) myFeature->execute();
 }
+
+void ModuleBase_Operation::createFeature()
+{
+  boost::shared_ptr<ModelAPI_Document> aDoc = document();
+  myFeature = aDoc->addFeature(getDescription()->operationId().toStdString());
+  if (myFeature) // TODO: generate an error if feature was not created
+    myFeature->execute();
+}
index c9d7588d55345b3c7b0c97a96d8a8cdc4e71c90a..4632ad455e832f47e6fdc7a2afbb0ef32076b5cb 100644 (file)
@@ -70,6 +70,9 @@ protected:
   /// Virtual method called when operation committed (see commit() method for more description)
   virtual void commitOperation();
 
+  /// Creates a new feature and save it in the operation internal field
+  virtual void createFeature();
+
 private:
   boost::shared_ptr<ModelAPI_Feature> myFeature; /// the operation feature to be handled
 };
index 31e82979299a5a97450fa5335e95cf26314e2ba8..0f41fea7f82c7fd3922340cb876babf2055c1852 100644 (file)
@@ -43,6 +43,7 @@ ADD_DEFINITIONS( -DNewGeom_EXPORTS ${CAS_DEFINITIONS} )
 
 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/XGUI
                                        ${PROJECT_SOURCE_DIR}/src/Events
+                                       ${PROJECT_SOURCE_DIR}/src/ModuleBase
                                        ${SALOME_GUI_INCLUDE}
                                        ${SALOME_KERNEL_INCLUDE}
                     ${CAS_INCLUDE_DIRS}
index 016cb735c0e6ba260ebbe80527df09c3df4e5b0b..2b7e8e5c9ec49ce41af79c52300d840ac1d488fa 100644 (file)
@@ -5,6 +5,7 @@
 #include "NewGeom_OCCSelector.h"
 
 #include <XGUI_Workshop.h>
+#include <XGUI_PropertyPanel.h>
 
 #include <LightApp_Application.h>
 #include <LightApp_SelectionMgr.h>
index d38cc9f0a59207a7d7dc544b695da693aa6727dc..4a0c54e5b08f7bdd36ac9d80ede08c07c5558806 100644 (file)
@@ -143,8 +143,8 @@ void PartSet_Module::onOperationStarted()
   if (aPreviewOp) {
     visualizePreview(aPreviewOp->feature(), true);
 
-    connect(aPreviewOp, SIGNAL(featureConstructed(boost::shared_ptr<ModelAPI_Feature>)),
-            this, SLOT(onFeatureConstructed(boost::shared_ptr<ModelAPI_Feature>)));
+    connect(aPreviewOp, SIGNAL(featureConstructed(boost::shared_ptr<ModelAPI_Feature>, int)),
+            this, SLOT(onFeatureConstructed(boost::shared_ptr<ModelAPI_Feature>, int)));
 
     PartSet_OperationSketch* aSketchOp = dynamic_cast<PartSet_OperationSketch*>(aPreviewOp);
     if (aSketchOp) {
@@ -233,9 +233,11 @@ void PartSet_Module::onPlaneSelected(double theX, double theY, double theZ)
   myWorkshop->actionsMgr()->setNestedActionsEnabled(true);
 }
 
-void PartSet_Module::onFeatureConstructed(boost::shared_ptr<ModelAPI_Feature> theFeature)
+void PartSet_Module::onFeatureConstructed(boost::shared_ptr<ModelAPI_Feature> theFeature,
+                                          int theMode)
 {
-  visualizePreview(theFeature, true);
+  bool isDisplay = theMode != PartSet_OperationSketchBase::FM_Abort;
+  visualizePreview(theFeature, isDisplay);
 }
 
 void PartSet_Module::visualizePreview(boost::shared_ptr<ModelAPI_Feature> theFeature, bool isDisplay)
@@ -252,12 +254,12 @@ void PartSet_Module::visualizePreview(boost::shared_ptr<ModelAPI_Feature> theFea
   if (isDisplay) {
     boost::shared_ptr<GeomAPI_Shape> aPreview = aPreviewOp->preview(theFeature);
     if (aPreview) {
-      aDisplayer->DisplayInLocalContext(theFeature, aPreview->impl<TopoDS_Shape>(),
-                                        aPreviewOp->getSelectionMode(theFeature));
+      aDisplayer->RedisplayInLocalContext(theFeature, aPreview->impl<TopoDS_Shape>(),
+                                          aPreviewOp->getSelectionModes(theFeature));
     }
   }
   else {
-    aDisplayer->CloseLocalContexts(false);
+    //aDisplayer->CloseLocalContexts(false);
     aDisplayer->Erase(anOperation->feature());
   }
 }
index a67b8d038633c2ec2d084c0798a160bf91839590..1f3197bd9def09569990acdb8f1b3a39b535dc30 100644 (file)
@@ -71,7 +71,9 @@ public slots:
 
   /// SLOT, to visualize the feature in another local context mode
   /// \param theFeature the feature to be put in another local context mode
-  void onFeatureConstructed(boost::shared_ptr<ModelAPI_Feature> theFeature);
+  /// \param theMode the mode appeared on the feature
+  void onFeatureConstructed(boost::shared_ptr<ModelAPI_Feature> theFeature,
+                            int theMode);
 
 private:
   XGUI_Workshop* myWorkshop;
index b583c1e808eabb794953ee6385b88525504316fe..ee9334b32fef36b549554bf2fb74239981a5be3b 100644 (file)
@@ -30,12 +30,12 @@ PartSet_OperationSketch::~PartSet_OperationSketch()
 {
 }
 
-int PartSet_OperationSketch::getSelectionMode(boost::shared_ptr<ModelAPI_Feature> theFeature) const
+std::list<int> PartSet_OperationSketch::getSelectionModes(boost::shared_ptr<ModelAPI_Feature> theFeature) const
 {
-  int aMode = TopAbs_FACE;
-  if (isEditMode())
-    aMode = TopAbs_VERTEX;
-  return aMode;
+  std::list<int> aModes;
+  if (!isEditMode())
+    aModes.push_back(TopAbs_FACE);
+  return aModes;
 }
 
 void PartSet_OperationSketch::setSelectedShapes(const NCollection_List<TopoDS_Shape>& theList)
index 7818a67cd185fda6787a82d374e60f017c469c1d..e577962bb957c7cf01bc0f27758db3ed00531540 100644 (file)
@@ -28,7 +28,7 @@ public:
   /// Returns the operation local selection mode
   /// \param theFeature the feature object to get the selection mode
   /// \return the selection mode
-  virtual int getSelectionMode(boost::shared_ptr<ModelAPI_Feature> theFeature) const;
+  virtual std::list<int> getSelectionModes(boost::shared_ptr<ModelAPI_Feature> theFeature) const;
 
   /// Gives the current selected objects to be processed by the operation
   /// \param theList a list of interactive selected shapes
index 6b419b08067d9efb8f8598a94186acb255478597..173851cbc3fe4e336ce0fe0ec26d4233e6bc051e 100644 (file)
@@ -25,6 +25,9 @@ class GeomAPI_Shape;
 class PARTSET_EXPORT PartSet_OperationSketchBase : public ModuleBase_Operation
 {
   Q_OBJECT
+public:
+  enum FeatureActionMode { FM_Activation, FM_Deactivation, FM_Abort };
+
 public:
   /// Constructor
   /// \param theId an feature index
@@ -40,7 +43,7 @@ public:
   /// Returns the operation local selection mode
   /// \param theFeature the feature object to get the selection mode
   /// \return the selection mode
-  virtual int getSelectionMode(boost::shared_ptr<ModelAPI_Feature> theFeature) const = 0;
+  virtual std::list<int> getSelectionModes(boost::shared_ptr<ModelAPI_Feature> theFeature) const = 0;
 
   /// Gives the current selected objects to be processed by the operation
   /// \param theList a list of interactive selected shapes
@@ -61,7 +64,9 @@ public:
 signals:
   /// Signal about the feature construing is finished
   /// \param theFeature the result feature
-  void featureConstructed(boost::shared_ptr<ModelAPI_Feature> theFeature);
+  /// \param theMode the mode of the feature modification
+  void featureConstructed(boost::shared_ptr<ModelAPI_Feature> theFeature,
+                          int theMode);
 
 public:
   /// temporary code to provide edition mode
index 5bc516c3954a89c2fb15789086d9b229f02a7627..14e0502b55c57256aba4d5d649c4dbf691a7b9b2 100644 (file)
@@ -37,12 +37,12 @@ bool PartSet_OperationSketchLine::isGranted() const
   return true;
 }
 
-int PartSet_OperationSketchLine::getSelectionMode(boost::shared_ptr<ModelAPI_Feature> theFeature) const
+std::list<int> PartSet_OperationSketchLine::getSelectionModes(boost::shared_ptr<ModelAPI_Feature> theFeature) const
 {
-  int aMode = 0;
+  std::list<int> aModes;
   if (theFeature != feature())
-    aMode = TopAbs_VERTEX;
-  return aMode;
+    aModes.push_back(TopAbs_VERTEX);
+  return aModes;
 }
 
 void PartSet_OperationSketchLine::mouseReleased(const gp_Pnt& thePoint)
@@ -88,7 +88,7 @@ void PartSet_OperationSketchLine::mouseMoved(const gp_Pnt& thePoint)
       setLinePoint(aPrevFeature, LINE_ATTR_END, LINE_ATTR_START);
       myPointSelectionMode = SM_SecondPoint;
 
-      emit featureConstructed(aPrevFeature);
+      emit featureConstructed(aPrevFeature, FM_Deactivation);
     }
     break;
     default:
@@ -99,27 +99,30 @@ void PartSet_OperationSketchLine::mouseMoved(const gp_Pnt& thePoint)
 void PartSet_OperationSketchLine::keyReleased(const int theKey)
 {
   switch (theKey) {
-    case Qt::Key_Escape:
+    case Qt::Key_Escape: {
+      if (myPointSelectionMode != SM_None)
+        emit featureConstructed(feature(), FM_Abort);
       abort();
-      break;
-    case Qt::Key_Enter:
-      //myPointSelectionMode = myPointSelectionMode;
-      break;
+    }
+    break;
+    case Qt::Key_Return: {
+      if (myPointSelectionMode != SM_None) {
+        emit featureConstructed(feature(), FM_Abort);
+        myPointSelectionMode = SM_FirstPoint;
+        document()->abortOperation();
+      }
+      else
+        myPointSelectionMode = SM_FirstPoint;
+    }
+    break;
     default:
-      break;
+    break;
   }
 }
 
 void PartSet_OperationSketchLine::startOperation()
 {
   PartSet_OperationSketchBase::startOperation();
-
-  if (mySketch) {
-    boost::shared_ptr<SketchPlugin_Feature> aFeature = 
-                           boost::dynamic_pointer_cast<SketchPlugin_Feature>(mySketch);
-
-    aFeature->addSub(feature());
-  }
   myPointSelectionMode = SM_FirstPoint;
 }
 
@@ -129,6 +132,18 @@ void PartSet_OperationSketchLine::stopOperation()
   myPointSelectionMode = SM_None;
 }
 
+void PartSet_OperationSketchLine::createFeature()
+{
+  PartSet_OperationSketchBase::createFeature();
+  if (mySketch) {
+    boost::shared_ptr<SketchPlugin_Feature> aFeature = 
+                           boost::dynamic_pointer_cast<SketchPlugin_Feature>(mySketch);
+
+    aFeature->addSub(feature());
+  }
+  //emit featureConstructed(aPrevFeature, FM_Activation);
+}
+
 void PartSet_OperationSketchLine::setLinePoint(const gp_Pnt& thePoint,
                                                const std::string& theAttribute)
 {
index 86b1eacebc7cb3b9cb6b2a9a20bb728915543dda..7883143fabccc098298cfa1bfaf8f4743a5db782 100644 (file)
@@ -34,7 +34,7 @@ public:
   /// Returns the operation local selection mode
   /// \param theFeature the feature object to get the selection mode
   /// \return the selection mode
-  virtual int getSelectionMode(boost::shared_ptr<ModelAPI_Feature> theFeature) const;
+  virtual std::list<int> getSelectionModes(boost::shared_ptr<ModelAPI_Feature> theFeature) const;
 
   /// Gives the current selected objects to be processed by the operation
   /// \param thePoint a point clicked in the viewer
@@ -65,6 +65,10 @@ protected:
   /// After the parent operation body perform, reset selection point mode of the operation
   virtual void stopOperation();
 
+  /// Creates a new feature and save it in the operation internal field.
+  /// In addition to the default realization it set a sketch feature to the created feature
+  virtual void createFeature();
+
 protected:
   /// \brief Save the point to the line.
   /// \param thePoint the 3D point in the viewer
index dcfe8385d5091aa11ab59381cb771327fc27a439..c0a57d545ccabd3b0a81eb15c4f231667ffd3fe1 100644 (file)
@@ -70,14 +70,15 @@ void XGUI_Displayer::Erase(boost::shared_ptr<ModelAPI_Feature> theFeature,
       continue;
       aContext->Erase(anAISShape);
   }
+  myFeature2AISObjectMap.erase(theFeature);
 
   if (isUpdateViewer)
     aContext->UpdateCurrentViewer();
 }
 
-void XGUI_Displayer::DisplayInLocalContext(boost::shared_ptr<ModelAPI_Feature> theFeature,
-                                           const TopoDS_Shape& theShape,
-                                           const int theMode, const bool isUpdateViewer)
+void XGUI_Displayer::RedisplayInLocalContext(boost::shared_ptr<ModelAPI_Feature> theFeature,
+                                             const TopoDS_Shape& theShape,
+                                             const std::list<int>& theModes, const bool isUpdateViewer)
 {
   Handle(AIS_InteractiveContext) aContext = AISContext();
   
@@ -92,49 +93,34 @@ void XGUI_Displayer::DisplayInLocalContext(boost::shared_ptr<ModelAPI_Feature> t
   }
   aDispAIS.push_back(anAIS);
   myFeature2AISObjectMap[theFeature] = aDispAIS;
-  aContext->Display(anAIS, Standard_False);
-
-  AIS_ListOfInteractive anAISList;
-  anAISList.Append(anAIS);
-  activateInLocalContext(anAISList, theMode, true);
-}
-
-void XGUI_Displayer::CloseLocalContexts(const bool isUpdateViewer)
-{
-  closeAllContexts(true);
-}
 
-void XGUI_Displayer::activateInLocalContext(const AIS_ListOfInteractive& theAISObjects, const int theMode,
-                                            const bool isUpdateViewer)
-{
   Handle(AIS_InteractiveContext) ic = AISContext();
 
   // Open local context if there is no one
-  bool allObjects = false; // calculate by AIS shape
   if (!ic->HasOpenedContext()) {
     ic->ClearCurrents(false);
-    ic->OpenLocalContext(allObjects, true, true);
+    ic->OpenLocalContext(false/*use displayed objects*/, /*true*/false/*use displayed objects*/,
+                         true/*allow shape decomposition*/);
   }
-
   // Activate selection of objects from prs
-  AIS_ListIteratorOfListOfInteractive aIter(theAISObjects);
-  for (; aIter.More(); aIter.Next()) {
-    Handle(AIS_InteractiveObject) anAIS = aIter.Value();
-    if (!anAIS.IsNull()) {
-      if (anAIS->IsKind(STANDARD_TYPE(AIS_Shape))) {
-        ic->Load(anAIS, -1, false);
-        ic->Activate(anAIS, AIS_Shape::SelectionMode((TopAbs_ShapeEnum)theMode));
-      }
-      else if (anAIS->DynamicType() != STANDARD_TYPE(AIS_Trihedron)) {
-        ic->Load(anAIS, -1, false);
-        ic->Activate(anAIS, theMode);
-      }
+  if (!anAIS.IsNull()) {
+    if (anAIS->IsKind(STANDARD_TYPE(AIS_Shape))) {
+      ic->Display(anAIS, false);
+      ic->Load(anAIS, -1, true/*allow decomposition*/);
+      std::list<int>::const_iterator anIt = theModes.begin(), aLast = theModes.end();
+      for (; anIt != aLast; anIt++) 
+        ic->Activate(anAIS, AIS_Shape::SelectionMode((TopAbs_ShapeEnum)*anIt));
     }
   }
   if (isUpdateViewer)
     ic->UpdateCurrentViewer();
 }
 
+void XGUI_Displayer::CloseLocalContexts(const bool isUpdateViewer)
+{
+  closeAllContexts(true);
+}
+
 void XGUI_Displayer::closeAllContexts(const bool isUpdateViewer)
 {
   Handle(AIS_InteractiveContext) ic = AISContext();
index 9299a81983f19bfa01e4d9434daaded33b102cf2..ec9d69649151d811a59b6730610082deec7a2562 100644 (file)
@@ -16,6 +16,7 @@
 
 #include <map>
 #include <vector>
+#include <list>
 
 class XGUI_Viewer;
 class ModelAPI_Feature;
@@ -59,9 +60,9 @@ public:
   /// \param theShape a shape
   /// \param theMode a local selection mode
   /// \param isUpdateViewer the parameter whether the viewer should be update immediatelly
-  void DisplayInLocalContext(boost::shared_ptr<ModelAPI_Feature> theFeature,
+  void RedisplayInLocalContext(boost::shared_ptr<ModelAPI_Feature> theFeature,
                              const TopoDS_Shape& theShape,
-                             const int theMode, const bool isUpdateViewer = true);
+                             const std::list<int>& theMode, const bool isUpdateViewer = true);
 
   /// Erase the feature and a shape.
   /// \param theFeature a feature instance
@@ -73,12 +74,6 @@ public:
   void CloseLocalContexts(const bool isUpdateViewer = true);
 
 protected:
-  /// Activate local selection
-  /// \param theAIS the list of objects
-  /// \param theMode the selection mode
-  /// \param isUpdateViewer the state wether the viewer should be updated immediatelly
-  void activateInLocalContext(const AIS_ListOfInteractive& theAISObjects, const int theMode,
-                              const bool isUpdateViewer);
   /// Deactivate local selection
   /// \param isUpdateViewer the state wether the viewer should be updated immediatelly
   void closeAllContexts(const bool isUpdateViewer);