level 12
void XXXX::UpdateOrientation(int orientation)
{
// Set the camera position
this->SliceOrientation = orientation;
vtkCamera *cam = this->GetRenderWindow()->GetRenderers()->GetFirstRenderer() ? this->GetRenderWindow()->GetRenderers()->GetFirstRenderer()->GetActiveCamera() : NULL;
if (cam)
{
switch (this->SliceOrientation)
{
case XXXX::SLICE_ORIENTATION_XY:
cam->SetFocalPoint(0,0,0);
cam->SetPosition(0,-1,0);
cam->SetViewUp(0,0,1);
break;
case XXXX::SLICE_ORIENTATION_XZ:
cam->SetFocalPoint(0,0,0);
cam->SetPosition(0,1,0);
cam->SetViewUp(0,0,1);
break;
case XXXX::SLICE_ORIENTATION_YX:
cam->SetFocalPoint(0,0,0);
cam->SetPosition(-1,0,0);
cam->SetViewUp(0,0,1);
break;
case XXXX::SLICE_ORIENTATION_YZ:
cam->SetFocalPoint(0,0,0);
cam->SetPosition(1,0,0);
cam->SetViewUp(0,0,1);
break;
case XXXX::SLICE_ORIENTATION_ZX:
cam->SetFocalPoint(0,0,0);
cam->SetPosition(0,0,1);
cam->SetViewUp(0,1,0);
break;
case XXXX::SLICE_ORIENTATION_ZY:
cam->SetFocalPoint(0,0,0);
cam->SetPosition(0,0,-1);
cam->SetViewUp(0,1,0);
break;
}
}
if (XXXX->GetRenderWindow()->GetRenderers()->GetFirstRenderer())
{
XXXX->GetRenderWindow()->GetRenderers()->GetFirstRenderer()->ResetCamera();
cam->Zoom(1.9); /////你说的就应该是这个地方吧?
}
this->GetRenderWindow()->Render();
}
2015年02月25日 08点02分
4
level 12
这个函数的功能是通过camera控制actor的视角~ 6个面~
最后的zoom是控制大小(其实就是控制视窗的远近)
要记得把zoom放在ReserCamera的后面,Render的前面~~~~
2015年02月25日 08点02分
5