Salome HOME
Fixing a bug : Salome GUI style needs addLibraryPath() method to be called
[modules/gui.git] / src / SVTK / SVTK_Selector.h
index 548fd0963253567d14ca9856d92a27782cb499a4..6d3c3ec500afe8696b5972328981405104d5d469 100644 (file)
 
 #ifndef SVTK_SELECTOR_H
 #define SVTK_SELECTOR_H
-#include <NCollection_DataMap.hxx>
-#include <vtkSmartPointer.h>
+
 #include <TColStd_MapOfInteger.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
 
 #include "SVTK_Selection.h"
-
 #include "SALOME_ListIO.hxx"
-#include "SALOME_InteractiveObject.hxx"
-#include "SALOME_DataMapOfIOMapOfInteger.hxx"
 
 class SALOME_Actor;
 
-class SVTK_Viewer;
-class SVTK_ViewWindow;
-
 class SVTK_Selector
 {
 public:
-  SVTK_Selector();
-  virtual ~SVTK_Selector();
+  virtual ~SVTK_Selector() = 0;
+
+  virtual
+  void 
+  SetSelectionMode( Selection_Mode theMode ) = 0;
 
-  void SetSelectionMode( Selection_Mode theMode );
-  Selection_Mode SelectionMode() const { return mySelectionMode; }
+  virtual
+  Selection_Mode
+  SelectionMode() const = 0;
 
+  virtual
   void
-  ClearIObjects();
+  ClearIObjects() = 0;
 
+  virtual
   SALOME_Actor* 
-  GetActor(const Handle(SALOME_InteractiveObject)& theIO) const;
+  GetActor(const Handle(SALOME_InteractiveObject)& theIO) const = 0;
+
+  virtual
   bool
-  IsSelected(const Handle(SALOME_InteractiveObject)& theIO) const;
+  IsSelected(const Handle(SALOME_InteractiveObject)& theIO) const = 0;
+
+  virtual
   bool
-  IsSelected(SALOME_Actor* theActor) const;
+  IsSelected(SALOME_Actor* theActor) const = 0;
 
+  virtual
   bool
-  AddIObject(const Handle(SALOME_InteractiveObject)& theIO);
+  AddIObject(const Handle(SALOME_InteractiveObject)& theIO) = 0;
+
+  virtual
   bool
-  AddIObject(SALOME_Actor* theActor);
+  AddIObject(SALOME_Actor* theActor) = 0;
 
+  virtual
   bool 
-  RemoveIObject(const Handle(SALOME_InteractiveObject)& theIO);
+  RemoveIObject(const Handle(SALOME_InteractiveObject)& theIO) = 0;
+
+  virtual
   bool 
-  RemoveIObject(SALOME_Actor* theActor);
+  RemoveIObject(SALOME_Actor* theActor) = 0;
 
+  virtual
   const SALOME_ListIO& 
-  StoredIObjects() const;
+  StoredIObjects() const = 0;
 
+  virtual
   int 
-  IObjectCount() const;
+  IObjectCount() const = 0;
 
+  virtual
   bool 
-  HasIndex(const Handle(SALOME_InteractiveObject)& theIO ) const;
+  HasIndex(const Handle(SALOME_InteractiveObject)& theIO ) const = 0;
 
+  virtual
   void 
   GetIndex( const Handle(SALOME_InteractiveObject)& theIO, 
-           TColStd_IndexedMapOfInteger& theIndex );
+           TColStd_IndexedMapOfInteger& theIndex ) = 0;
        
+  virtual
   bool 
   AddOrRemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
                    const TColStd_IndexedMapOfInteger& theIndices, 
-                   bool theIsModeShift);
+                   bool theIsModeShift) = 0;
+  virtual
   bool 
   AddOrRemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
                    const TColStd_MapOfInteger& theIndices, 
-                   bool theIsModeShift);
+                   bool theIsModeShift) = 0;
+  virtual
   bool
   AddOrRemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
                    int theIndex, 
-                   bool theIsModeShift);
+                   bool theIsModeShift) = 0;
+  virtual
   void 
   RemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
-              int theIndex);
+              int theIndex) = 0;
+  virtual
   bool 
   IsIndexSelected(const Handle(SALOME_InteractiveObject)& theIO, 
-                 int theIndex) const;
+                 int theIndex) const = 0;
+  virtual
   void 
-  ClearIndex();
-
-private:
-  typedef NCollection_DataMap<Handle(SALOME_InteractiveObject),
-                              vtkSmartPointer<SALOME_Actor> > TIO2Actors;
-  TIO2Actors myIO2Actors;
-  Selection_Mode mySelectionMode;
-  SALOME_ListIO myIObjects;
-  SALOME_DataMapOfIOMapOfInteger myMapIOSubIndex;
+  ClearIndex() = 0;
 };