------------------------------------------------------------------------------
| 434 | |
| 435 | //------------------------------------------------------------------------------ |
| 436 | void vtkRenderWindowInteractor::FlyTo(vtkRenderer* ren, double x, double y, double z) |
| 437 | { |
| 438 | double flyFrom[3], flyTo[3]; |
| 439 | double d[3], focalPt[3]; |
| 440 | int i, j; |
| 441 | |
| 442 | flyTo[0] = x; |
| 443 | flyTo[1] = y; |
| 444 | flyTo[2] = z; |
| 445 | ren->GetActiveCamera()->GetFocalPoint(flyFrom); |
| 446 | for (i = 0; i < 3; i++) |
| 447 | { |
| 448 | d[i] = flyTo[i] - flyFrom[i]; |
| 449 | } |
| 450 | double distance = vtkMath::Normalize(d); |
| 451 | double delta = distance / this->NumberOfFlyFrames; |
| 452 | |
| 453 | for (i = 1; i <= NumberOfFlyFrames; i++) |
| 454 | { |
| 455 | for (j = 0; j < 3; j++) |
| 456 | { |
| 457 | focalPt[j] = flyFrom[j] + d[j] * i * delta; |
| 458 | } |
| 459 | ren->GetActiveCamera()->SetFocalPoint(focalPt); |
| 460 | ren->GetActiveCamera()->Dolly(this->Dolly / this->NumberOfFlyFrames + 1.0); |
| 461 | ren->GetActiveCamera()->OrthogonalizeViewUp(); |
| 462 | ren->ResetCameraClippingRange(); |
| 463 | this->Render(); |
| 464 | } |
| 465 | } |
| 466 | |
| 467 | //------------------------------------------------------------------------------ |
| 468 | void vtkRenderWindowInteractor::FlyToImage(vtkRenderer* ren, double x, double y) |
no test coverage detected