- void ThreadedMovie::ShowImage(vtkImageData* im)
- {
- mViewer->SetInput(im);
- mViewer->SetSlice( 0 );
-
- int x1,x2,y1,y2,z1,z2;
- double spx,spy,spz;
-
- im->Update();
-
- 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) ||
- (y1!=my1) ||
- (y2!=my2) ||
- (z1!=mz1) ||
- (z2!=mz2) ||
- (spx!=mspx) ||
- (spy!=mspy) ||
- (spz!=mspz)
- )
- {
- mx1 = x1;
- mx2 = x2;
- my1 = y1;
- my2 = y2;
- mz1 = z1;
- mz2 = z2;
- mspx = spx;
- mspy = spy;
- mspz = spz;
-
- double *range = im->GetScalarRange();
- mViewer->SetColorWindow(range[1] - range[0]);
- mViewer->SetColorLevel(0.5 * (range[1] + range[0]));
-
- mViewer->GetRenderer()->ResetCamera();
- double bounds[6];
-
-
- 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->Render();
- }
-