]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/QT/ImageWidget.h
6627610732488e59d54fde5929b499c7cd6fe3ef
[cpPlugins.git] / lib / cpExtensions / QT / ImageWidget.h
1 #ifndef __cpExtensions__QT__ImageWidget__h__
2 #define __cpExtensions__QT__ImageWidget__h__
3
4 #include <cpExtensions/QT/RendererWidget.h>
5
6 #ifdef cpExtensions_QT4
7
8 // -------------------------------------------------------------------------
9 class vtkDataSet;
10
11 // -------------------------------------------------------------------------
12 namespace cpExtensions
13 {
14   namespace Visualization
15   {
16     class OutlineSource;
17     class LUTImageActor;
18     class WindowLevelImageActor;
19     class MeshActor;
20   }
21   namespace Interaction { class ImageSliceStyle; }
22
23   namespace QT
24   {
25     /**
26      */
27     class cpExtensions_EXPORT ImageWidget
28       : public RendererWidget
29     {
30       Q_OBJECT;
31
32     public:
33       typedef ImageWidget    Self;
34       typedef RendererWidget Superclass;
35
36       typedef cpExtensions::Visualization::OutlineSource         TOutline;
37       typedef cpExtensions::Visualization::MeshActor             TActor;
38       typedef cpExtensions::Visualization::LUTImageActor         TLUTActor;
39       typedef cpExtensions::Visualization::WindowLevelImageActor TWLActor;
40       typedef cpExtensions::Interaction::ImageSliceStyle         TStyle;
41
42     public:
43       explicit ImageWidget( QWidget* parent = NULL, Qt::WindowFlags f = 0 );
44       virtual ~ImageWidget( );
45
46       void Clear( );
47       void SetImage(
48         vtkImageData* image, int orientation, const std::string& name
49         );
50       void Add( vtkDataSet* data, const std::string& name );
51       virtual void ResetCamera( ) cpExtensions_OVERRIDE;
52
53       TWLActor* GetImageActor( );
54       const TWLActor* GetImageActor( ) const;
55
56       void SetColor( const std::string& name, double r, double g, double b );
57       void SetLineWidth( const std::string& name, double w );
58
59     protected:
60       std::string m_ImageName;
61
62       vtkSmartPointer< TWLActor > m_WLActor;
63       vtkSmartPointer< TLUTActor > m_LUTActor;
64       vtkSmartPointer< TOutline > m_Outline;
65       TActor* m_OutlineActor;
66       std::vector< TActor* > m_Actors;
67
68       vtkSmartPointer< TStyle > m_Style;
69     };
70
71   } // ecapseman
72
73 } // ecapseman
74
75 #endif // cpExtensions_QT4
76
77 #endif // __cpExtensions__QT__ImageWidget__h__
78
79 // eof - $RCSfile$