00001 #ifndef __creaImageIOWxViewer_h_INCLUDED__
00002 #define __creaImageIOWxViewer_h_INCLUDED__
00003
00004 #ifdef USE_WXWIDGETS
00005
00006
00007 #include <creaWx.h>
00008 #include <wx/image.h>
00009 #include <wx/imaglist.h>
00010 #include <wx/splitter.h>
00011
00012 #include <creaImageIOSystem.h>
00013 #include <creaImageIOImagePointerHolder.h>
00014
00015
00016
00017 #include "creawxVTKRenderWindowInteractor.h"
00018 #include "vtkImageViewer2.h"
00019
00020 namespace creaImageIO
00021 {
00022
00023 class WxViewerPlayer;
00024
00025 class WxViewer : public wxPanel
00026 {
00027
00028 public:
00030 WxViewer();
00031 WxViewer(wxWindow *parent,
00032 const wxWindowID id,
00033 wxString title,
00034 const wxPoint& pos,
00035 const wxSize& size);
00037 virtual ~WxViewer();
00039 void ShowNextImage();
00041 void StartPlayer();
00043 void StopPlayer();
00045 bool RefreshIfNecessary();
00047 void SetImageVector(std::vector<ImagePointerHolder*>& pointers);
00048
00049
00050 private:
00052 void ShowImage(vtkImageData* im);
00054 vtkImageViewer2* mViewer;
00056 crea::creawxVTKRenderWindowInteractor *mInteractor;
00058 int mx1,mx2,my1,my2,mz1,mz2;
00060 double mspx,mspy,mspz;
00062 int mCurrent;
00064 WxViewerPlayer* mPlayer;
00066 wxMutex mMutex;
00068 bool mNeedRefresh;
00070 vtkImageData* mLastImageShown;
00072 std::vector<ImagePointerHolder*> imagePointers;
00073
00074 };
00075
00076 }
00077
00078 #endif // USE_WIDGETS
00079
00080 #endif