]> Creatis software - clitk.git/commitdiff
Put GetScalarComponentAsDouble with required update in static function for use by...
authorsrit <srit>
Thu, 3 Mar 2011 16:20:35 +0000 (16:20 +0000)
committersrit <srit>
Thu, 3 Mar 2011 16:20:35 +0000 (16:20 +0000)
vv/vvSlicer.cxx
vv/vvSlicer.h

index f287e4d7e89e7f1de15678ba44faf3725da1c93b..c9b50a7973ac827fa396b8ec59e16a976247ffc9 100644 (file)
@@ -1196,6 +1196,18 @@ void vvSlicer::GetExtremasAroundMousePointer(double & min, double & max)
 }
 //----------------------------------------------------------------------------
 
+//----------------------------------------------------------------------------
+double vvSlicer::GetScalarComponentAsDouble(vtkImageData *image, int X, double Y, double Z, int &ix, int &iy, int &iz, int component)
+{
+  ix = lrint(X);
+  iy = lrint(Y);
+  iz = lrint(Z);
+  image->SetUpdateExtent(ix, ix, iy, iy, iz, iz);
+  image->Update();
+  return image->GetScalarComponentAsDouble(ix, iy, iz, component);
+}
+//----------------------------------------------------------------------------
+
 //----------------------------------------------------------------------------
 void vvSlicer::Render()
 {
@@ -1248,9 +1260,9 @@ void vvSlicer::Render()
         Y <= this->GetInput()->GetWholeExtent()[3] &&
         Z >= this->GetInput()->GetWholeExtent()[4] &&
         Z <= this->GetInput()->GetWholeExtent()[5]) {
-      int ix = lrint(X);
-      int iy = lrint(Y);
-      int iz = lrint(Z);
+      int ix, iy, iz;
+      double value = this->GetScalarComponentAsDouble(this->GetInput(), X, Y, Z, ix, iy, iz);
+
       std::stringstream pixel1;
       std::stringstream pixel2;
       std::stringstream pixel3;
@@ -1259,9 +1271,6 @@ void vvSlicer::Render()
       pixel2 << iy;
       pixel3 << iz;
       temps << mCurrentTSlice;
-      this->GetInput()->SetUpdateExtent(ix, ix, iy, iy, iz, iz);
-      this->GetInput()->Update();
-      double value = this->GetInput()->GetScalarComponentAsDouble(ix, iy, iz, 0);
 
       std::stringstream val;
       val << value;
index a2f77e955c3850f4c82bbdb8e12e104c528447dc..4b7d1697d14c65d6cbd849ee4d5e4fb6d257e61a 100644 (file)
@@ -105,6 +105,7 @@ public:
   void SetDisplayMode(bool i);
   void FlipHorizontalView();
   void FlipVerticalView();
+  static double GetScalarComponentAsDouble(vtkImageData *image, int X, double Y, double Z, int &ix, int &iy, int &iz, int component=0);
   void Render();
   ///Sets the camera to fit the image in the window
   void ResetCamera();