]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/QT/SimpleMPRWidget.h
bc07ed35eb766466bcec6e043967973226d0dd14
[cpPlugins.git] / lib / cpExtensions / QT / SimpleMPRWidget.h
1 #ifndef __cpExtensions__QT__SimpleMPRWidget__h__
2 #define __cpExtensions__QT__SimpleMPRWidget__h__
3
4 #include <cpExtensions/Config.h>
5 #include <cpExtensions/QT/ActorsWidgetInterface.h>
6 #include <QWidget>
7 #include <vtkSmartPointer.h>
8 #include <map>
9 #include <set>
10
11 // -------------------------------------------------------------------------
12 class vtkDataSet;
13 class vtkProp;
14 class vtkPropCollection;
15
16 namespace Ui { class SimpleMPRWidget; }
17
18 // -------------------------------------------------------------------------
19 namespace cpExtensions
20 {
21   namespace QT
22   {
23     class MPR3DWidget;
24     class ImageWidget;
25
26     /**
27      */
28     class cpExtensions_EXPORT SimpleMPRWidget
29       : public QWidget,
30         public ActorsWidgetInterface
31     {
32       Q_OBJECT;
33
34     public:
35       typedef SimpleMPRWidget       Self;
36       typedef QWidget               Superclass;
37       typedef ActorsWidgetInterface Superclass2;
38
39       typedef vtkSmartPointer< vtkPropCollection > TProp;
40       typedef std::set< TProp >                    TProps;
41
42       // typedef cpExtensions::Visualization::MeshActor TMeshActor;
43
44     public:
45       explicit SimpleMPRWidget( QWidget* parent = NULL, Qt::WindowFlags f = 0 );
46       virtual ~SimpleMPRWidget( );
47
48       void Configure( char q1, char q2, char q3, char q4 );
49
50       bool HasImage( ) const;
51       void SetImage( vtkImageData* image, const std::string& name );
52
53       bool Add( vtkDataSet* data, const std::string& name );
54
55       TProps GetViewProps( const std::string& name ) const;
56       TProps GetImageProps( ) const;
57
58       vtkRenderWindowInteractor* GetXInteractor( );
59       const vtkRenderWindowInteractor* GetXInteractor( ) const;
60       vtkRenderWindowInteractor* GetYInteractor( );
61       const vtkRenderWindowInteractor* GetYInteractor( ) const;
62       vtkRenderWindowInteractor* GetZInteractor( );
63       const vtkRenderWindowInteractor* GetZInteractor( ) const;
64       vtkRenderWindowInteractor* GetWInteractor( );
65       const vtkRenderWindowInteractor* GetWInteractor( ) const;
66
67       vtkRenderWindow* GetXRenderWindow( );
68       const vtkRenderWindow* GetXRenderWindow( ) const;
69       vtkRenderWindow* GetYRenderWindow( );
70       const vtkRenderWindow* GetYRenderWindow( ) const;
71       vtkRenderWindow* GetZRenderWindow( );
72       const vtkRenderWindow* GetZRenderWindow( ) const;
73       vtkRenderWindow* GetWRenderWindow( );
74       const vtkRenderWindow* GetWRenderWindow( ) const;
75
76       void ResetCameras( );
77       void Render( );
78
79       virtual std::set< vtkRenderWindowInteractor* > GetInteractors( ) const cpExtensions_OVERRIDE;
80       virtual std::set< std::string > GetActorsNames( ) const cpExtensions_OVERRIDE;
81       virtual bool IsWindowLevelImageActor( const std::string& name ) const cpExtensions_OVERRIDE;
82       virtual bool IsLUTImageActor( const std::string& name ) const cpExtensions_OVERRIDE;
83       virtual bool Is3DActor( const std::string& name ) const cpExtensions_OVERRIDE;
84
85       virtual void GetScalarRange( const std::string& name, double r[ 2 ] ) const cpExtensions_OVERRIDE;
86       virtual void GetWindowLevel( const std::string& name, double wl[ 2 ] ) const cpExtensions_OVERRIDE;
87       virtual double GetWindow( const std::string& name ) const cpExtensions_OVERRIDE;
88       virtual double GetLevel( const std::string& name ) const cpExtensions_OVERRIDE;
89       virtual char GetImageInterpolation( const std::string& name ) const cpExtensions_OVERRIDE;
90
91       virtual void GetColor( const std::string& name, double& r, double& g, double& b ) const cpExtensions_OVERRIDE;
92       virtual double GetOpacity( const std::string& name ) const cpExtensions_OVERRIDE;
93       virtual double GetPointSize( const std::string& name ) const cpExtensions_OVERRIDE;
94       virtual double GetLineWidth( const std::string& name ) const cpExtensions_OVERRIDE;
95       virtual int GetRepresentation( const std::string& name ) const cpExtensions_OVERRIDE;
96
97       virtual void SetScalarRange( const std::string& name, double r[ 2 ] ) cpExtensions_OVERRIDE;
98       virtual void SetScalarRange( const std::string& name, double min, double max ) cpExtensions_OVERRIDE;
99       virtual void SetWindowLevel( const std::string& name, double wl[ 2 ] ) cpExtensions_OVERRIDE;
100       virtual void SetWindowLevel( const std::string& name, double w, double l ) cpExtensions_OVERRIDE;
101       virtual void SetWindow( const std::string& name, double w ) cpExtensions_OVERRIDE;
102       virtual void SetLevel( const std::string& name, double l ) cpExtensions_OVERRIDE;
103       virtual void SetImageInterpolation( const std::string& name, char i ) cpExtensions_OVERRIDE;
104
105       virtual void SetColor( const std::string& name, double r, double g, double b ) cpExtensions_OVERRIDE;
106       virtual void SetOpacity( const std::string& name, double o ) cpExtensions_OVERRIDE;
107       virtual void SetPointSize( const std::string& name, double s ) cpExtensions_OVERRIDE;
108       virtual void SetLineWidth( const std::string& name, double w ) cpExtensions_OVERRIDE;
109       virtual void SetRepresentationToPoints( const std::string& name ) cpExtensions_OVERRIDE;
110       virtual void SetRepresentationToSurface( const std::string& name ) cpExtensions_OVERRIDE;
111       virtual void SetRepresentationToWireframe( const std::string& name ) cpExtensions_OVERRIDE;
112
113     private slots:
114       void _SyncBottom( int a, int b );
115       void _SyncTop( int a, int b );
116
117     protected:
118       Ui::SimpleMPRWidget* m_UI;
119
120       ImageWidget* m_XImage;
121       ImageWidget* m_YImage;
122       ImageWidget* m_ZImage;
123       MPR3DWidget* m_3DView;
124
125       std::string m_MainImageName;
126       vtkSmartPointer< vtkImageData > m_MainImage;
127     };
128
129   } // ecapseman
130
131 } // ecapseman
132
133 #endif // __cpExtensions__QT__SimpleMPRWidget__h__
134
135 // eof - $RCSfile$