#include <stdio.h>
#include <time.h>
-
using namespace crea;
namespace creaImageIO
// void ShowImage(vtkImageData* v);
// void StartIterator();
void OnExit();
-
+
private:
//std::vector<vtkImageData*> mImagesToPlay;
//vtkImageViewer2* mViewer;
GimmickDebugMessage(1,"WxViewer::WxViewer"
<<std::endl);
+ mNeedRefresh = false;
+ mLastImageShown = NULL;
+
wxBoxSizer *topsizer = new wxBoxSizer(wxVERTICAL);
mCurrent = 0;
- mPlayer = new WxViewerPlayer(this); //images, mViewer, mInteractor, this);
+ mPlayer = new WxViewerPlayer(this); //images, mViewer, mInteractor, this);
+
mPlayer->Create();
mPlayer->Run();
void WxViewer::ShowNextImage()
{
wxMutexLocker lock(mMutex);
+
+ /*
GimmickMessage(1,"WxViewer::ShowNextImage() "
<<mCurrent+1<<"/"
<<images.size()<<std::endl);
+ */
+
if (mCurrent<images.size())
{
ShowImage(images[mCurrent]);
+ if ( images[mCurrent] != mLastImageShown ) mNeedRefresh = true;
+ mLastImageShown = images[mCurrent];
}
mCurrent++;
if (mCurrent >= images.size()) mCurrent = 0;
if (im==0) return;
mViewer->SetInput(im);
+
mViewer->SetSlice( 0 );
int x1,x2,y1,y2,z1,z2;
// mInteractor->Refresh();
//mInteractor->Render();
- // mViewer->Render();
-
- ::wxWakeUpIdle();
+ // mViewer->Render();
+
+ //::wxWakeUpIdle();
}
//================================================================
// mInteractor->Refresh();
if(images.size()>0)
{
- mInteractor->Render();
+// mInteractor->Render();
}
//mViewer->Render();
}
+
+ //================================================================
+ bool WxViewer::RefreshIfNecessary()
+ {
+ if (mNeedRefresh)
+ {
+ GimmickMessage(1,"WxViewer : Refreshing"<<std::endl);
+
+ mInteractor->Render();
+ mNeedRefresh = false;
+ return true;
+ }
+ return false;
+ }
+ //==================================================
+ void WxViewer::StopPlayer()
+ {
+ mPlayer->Delete();
+ }
- //=================================================
// BEGIN_EVENT_TABLE(WxGimmickFrame, wxDialog)
GimmickMessage(1,"WxViewerPlayer::Entry()"<<std::endl);
while(true)
- {
- mWxViewer->ShowNextImage();
- clock_t endwait;
- endwait = clock () + 0.2 * CLOCKS_PER_SEC ;
- while (clock() < endwait) {}
+ {
+ if(!TestDestroy())
+ {
+
+ mWxViewer->ShowNextImage();
+ // mWxViewer->Refresh();
+ ::wxWakeUpIdle();
+ clock_t endwait;
+ endwait = clock () + 0.2 * CLOCKS_PER_SEC ;
+ while (clock() < endwait) {}
+
+ }
+ else
+ {
+ break;
+ }
/*
for(i=mImagesToPlay.begin();i!=mImagesToPlay.end();++i)
{
mParent->Refresh();
endwait = clock () + 0.2 * CLOCKS_PER_SEC ;
while (clock() < endwait) {}
- }
+
}
*/
GimmickMessage(1,"WxViewerPlayer::OnExit() "<<std::endl);
}
- //=====================================================================
-
} // EO namespace creaImageIO