Slice orientation fix.
This commit is contained in:
@@ -708,8 +708,9 @@ void infinitiViewer::ResetZoomScaleToFitWindowSize() {
|
|||||||
double whFactor = 0.5;
|
double whFactor = 0.5;
|
||||||
double ws = 1.0* size[0];
|
double ws = 1.0* size[0];
|
||||||
double hs = 1.0* size[1];
|
double hs = 1.0* size[1];
|
||||||
double hp = 1.0 * inputData->GetBounds()[upIndex*2+1];
|
double* bounds = inputData->GetBounds();
|
||||||
double wp = 1.0 * inputData->GetBounds()[rightIndex*2+1];
|
double hp = fabs(1.0 * (bounds[upIndex*2+1] - bounds[upIndex*2]));
|
||||||
|
double wp = fabs(1.0 * (bounds[rightIndex*2+1] - bounds[rightIndex*2]));
|
||||||
//because Parallel Scale is campare with half height
|
//because Parallel Scale is campare with half height
|
||||||
if(wp/hp>ws/hs){
|
if(wp/hp>ws/hs){
|
||||||
double aspect = hs/ws;
|
double aspect = hs/ws;
|
||||||
@@ -1242,25 +1243,33 @@ void infinitiViewer::UpdateOrientation()
|
|||||||
vtkCamera* cam = this->Renderer ? this->Renderer->GetActiveCamera() : nullptr;
|
vtkCamera* cam = this->Renderer ? this->Renderer->GetActiveCamera() : nullptr;
|
||||||
if (cam)
|
if (cam)
|
||||||
{
|
{
|
||||||
|
|
||||||
switch (this->SliceOrientation)
|
switch (this->SliceOrientation)
|
||||||
{
|
{
|
||||||
case infinitiViewer::SLICE_ORIENTATION_XY:
|
case infinitiViewer::SLICE_ORIENTATION_XY:
|
||||||
|
{
|
||||||
cam->SetFocalPoint(0, 0, 0);
|
cam->SetFocalPoint(0, 0, 0);
|
||||||
cam->SetPosition(0, 0, -1); // -1 if medical ?
|
cam->SetPosition(0, 0, -1); // -1 if medical ?
|
||||||
cam->SetViewUp(0, -1, 0);
|
cam->SetViewUp(0, -1, 0);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case infinitiViewer::SLICE_ORIENTATION_XZ:
|
case infinitiViewer::SLICE_ORIENTATION_XZ:{
|
||||||
|
double zVec = GetInput()->GetSpacing()[2];
|
||||||
|
double upVal = (zVec > 0.0?1.0:-1.0);
|
||||||
cam->SetFocalPoint(0, 0, 0);
|
cam->SetFocalPoint(0, 0, 0);
|
||||||
cam->SetPosition(0, 1, 0); // 1 if medical ?
|
cam->SetPosition(0, 1*upVal, 0); // 1 if medical ?
|
||||||
cam->SetViewUp(0, 0, -1);
|
cam->SetViewUp(0, 0, -1.0 *upVal);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case infinitiViewer::SLICE_ORIENTATION_YZ:
|
case infinitiViewer::SLICE_ORIENTATION_YZ:{
|
||||||
|
double zVec = GetInput()->GetSpacing()[2];
|
||||||
|
double upVal = (zVec > 0.0?1.0:-1.0);
|
||||||
cam->SetFocalPoint(0, 0, 0);
|
cam->SetFocalPoint(0, 0, 0);
|
||||||
cam->SetPosition( -1, 0, 0); // -1 if medical ?
|
cam->SetPosition( -1 * upVal, 0, 0); // -1 if medical ?
|
||||||
cam->SetViewUp(0, 0, -1);
|
cam->SetViewUp(0, 0, -1.0 *upVal);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user