X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOWxViewer.cpp;h=2b473a22703f87773c3abe9c668fbe6c538d010a;hb=60257912f98339ad44b500d6d4b700cca8e8daa9;hp=ac2938be0547227d0eeff708ed59e8dff8ba505b;hpb=1bc65575c477b90bac7c4b02869e40a0d9fb11b0;p=creaImageIO.git diff --git a/src2/creaImageIOWxViewer.cpp b/src2/creaImageIOWxViewer.cpp index ac2938b..2b473a2 100644 --- a/src2/creaImageIOWxViewer.cpp +++ b/src2/creaImageIOWxViewer.cpp @@ -10,7 +10,6 @@ #include #include - using namespace crea; namespace creaImageIO @@ -31,7 +30,7 @@ namespace creaImageIO // void ShowImage(vtkImageData* v); // void StartIterator(); void OnExit(); - + private: //std::vector mImagesToPlay; //vtkImageViewer2* mViewer; @@ -66,6 +65,9 @@ namespace creaImageIO GimmickDebugMessage(1,"WxViewer::WxViewer" <Create(); - mPlayer->Run(); + + mPlayer->Create(); + mPlayer->Run(); topsizer-> Add( mInteractor ,1,wxGROW ,0); SetSizer( topsizer ); @@ -109,14 +112,19 @@ namespace creaImageIO void WxViewer::SetImage(int i, vtkImageData* im) { wxMutexLocker lock(mMutex); - GimmickDebugMessage(5,"WxViewer::SetImage "<0) + { + GimmickDebugMessage(5,"WxViewer::SetImage "<UnRegister(NULL); - images[i] = im; - // if (im!=0) im->Register(NULL); - } + if (iUnRegister(NULL); + images[i] = im; + // if (im!=0) im->Register(NULL); + } + + } + } //================================================================ @@ -157,12 +165,18 @@ namespace creaImageIO void WxViewer::ShowNextImage() { wxMutexLocker lock(mMutex); + + /* GimmickMessage(1,"WxViewer::ShowNextImage() " <= images.size()) mCurrent = 0; @@ -180,6 +194,7 @@ namespace creaImageIO if (im==0) return; mViewer->SetInput(im); + mViewer->SetSlice( 0 ); int x1,x2,y1,y2,z1,z2; @@ -254,9 +269,9 @@ namespace creaImageIO // mInteractor->Refresh(); //mInteractor->Render(); - // mViewer->Render(); - - ::wxWakeUpIdle(); + // mViewer->Render(); + + //::wxWakeUpIdle(); } //================================================================ @@ -264,11 +279,32 @@ namespace creaImageIO void WxViewer::OnInternalIdle() { // mInteractor->Refresh(); - mInteractor->Render(); + if(images.size()>0) + { +// mInteractor->Render(); + } //mViewer->Render(); } + + //================================================================ + bool WxViewer::RefreshIfNecessary() + { + if (mNeedRefresh) + { + GimmickMessage(1,"WxViewer : Refreshing"<Render(); + mNeedRefresh = false; + return true; + } + return false; + } + //================================================== + void WxViewer::StopPlayer() + { + mPlayer->Delete(); + } - //================================================= // BEGIN_EVENT_TABLE(WxGimmickFrame, wxDialog) @@ -290,11 +326,22 @@ namespace creaImageIO GimmickMessage(1,"WxViewerPlayer::Entry()"<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) { @@ -307,7 +354,7 @@ namespace creaImageIO mParent->Refresh(); endwait = clock () + 0.2 * CLOCKS_PER_SEC ; while (clock() < endwait) {} - } + } */ @@ -323,8 +370,6 @@ namespace creaImageIO GimmickMessage(1,"WxViewerPlayer::OnExit() "<