#include <wx/splitter.h>
#include <creaImageIOSystem.h>
+#include <creaImageIOImagePointerHolder.h>
// For image preview
// vtk and wxvtk classes
namespace creaImageIO
{
- class ThreadedMovie;
+ class WxViewerPlayer;
- class WxViewer : public wxFrame
+ class WxViewer : public wxPanel
{
-
- public:
- friend class ThreadedMovie;
+
+ public:
/// Ctor
WxViewer();
WxViewer(wxWindow *parent,
const wxSize& size);
/// Dtor
virtual ~WxViewer();
- ///Shows the image in the vector as a movie
- void ShowImages();
- ///Shows the image passed as parameter
- void ShowImage(vtkImageData* im);
- ///Adds an image to the selection
- void AddImage(vtkImageData* im);
- ///Clears the selection of images
- void ClearImages();
- ///Returns true if the image vector is empty
- bool ImagesEmpty();
+ ///
+ void ShowNextImage();
+
+ void StartPlayer();
+
+ void StopPlayer();
+
+ bool RefreshIfNecessary();
+
+ void SetImageVector(std::vector<ImagePointerHolder*>& pointers);
+
private:
- /// Previewer
+ ///Shows the image passed as parameter
+ void ShowImage(vtkImageData* im);
+
+ /// Previewer
vtkImageViewer2* mViewer;
/// Associated wxvtk interactor
- crea::creawxVTKRenderWindowInteractor *mInteractor;
-
+ crea::creawxVTKRenderWindowInteractor *mInteractor;
+
+ /// Current extent
int mx1,mx2,my1,my2,mz1,mz2;
+ /// Current spacing
double mspx,mspy,mspz;
- /// The vector of images to show
- std::vector<vtkImageData*> images;
- ///The threaded movie
- ThreadedMovie* mMovie;
+ ///
+ int mCurrent;
+ ///The threaded movie player
+ WxViewerPlayer* mPlayer;
+
+ /// The mutex
+ wxMutex mMutex;
+
+ ///
+ bool mNeedRefresh;
+
+
+ vtkImageData* mLastImageShown;
+ std::vector<ImagePointerHolder*> imagePointers;
};