Salome HOME
*** empty log message ***
[modules/gui.git] / src / SalomeApp / SalomeApp_VTKSelector.h
1 #ifndef SALOMEAPP_VTKSELECTOR_H
2 #define SALOMEAPP_VTKSELECTOR_H
3
4 #include <qobject.h>
5
6 #include <vtkSmartPointer.h>
7
8 #include <TColStd_IndexedMapOfInteger.hxx>
9
10 #include "SUIT_Selector.h"
11
12 #include "SalomeApp.h"
13 #include "SalomeApp_DataOwner.h"
14
15 #include "SVTK_Selection.h"
16 #include "SALOME_InteractiveObject.hxx"
17
18 class SALOME_Actor;
19 class SVTK_Viewer;
20
21 class SalomeApp_SVTKDataOwner : public SalomeApp_DataOwner
22 {
23  public:
24     SalomeApp_SVTKDataOwner( const Handle(SALOME_InteractiveObject)& theIO,
25                              const TColStd_IndexedMapOfInteger& theIds,
26                              Selection_Mode theMode = ActorSelection,
27                              SALOME_Actor* theActor = NULL);
28     virtual ~SalomeApp_SVTKDataOwner();
29
30     const TColStd_IndexedMapOfInteger& GetIds() const
31     {
32       return myIds;
33     }
34
35     Selection_Mode GetMode() const 
36     { 
37       return mySelectionMode; 
38     }
39
40     SALOME_Actor* GetActor() const;
41
42  protected:
43     TColStd_IndexedMapOfInteger myIds;
44     Selection_Mode mySelectionMode;
45     vtkSmartPointer<SALOME_Actor> myActor;
46 };
47
48
49 class SALOMEAPP_EXPORT SalomeApp_VTKSelector : public QObject, public SUIT_Selector
50 {
51   Q_OBJECT;
52
53 public:
54   SalomeApp_VTKSelector( SVTK_Viewer*, SUIT_SelectionMgr* );
55   virtual ~SalomeApp_VTKSelector();
56
57   SVTK_Viewer* viewer() const;
58
59   virtual QString type() const;
60
61 private slots:
62   void              onSelectionChanged();
63
64 protected:
65   virtual void      getSelection( SUIT_DataOwnerPtrList& ) const;
66   virtual void      setSelection( const SUIT_DataOwnerPtrList& );
67
68 private:
69   SVTK_Viewer* myViewer;
70 };
71
72 #endif