Salome HOME
Fix for Bug IPAL9053( 3.0.0: "Check Geometry" and "Load script" functionalities from...
[modules/gui.git] / src / SVTK / SVTK_Selector.h
1 //  SALOME SALOMEGUI : implementation of desktop and GUI kernel
2 //
3 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
5 // 
6 //  This library is free software; you can redistribute it and/or 
7 //  modify it under the terms of the GNU Lesser General Public 
8 //  License as published by the Free Software Foundation; either 
9 //  version 2.1 of the License. 
10 // 
11 //  This library is distributed in the hope that it will be useful, 
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
14 //  Lesser General Public License for more details. 
15 // 
16 //  You should have received a copy of the GNU Lesser General Public 
17 //  License along with this library; if not, write to the Free Software 
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
19 // 
20 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
21 //
22 //
23 //
24 //  File   : SALOME_Selection.h
25 //  Author : Nicolas REJNERI
26 //  Module : SALOME
27 //  $Header$
28
29 #ifndef SVTK_SELECTOR_H
30 #define SVTK_SELECTOR_H
31
32 #include <TColStd_MapOfInteger.hxx>
33 #include <TColStd_IndexedMapOfInteger.hxx>
34
35 #include "SVTK_Selection.h"
36 #include "SALOME_ListIO.hxx"
37
38 class SALOME_Actor;
39
40 class SVTK_Selector
41 {
42 public:
43   virtual ~SVTK_Selector() = 0;
44
45   virtual
46   void 
47   SetSelectionMode( Selection_Mode theMode ) = 0;
48
49   virtual
50   Selection_Mode
51   SelectionMode() const = 0;
52
53   virtual
54   void
55   ClearIObjects() = 0;
56
57   virtual
58   SALOME_Actor* 
59   GetActor(const Handle(SALOME_InteractiveObject)& theIO) const = 0;
60
61   virtual
62   bool
63   IsSelected(const Handle(SALOME_InteractiveObject)& theIO) const = 0;
64
65   virtual
66   bool
67   IsSelected(SALOME_Actor* theActor) const = 0;
68
69   virtual
70   bool
71   AddIObject(const Handle(SALOME_InteractiveObject)& theIO) = 0;
72
73   virtual
74   bool
75   AddIObject(SALOME_Actor* theActor) = 0;
76
77   virtual
78   bool 
79   RemoveIObject(const Handle(SALOME_InteractiveObject)& theIO) = 0;
80
81   virtual
82   bool 
83   RemoveIObject(SALOME_Actor* theActor) = 0;
84
85   virtual
86   const SALOME_ListIO& 
87   StoredIObjects() const = 0;
88
89   virtual
90   int 
91   IObjectCount() const = 0;
92
93   virtual
94   bool 
95   HasIndex(const Handle(SALOME_InteractiveObject)& theIO ) const = 0;
96
97   virtual
98   void 
99   GetIndex( const Handle(SALOME_InteractiveObject)& theIO, 
100             TColStd_IndexedMapOfInteger& theIndex ) = 0;
101         
102   virtual
103   bool 
104   AddOrRemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
105                     const TColStd_IndexedMapOfInteger& theIndices, 
106                     bool theIsModeShift) = 0;
107   virtual
108   bool 
109   AddOrRemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
110                     const TColStd_MapOfInteger& theIndices, 
111                     bool theIsModeShift) = 0;
112   virtual
113   bool
114   AddOrRemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
115                     int theIndex, 
116                     bool theIsModeShift) = 0;
117   virtual
118   void 
119   RemoveIndex( const Handle(SALOME_InteractiveObject)& theIO, 
120                int theIndex) = 0;
121   virtual
122   bool 
123   IsIndexSelected(const Handle(SALOME_InteractiveObject)& theIO, 
124                   int theIndex) const = 0;
125   virtual
126   void 
127   ClearIndex() = 0;
128 };
129
130
131 #endif