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