From 3d059f81bab4d113bdd5e87bc15a266381ee7182 Mon Sep 17 00:00:00 2001 From: srit Date: Thu, 3 Mar 2011 16:20:35 +0000 Subject: [PATCH] Put GetScalarComponentAsDouble with required update in static function for use by other objects. --- vv/vvSlicer.cxx | 21 +++++++++++++++------ vv/vvSlicer.h | 1 + 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/vv/vvSlicer.cxx b/vv/vvSlicer.cxx index f287e4d..c9b50a7 100644 --- a/vv/vvSlicer.cxx +++ b/vv/vvSlicer.cxx @@ -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; diff --git a/vv/vvSlicer.h b/vv/vvSlicer.h index a2f77e9..4b7d169 100644 --- a/vv/vvSlicer.h +++ b/vv/vvSlicer.h @@ -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(); -- 2.46.1