]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
*** empty log message ***
authorasl <asl@opencascade.com>
Fri, 1 Jul 2005 09:34:00 +0000 (09:34 +0000)
committerasl <asl@opencascade.com>
Fri, 1 Jul 2005 09:34:00 +0000 (09:34 +0000)
src/SMESHGUI/SMESHGUI_Operation.cxx
src/SMESHGUI/SMESHGUI_Operation.h

index f9a19802fa624569040da99bd116f85ec9e004c0..f810298375be6f266953fb39caba55af79107a9a 100755 (executable)
@@ -8,7 +8,12 @@
 //  Author : Sergey LITONIN
 //  Module : SALOME
 
-#include "SMESHGUI_Operation.h"
+#include <SMESHGUI_Operation.h>
+#include <SMESHGUI.h>
+#include <SMESHGUI_VTKUtils.h>
+
+#include <SVTK_ViewWindow.h>
+#include <SVTK_Selector.h>
 
 
 /*
 // name    : SMESHGUI_Operation
 // Purpose : Constructor
 //=======================================================================
-SMESHGUI_Operation::SMESHGUI_Operation( SalomeApp_Application* theApp )
-: SalomeApp_Operation( theApp )
+SMESHGUI_Operation::SMESHGUI_Operation( SalomeApp_Application* app )
+: SalomeApp_Operation( app ),
+  myViewWindow( 0 ),
+  mySelector( 0 )
 {
   
 }
@@ -31,5 +38,44 @@ SMESHGUI_Operation::~SMESHGUI_Operation()
   
 }
 
+void SMESHGUI_Operation::setSelectionMode( const Selection_Mode mode )
+{
+  if( myViewWindow )
+    myViewWindow->SetSelectionMode( mode );
+}
+
+void SMESHGUI_Operation::highlight( const Handle( SALOME_InteractiveObject )& obj,
+                                    const bool hilight, const bool immediately )
+{
+  if( myViewWindow )
+    myViewWindow->highlight( obj, hilight, immediately );
+}
 
+void SMESHGUI_Operation::addOrRemoveIndex( const Handle( SALOME_InteractiveObject )& obj,
+                                           const TColStd_MapOfInteger& indices, const bool isModeShift )
+{
+  if( mySelector )
+    mySelector->AddOrRemoveIndex( obj, indices, isModeShift );
+}
 
+SMESHGUI* SMESHGUI_Operation::getSMESHGUI() const
+{
+  return dynamic_cast<SMESHGUI*>( module() );
+}
+
+SVTK_ViewWindow* SMESHGUI_Operation::getViewWindow() const
+{
+  return myViewWindow;
+}
+
+SVTK_Selector* SMESHGUI_Operation::getSelector() const
+{
+  return mySelector;
+}
+
+void SMESHGUI_Operation::startOperation()
+{
+  SalomeApp_Operation::startOperation();
+  myViewWindow = SMESH::GetViewWindow( getSMESHGUI() );
+  mySelector = myViewWindow ? myViewWindow->GetSelector() : 0;
+}
index 95e2ce03e73d163ce516ba882d5e84519e56babf..9c6c303fd2d23bc938b42cee16cc7e4930bca9e4 100755 (executable)
 #define SMESHGUI_Operation_H
 
 #include <SalomeApp_Operation.h>
+#include <SALOME_InteractiveObject.hxx>
+#include <SVTK_Selection.h>
+
+class SMESHGUI;
+class SVTK_ViewWindow;
+class SVTK_Selector;
+class TColStd_MapOfInteger;
+
 
 /*
   Class       : SMESHGUI_Operation
@@ -24,10 +32,23 @@ class SMESHGUI_Operation : public SalomeApp_Operation
   Q_OBJECT
 
 public:
-
   SMESHGUI_Operation( SalomeApp_Application* );
   virtual ~SMESHGUI_Operation();
 
+protected:
+  void      setSelectionMode( const Selection_Mode );
+  void      highlight( const Handle( SALOME_InteractiveObject )&, const bool, const bool = true );
+  void      addOrRemoveIndex( const Handle( SALOME_InteractiveObject )&, const TColStd_MapOfInteger&, const bool );
+
+  virtual void startOperation();
+  
+  SMESHGUI*        getSMESHGUI() const;
+  SVTK_ViewWindow* getViewWindow() const;
+  SVTK_Selector*   getSelector() const;
+  
+private:
+  SVTK_ViewWindow* myViewWindow;
+  SVTK_Selector*   mySelector;
 };
 
 #endif