1 #ifndef __cpExtensions__QT__SimpleMPRWidget__h__
2 #define __cpExtensions__QT__SimpleMPRWidget__h__
4 #include <cpExtensions/Config.h>
6 #ifdef cpExtensions_QT4
8 #include <cpExtensions/QT/ActorsWidgetInterface.h>
10 #include <vtkSmartPointer.h>
14 // -------------------------------------------------------------------------
17 class vtkPropCollection;
19 namespace Ui { class SimpleMPRWidget; }
21 // -------------------------------------------------------------------------
22 namespace cpExtensions
31 class cpExtensions_EXPORT SimpleMPRWidget
33 public ActorsWidgetInterface
38 typedef SimpleMPRWidget Self;
39 typedef QWidget Superclass;
40 typedef ActorsWidgetInterface Superclass2;
42 typedef vtkSmartPointer< vtkPropCollection > TProp;
43 typedef std::set< TProp > TProps;
45 // typedef cpExtensions::Visualization::MeshActor TMeshActor;
48 explicit SimpleMPRWidget( QWidget* parent = NULL, Qt::WindowFlags f = 0 );
49 virtual ~SimpleMPRWidget( );
51 void Configure( char q1, char q2, char q3, char q4 );
53 bool HasImage( ) const;
54 void SetImage( vtkImageData* image, const std::string& name );
56 bool Add( vtkDataSet* data, const std::string& name );
58 TProps GetViewProps( const std::string& name ) const;
59 TProps GetImageProps( ) const;
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;
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;
82 virtual std::set< std::string > GetActorsNames( ) const cpExtensions_OVERRIDE;
83 virtual bool IsWindowLevelImageActor( const std::string& name ) const cpExtensions_OVERRIDE;
84 virtual bool IsLUTImageActor( const std::string& name ) const cpExtensions_OVERRIDE;
85 virtual bool Is3DActor( const std::string& name ) const cpExtensions_OVERRIDE;
87 virtual void GetScalarRange( const std::string& name, double r[ 2 ] ) const cpExtensions_OVERRIDE;
88 virtual void GetWindowLevel( const std::string& name, double wl[ 2 ] ) const cpExtensions_OVERRIDE;
89 virtual double GetWindow( const std::string& name ) const cpExtensions_OVERRIDE;
90 virtual double GetLevel( const std::string& name ) const cpExtensions_OVERRIDE;
91 virtual char GetImageInterpolation( const std::string& name ) const cpExtensions_OVERRIDE;
93 virtual void GetColor( const std::string& name, double& r, double& g, double& b ) const cpExtensions_OVERRIDE;
94 virtual double GetOpacity( const std::string& name ) const cpExtensions_OVERRIDE;
95 virtual double GetPointSize( const std::string& name ) const cpExtensions_OVERRIDE;
96 virtual double GetLineWidth( const std::string& name ) const cpExtensions_OVERRIDE;
97 virtual int GetRepresentation( const std::string& name ) const cpExtensions_OVERRIDE;
99 virtual void SetScalarRange( const std::string& name, double r[ 2 ] ) cpExtensions_OVERRIDE;
100 virtual void SetScalarRange( const std::string& name, double min, double max ) cpExtensions_OVERRIDE;
101 virtual void SetWindowLevel( const std::string& name, double wl[ 2 ] ) cpExtensions_OVERRIDE;
102 virtual void SetWindowLevel( const std::string& name, double w, double l ) cpExtensions_OVERRIDE;
103 virtual void SetWindow( const std::string& name, double w ) cpExtensions_OVERRIDE;
104 virtual void SetLevel( const std::string& name, double l ) cpExtensions_OVERRIDE;
105 virtual void SetImageInterpolation( const std::string& name, char i ) cpExtensions_OVERRIDE;
107 virtual void SetColor( const std::string& name, double r, double g, double b ) cpExtensions_OVERRIDE;
108 virtual void SetOpacity( const std::string& name, double o ) cpExtensions_OVERRIDE;
109 virtual void SetPointSize( const std::string& name, double s ) cpExtensions_OVERRIDE;
110 virtual void SetLineWidth( const std::string& name, double w ) cpExtensions_OVERRIDE;
111 virtual void SetRepresentationToPoints( const std::string& name ) cpExtensions_OVERRIDE;
112 virtual void SetRepresentationToSurface( const std::string& name ) cpExtensions_OVERRIDE;
113 virtual void SetRepresentationToWireframe( const std::string& name ) cpExtensions_OVERRIDE;
116 void _SyncBottom( int a, int b );
117 void _SyncTop( int a, int b );
120 Ui::SimpleMPRWidget* m_UI;
122 ImageWidget* m_XImage;
123 ImageWidget* m_YImage;
124 ImageWidget* m_ZImage;
125 MPR3DWidget* m_3DView;
127 std::string m_MainImageName;
128 vtkSmartPointer< vtkImageData > m_MainImage;
135 #endif // cpExtensions_QT4
137 #endif // __cpExtensions__QT__SimpleMPRWidget__h__