]> Creatis software - clitk.git/commitdiff
Merge branch 'master' into extentSimon
authortbaudier <thomas.baudier@creatis.insa-lyon.fr>
Thu, 19 Jan 2017 15:13:42 +0000 (16:13 +0100)
committertbaudier <thomas.baudier@creatis.insa-lyon.fr>
Thu, 19 Jan 2017 15:13:42 +0000 (16:13 +0100)
vv/vvSlicer.cxx

index 46139cd75fa1b6d7bb3a3b66a0d873d25ee6cdbf..26d2ac254b2b4ee41139e9dae963db7c70cce882 100644 (file)
@@ -1007,7 +1007,7 @@ void vvSlicer::SetSliceOrientation(int orientation)
   
   if (this->Renderer && this->GetInput()) {
     double scale = this->Renderer->GetActiveCamera()->GetParallelScale();
-    this->Renderer->ResetCamera();
+    ResetCamera();
     this->Renderer->GetActiveCamera()->SetParallelScale(scale);
   }
 
@@ -1239,7 +1239,15 @@ void vvSlicer::UpdateDisplayExtent()
   if (this->Renderer) {
     if (this->InteractorStyle &&
         this->InteractorStyle->GetAutoAdjustCameraClippingRange()) {
+      double positionCamera[3], originTemp[3];
+      this->Renderer->GetActiveCamera()->GetPosition(positionCamera);
       this->Renderer->ResetCameraClippingRange();
+      originTemp[0] = mImage->GetVTKImages()[mCurrentTSlice]->GetOrigin()[0];
+      originTemp[1] = mImage->GetVTKImages()[mCurrentTSlice]->GetOrigin()[1];
+      originTemp[2] = mImage->GetVTKImages()[mCurrentTSlice]->GetOrigin()[2];
+      mConcatenatedTransform->GetInverse()->TransformPoint(originTemp, originTemp);
+      positionCamera[this->SliceOrientation] = originTemp[this->SliceOrientation]-1;
+      this->Renderer->GetActiveCamera()->SetPosition(positionCamera);
     } else {
       vtkCamera *cam = this->Renderer->GetActiveCamera();
       if (cam) {
@@ -1401,7 +1409,6 @@ void vvSlicer::SetRenderWindow(int orientation, vtkRenderWindow * rw)
 
   this->GetRenderer()->AddActor(pdmA);
   this->GetRenderer()->AddActor(ca);
-  this->GetRenderer()->ResetCamera();
 
   //this is just a mapping between the labeling of the orientations presented to the user and
   //the one used by vtk