X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvSlicerManager.cxx;h=1a9ad685f80e355b1fc105083e882b05156ad049;hb=46d6314164abf444b420f07539b8f7cbd817f88e;hp=82d6508bf8445eed080b45706bb645cac50efa4a;hpb=eab384b4509ea170c55a307b9eb484e70c636bba;p=clitk.git diff --git a/vv/vvSlicerManager.cxx b/vv/vvSlicerManager.cxx index 82d6508..1a9ad68 100644 --- a/vv/vvSlicerManager.cxx +++ b/vv/vvSlicerManager.cxx @@ -1171,6 +1171,17 @@ void vvSlicerManager::UpdateInfoOnCursorPosition(int slicer) mSlicers[slicer]->GetInput()->GetSpacing()[1]; double Z = (z - mSlicers[slicer]->GetInput()->GetOrigin()[2])/ mSlicers[slicer]->GetInput()->GetSpacing()[2]; + double xyz[3], xyzTransform[3]; + xyz[0] = x; + xyz[1] = y; + xyz[2] = z; + mSlicers[slicer]->GetConcatenatedTransform()->TransformPoint(xyz, xyzTransform); + double XTransform = (xyzTransform[0] - mSlicers[slicer]->GetImage()->GetVTKImages()[GetTSlice()]->GetOrigin()[0])/ + mSlicers[slicer]->GetImage()->GetVTKImages()[GetTSlice()]->GetSpacing()[0]; + double YTransform = (xyzTransform[1] - mSlicers[slicer]->GetImage()->GetVTKImages()[GetTSlice()]->GetOrigin()[1])/ + mSlicers[slicer]->GetImage()->GetVTKImages()[GetTSlice()]->GetSpacing()[1]; + double ZTransform = (xyzTransform[2] - mSlicers[slicer]->GetImage()->GetVTKImages()[GetTSlice()]->GetOrigin()[2])/ + mSlicers[slicer]->GetImage()->GetVTKImages()[GetTSlice()]->GetSpacing()[2]; double value = -VTK_DOUBLE_MAX; int displayVec = 0; double xVec=0, yVec=0, zVec=0, valueVec=0; @@ -1178,12 +1189,12 @@ void vvSlicerManager::UpdateInfoOnCursorPosition(int slicer) int displayFus = 0; double valueOver=0, valueFus=0; #if VTK_MAJOR_VERSION <= 5 - if (X >= mSlicers[slicer]->GetInput()->GetWholeExtent()[0] && - X <= mSlicers[slicer]->GetInput()->GetWholeExtent()[1] && - Y >= mSlicers[slicer]->GetInput()->GetWholeExtent()[2] && - Y <= mSlicers[slicer]->GetInput()->GetWholeExtent()[3] && - Z >= mSlicers[slicer]->GetInput()->GetWholeExtent()[4] && - Z <= mSlicers[slicer]->GetInput()->GetWholeExtent()[5]) { + if (XTransform >= mSlicers[slicer]->GetInput()->GetWholeExtent()[0] && + XTransform <= mSlicers[slicer]->GetInput()->GetWholeExtent()[1] && + YTransform >= mSlicers[slicer]->GetInput()->GetWholeExtent()[2] && + YTransform <= mSlicers[slicer]->GetInput()->GetWholeExtent()[3] && + ZTransform >= mSlicers[slicer]->GetInput()->GetWholeExtent()[4] && + ZTransform <= mSlicers[slicer]->GetInput()->GetWholeExtent()[5]) { value = this->GetScalarComponentAsDouble(mSlicers[slicer]->GetInput(), X, Y, Z); @@ -1232,7 +1243,7 @@ void vvSlicerManager::UpdateInfoOnCursorPosition(int slicer) } emit UpdatePosition(mSlicers[slicer]->GetCursorVisibility(), - x,y,z,X,Y,Z,value); + x,y,z,XTransform,YTransform,ZTransform,value); emit UpdateVector(displayVec,xVec, yVec, zVec, valueVec); emit UpdateOverlay(displayOver,valueOver,value); emit UpdateFusion(displayFus,valueFus); @@ -1240,12 +1251,12 @@ void vvSlicerManager::UpdateInfoOnCursorPosition(int slicer) #else int extentImageReslice[6]; mSlicers[slicer]->GetRegisterExtent(extentImageReslice); - if (X >= extentImageReslice[0] && - X <= extentImageReslice[1] && - Y >= extentImageReslice[2] && - Y <= extentImageReslice[3] && - Z >= extentImageReslice[4] && - Z <= extentImageReslice[5]) { + if (XTransform >= extentImageReslice[0] && + XTransform <= extentImageReslice[1] && + YTransform >= extentImageReslice[2] && + YTransform <= extentImageReslice[3] && + ZTransform >= extentImageReslice[4] && + ZTransform <= extentImageReslice[5]) { value = this->GetScalarComponentAsDouble(mSlicers[slicer]->GetInput(), X, Y, Z); @@ -1294,7 +1305,7 @@ mSlicers[slicer]->GetRegisterExtent(extentImageReslice); } emit UpdatePosition(mSlicers[slicer]->GetCursorVisibility(), - x,y,z,X,Y,Z,value); + x,y,z,XTransform,YTransform,ZTransform,value); emit UpdateVector(displayVec,xVec, yVec, zVec, valueVec); emit UpdateOverlay(displayOver,valueOver,value); emit UpdateFusion(displayFus,valueFus); @@ -1699,7 +1710,7 @@ void vvSlicerManager::AddLandmark(float x,float y,float z,float t) y_index <= mSlicers[0]->GetInput()->GetWholeExtent()[3]+0.5 && z_index >= mSlicers[0]->GetInput()->GetWholeExtent()[4]-0.5 && z_index <= mSlicers[0]->GetInput()->GetWholeExtent()[5]+0.5) { - double value = this->GetScalarComponentAsDouble(mSlicers[0]->GetInput(), x_index, y_index, z_index); + double value = this->GetScalarComponentAsDouble(mSlicers[mSelectedSlicer]->GetInput(), x_index, y_index, z_index); //Value in selected Slicer (not 0): bug #2848 this->GetLandmarks()->AddLandmark(x,y,z,t,value); emit LandmarkAdded(); } @@ -1712,7 +1723,7 @@ void vvSlicerManager::AddLandmark(float x,float y,float z,float t) y_index <= extentImageReslice[3]+0.5 && z_index >= extentImageReslice[4]-0.5 && z_index <= extentImageReslice[5]+0.5) { - double value = this->GetScalarComponentAsDouble(mImage->GetVTKImages()[mSlicers[0]->GetTSlice()], x_index, y_index, z_index); + double value = this->GetScalarComponentAsDouble(mSlicers[mSelectedSlicer]->GetInput(), x_index, y_index, z_index); //Value in selected Slicer (not 0): bug #2848 this->GetLandmarks()->AddLandmark(x,y,z,t,value); emit LandmarkAdded(); } @@ -1733,7 +1744,7 @@ void vvSlicerManager::AddLandmarkProfile(float x,float y,float z,float t) y_index <= mSlicers[0]->GetInput()->GetWholeExtent()[3]+0.5 && z_index >= mSlicers[0]->GetInput()->GetWholeExtent()[4]-0.5 && z_index <= mSlicers[0]->GetInput()->GetWholeExtent()[5]+0.5) { - double value = this->GetScalarComponentAsDouble(mSlicers[0]->GetInput(), x_index, y_index, z_index); + double value = this->GetScalarComponentAsDouble(mSlicers[mSelectedSlicer]->GetInput(), x_index, y_index, z_index); //Value in selected Slicer (not 0): bug #2848 this->GetLandmarks()->AddLandmark(x,y,z,t,value); } #else @@ -1745,7 +1756,7 @@ void vvSlicerManager::AddLandmarkProfile(float x,float y,float z,float t) y_index <= extentImageReslice[3]+0.5 && z_index >= extentImageReslice[4]-0.5 && z_index <= extentImageReslice[5]+0.5) { - double value = this->GetScalarComponentAsDouble(mImage->GetVTKImages()[mSlicers[0]->GetTSlice()], x_index, y_index, z_index); + double value = this->GetScalarComponentAsDouble(mSlicers[mSelectedSlicer]->GetInput(), x_index, y_index, z_index); //Value in selected Slicer (not 0): bug #2848 this->GetLandmarks()->AddLandmark(x,y,z,t,value); } #endif