mCurrent = 0;
- mPlayer = new WxViewerPlayer(this); //images, mViewer, mInteractor, this);
-
- mPlayer->Create();
- mPlayer->Run();
-
+ mPlayer = 0;
+
topsizer-> Add( mInteractor ,1,wxGROW ,0);
SetSizer( topsizer );
Layout();
void WxViewer::ShowNextImage()
{
- wxMutexLocker lock(mMutex);
+ wxMutexLocker lock(mMutex);
- /*
- GimmickMessage(1,"WxViewer::ShowNextImage() "
+
+ GimmickMessage(10,"WxViewer::ShowNextImage() "
<<mCurrent+1<<"/"
<<images.size()<<std::endl);
- */
+
if (mCurrent<images.size())
{
//=====================================================================
void WxViewer::ShowImage(vtkImageData* im)
{
+
GimmickDebugMessage(5,"WxViewer::ShowImage"
<<std::endl);
if (im==0) return;
im->GetSpacing(spx,spy,spz);
im->GetExtent (x1,x2,y1,y2,z1,z2);
- /*
- std::cout << "-----------------------------"<<std::endl;
- std::cout << x1 << "-"<<x2<<std::endl;
- std::cout << y1 << "-"<<y2<<std::endl;
- std::cout << z1 << "-"<<z2<<std::endl;
- std::cout << spx << "-"<<spy<<"-"<<spz<<std::endl;
- */
if ((x1!=mx1) ||
(x2!=mx2) ||
mViewer->GetRenderer()->ComputeVisiblePropBounds(bounds);
- /*
- std::cout <<"bounds : "<<bounds[0]<<","
-<<bounds[1]<<","
-<<bounds[2]<<","
-<<bounds[3]<<","
-<<bounds[4]<<","
- <<bounds[5]<<std::endl;
- */
mViewer->GetRenderer()->ResetCameraClippingRange(bounds);
- /*
- vtkCamera *camera = mViewer->GetRenderer()->GetActiveCamera();
-
- camera->SetViewUp ( spx*0, -spy*1, spz*0);
- camera->SetPosition( spx*(x1+x2)/2, spy*(y1+y2)/2, spz*10000000);
- camera->SetFocalPoint ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*0);
-
- camera->ComputeViewPlaneNormal();
- camera->SetParallelScale( spx*(x2-x1)/2.0 );
-
- camera->Roll ( 180 );
- */
+
}
- // mInteractor->Refresh();
- //mInteractor->Render();
- // mViewer->Render();
-
//::wxWakeUpIdle();
+
}
//================================================================
//==================================================
void WxViewer::StopPlayer()
{
- mPlayer->Delete();
+ wxMutexLocker lock(mMutex);
+ if (mPlayer==0) return;
+ mPlayer->Delete();
+ mPlayer=0;
}
-
+
+ //==================================================
+ void WxViewer::StartPlayer()
+ {
+ // wxMutexLocker lock(mMutex);
+ if (mPlayer != 0) return;
+ mPlayer = new WxViewerPlayer(this);
+ mPlayer->Create();
+ mPlayer->Run();
+ }
+
+
+
// BEGIN_EVENT_TABLE(WxGimmickFrame, wxDialog)
{
GimmickMessage(1,"WxViewerPlayer::Entry()"<<std::endl);
-
- while(true)
- {
- if(!TestDestroy())
+
+ while(!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)
- {
- if(i!=mImagesToPlay.end())
- {
-
- GimmickMessage(1,"ThreadedMovie next image"<<std::endl);
-
- ShowImage(*i);
- mParent->Refresh();
- endwait = clock () + 0.2 * CLOCKS_PER_SEC ;
- while (clock() < endwait) {}
-
-
- }
- */
+
}
return 0;
}