1 #ifndef __cpExtensions__QT__SimpleMPRWidget__h__
2 #define __cpExtensions__QT__SimpleMPRWidget__h__
4 #include <cpExtensions/Config.h>
5 #include <cpExtensions/QT/ActorsWidgetInterface.h>
7 #include <vtkSmartPointer.h>
11 // -------------------------------------------------------------------------
14 class vtkPropCollection;
16 namespace Ui { class SimpleMPRWidget; }
18 // -------------------------------------------------------------------------
19 namespace cpExtensions
28 class cpExtensions_EXPORT SimpleMPRWidget
30 public ActorsWidgetInterface
35 typedef SimpleMPRWidget Self;
36 typedef QWidget Superclass;
37 typedef ActorsWidgetInterface Superclass2;
39 typedef vtkSmartPointer< vtkPropCollection > TProp;
40 typedef std::set< TProp > TProps;
42 // typedef cpExtensions::Visualization::MeshActor TMeshActor;
45 explicit SimpleMPRWidget( QWidget* parent = NULL, Qt::WindowFlags f = 0 );
46 virtual ~SimpleMPRWidget( );
48 void Configure( char q1, char q2, char q3, char q4 );
50 bool HasImage( ) const;
51 void SetImage( vtkImageData* image, const std::string& name );
53 bool Add( vtkDataSet* data, const std::string& name );
55 TProps GetViewProps( const std::string& name ) const;
56 TProps GetImageProps( ) const;
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;
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;
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;
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;
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;
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;
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;
114 void _SyncBottom( int a, int b );
115 void _SyncTop( int a, int b );
118 Ui::SimpleMPRWidget* m_UI;
120 ImageWidget* m_XImage;
121 ImageWidget* m_YImage;
122 ImageWidget* m_ZImage;
123 MPR3DWidget* m_3DView;
125 std::string m_MainImageName;
126 vtkSmartPointer< vtkImageData > m_MainImage;
133 #endif // __cpExtensions__QT__SimpleMPRWidget__h__