]> Creatis software - creaImageIO.git/blob - src2/creaImageIOWxViewer.h
Cleaned the viewer and deactivated color function
[creaImageIO.git] / src2 / creaImageIOWxViewer.h
1 #ifndef __creaImageIOWxViewer_h_INCLUDED__
2 #define __creaImageIOWxViewer_h_INCLUDED__
3
4 #ifdef USE_WXWIDGETS
5
6 // wx
7 #include <creaWx.h>
8 #include <wx/image.h>
9 #include <wx/imaglist.h>
10 #include <wx/splitter.h>
11
12 #include <creaImageIOSystem.h>
13 #include <creaImageIOImagePointerHolder.h>
14
15 // For image preview 
16 // vtk and wxvtk classes
17 #include "creawxVTKRenderWindowInteractor.h"
18 #include "vtkImageViewer2.h"
19
20 namespace creaImageIO
21 {
22
23   class WxViewerPlayer;
24
25   class WxViewer : public wxPanel
26   {
27  
28   public:
29     /// Ctor 
30     WxViewer();
31     WxViewer(wxWindow *parent, 
32                    const wxWindowID id,
33                    wxString title,
34                    const wxPoint& pos, 
35                    const wxSize& size);
36     /// Dtor
37     virtual ~WxViewer();
38     /// 
39     void ShowNextImage();
40
41         void StartPlayer();
42
43     void StopPlayer();
44
45     bool RefreshIfNecessary();
46
47         void SetImageVector(std::vector<ImagePointerHolder*>& pointers);
48   
49
50   private:
51    ///Shows the image passed as parameter
52     void ShowImage(vtkImageData* im);
53
54     /// Previewer
55     vtkImageViewer2* mViewer;
56     /// Associated wxvtk interactor
57     crea::creawxVTKRenderWindowInteractor  *mInteractor;
58     
59     /// Current extent 
60     int mx1,mx2,my1,my2,mz1,mz2;
61     /// Current spacing
62     double mspx,mspy,mspz;
63
64     /// 
65     int mCurrent;
66     ///The threaded movie player
67     WxViewerPlayer* mPlayer;
68
69     /// The mutex
70     wxMutex mMutex;
71
72     /// 
73     bool mNeedRefresh;
74
75         
76     vtkImageData* mLastImageShown;
77         std::vector<ImagePointerHolder*> imagePointers;
78
79   };
80
81 }
82
83 #endif // USE_WIDGETS
84 // EOF
85 #endif