namespace creaImageIO
{
-
+
//=====================================================================
//=====================================================================
size)
{
wxMutexLocker lock(mMutex);
- GimmickDebugMessage(1,"WxViewer::WxViewer"
+ GimmickDebugMessage(6,"WxViewer::WxViewer"
<<std::endl);
mNeedRefresh = false;
mViewer->SetupInteractor ( mInteractor );
mCurrent = 0;
-
- mPlayer = 0;
+ mPlayer = 0;
topsizer-> Add( mInteractor ,1,wxGROW ,0);
SetSizer( topsizer );
WxViewer::~WxViewer()
{
wxMutexLocker lock(mMutex);
- GimmickDebugMessage(1,"WxViewer::~WxViewer"
+ GimmickDebugMessage(6,"WxViewer::~WxViewer"
<<std::endl);
- SetMovieSize(0);
// TO DO : desallocate cleanly
// delete mPlayer;
// delete mInteractor;
}
//=====================================================================
-
- //================================================================
-
- void WxViewer::SetImage(int i, vtkImageData* im)
- {
- wxMutexLocker lock(mMutex);
- if(images.size()>0)
- {
- GimmickDebugMessage(5,"WxViewer::SetImage "<<i+1<<"/"<<images.size()
- <<std::endl);
- if (i<images.size())
- {
- // if (images[i]!=0) images[i]->UnRegister(NULL);
- images[i] = im;
- // if (im!=0) im->Register(NULL);
- }
-
- }
-
- }
-
//================================================================
-
-
-
- //================================================================
-
- bool WxViewer::ImagesEmpty()
- {
- wxMutexLocker lock(mMutex);
- return images.empty();
- }
- //================================================================
-
- //================================================================
-
- void WxViewer::SetMovieSize(unsigned int si)
+ void WxViewer::SetImageVector(std::vector<ImagePointerHolder*>& pointers)
{
- wxMutexLocker lock(mMutex);
- GimmickDebugMessage(5,"WxViewer::SetMovieSize("<<(int)si<<")"
- <<std::endl);
- for (unsigned int i=0;i<images.size();++i)
- {
- if (images[i]!=0)
- {
- // images[i]->UnRegister(NULL);
- }
- }
- images.clear();
- for (unsigned int i=0;i<si;++i) images.push_back(0);
- mCurrent = 0;
+ wxMutexLocker lock(mMutex);
+ GimmickDebugMessage(6,"WxViewer::SetImageVector"<<std::endl);
+ imagePointers=pointers;
}
- //================================================================
//================================================================
wxMutexLocker lock(mMutex);
- GimmickMessage(10,"WxViewer::ShowNextImage() "
+ GimmickDebugMessage(10,"WxViewer::ShowNextImage() "
<<mCurrent+1<<"/"
- <<images.size()<<std::endl);
-
+ <<imagePointers.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(imagePointers.size()>0)
+ {
+ if (mCurrent<imagePointers.size())
+ {
+ ImagePointerHolder* iph=imagePointers[mCurrent];
+ vtkImageData* currIm=iph->Get();
+ ShowImage(currIm);
+ if ( currIm != mLastImageShown )
+ {
+ mNeedRefresh = true;
+ mLastImageShown = currIm;
+ }
+ mCurrent++;
+ }
+ else
+ {
+ mCurrent = 0;
+ ImagePointerHolder* iph=imagePointers[mCurrent];
+ vtkImageData* currIm=iph->Get();
+ ShowImage(currIm);
+ if ( currIm != mLastImageShown )
+ {
+ mNeedRefresh = true;
+ mLastImageShown = currIm;
+ }
+ mCurrent++;
+ }
+ }
}
//================================================================
-
-
-
//=====================================================================
void WxViewer::ShowImage(vtkImageData* im)
{
- GimmickDebugMessage(5,"WxViewer::ShowImage"
+ GimmickDebugMessage(6,"WxViewer::ShowImage"
<<std::endl);
if (im==0) return;
mViewer->GetRenderer()->ResetCameraClippingRange(bounds);
- }
-
- //::wxWakeUpIdle();
+ }
}
//================================================================
- //==================================================
- void WxViewer::OnInternalIdle()
- {
- // mInteractor->Refresh();
- if(images.size()>0)
- {
-// mInteractor->Render();
- }
- //mViewer->Render();
- }
-
//================================================================
bool WxViewer::RefreshIfNecessary()
{
if (mNeedRefresh)
{
- GimmickMessage(1,"WxViewer : Refreshing"<<std::endl);
+ GimmickDebugMessage(10,"WxViewer : Refreshing"<<std::endl);
mInteractor->Render();
mNeedRefresh = false;
}
return false;
}
+ //================================================================
+
//==================================================
void WxViewer::StopPlayer()
{
wxMutexLocker lock(mMutex);
- if (mPlayer==0) return;
+ if (mPlayer==0 ) return;
mPlayer->Delete();
mPlayer=0;
}
-
+ //================================================================
+
//==================================================
void WxViewer::StartPlayer()
{
mPlayer->Run();
}
-
-
-
// BEGIN_EVENT_TABLE(WxGimmickFrame, wxDialog)
// END_EVENT_TABLE()
void* WxViewerPlayer::Entry()
{
- GimmickMessage(1,"WxViewerPlayer::Entry()"<<std::endl);
+ GimmickDebugMessage(6,"WxViewerPlayer::Entry()"<<std::endl);
while(!TestDestroy())
{
::wxWakeUpIdle();
clock_t endwait;
endwait = clock () + 0.2 * CLOCKS_PER_SEC ;
- while (clock() < endwait) {}
+ while (clock() < endwait ) {}
}
return 0;
//=====================================================================
void WxViewerPlayer::OnExit()
{
- GimmickMessage(1,"WxViewerPlayer::OnExit() "<<std::endl);
+ GimmickDebugMessage(6,"WxViewerPlayer::OnExit() "<<std::endl);
}