X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolProfile.cxx;h=6ebe1449703243b679570b0ff825115f589132d7;hb=cbe5a471e16307e956e4cf5653a61cd5d83c4ee3;hp=f0c47d56e377748ec962bf247f492943cdc374ea;hpb=ae5640b3937e3d0d7b54c7af1f311ebbe2dd7a9a;p=clitk.git diff --git a/vv/vvToolProfile.cxx b/vv/vvToolProfile.cxx index f0c47d5..6ebe144 100644 --- a/vv/vvToolProfile.cxx +++ b/vv/vvToolProfile.cxx @@ -29,6 +29,7 @@ #include "vvToolInputSelectorWidget.h" // vtk +#include #include #include #include @@ -46,6 +47,10 @@ #include #include +#ifdef Q_OS_OSX +# include "vvOSXHelper.h" +#endif + //------------------------------------------------------------------------------ // Create the tool and automagically (I like this word) insert it in // the main window menu. @@ -104,6 +109,10 @@ vvToolProfile::vvToolProfile(vvMainWindowBase * parent, Qt::WindowFlags f) this->ProfileWidget->GetRenderWindow()->AddRenderer(mView->GetRenderer()); ProfileWidget->show(); +#ifdef Q_OS_OSX + disableGLHiDPI(ProfileWidget->winId()); +#endif + // Main filter mFilter = clitk::ProfileImageGenericFilter::New(); @@ -128,7 +137,6 @@ void vvToolProfile::selectPoint1() QString position = ""; if(mCurrentSlicerManager) { - cout << mCurrentSlicerManager->GetSelectedSlicer() << endl; if (mPoint1Selected) { ProfileWidget->hide(); vtkSmartPointer chart = vtkSmartPointer::New(); @@ -140,33 +148,41 @@ void vvToolProfile::selectPoint1() this->ProfileWidget->GetRenderWindow()->AddRenderer(mView->GetRenderer()); ProfileWidget->show(); mCurrentSlicerManager->GetLandmarks()->RemoveLandmarkWithLabel("P1", mPoint1[3]); - } + } - mPoint1Selected = false; + mPoint1Selected = false; - if(mCurrentSlicerManager->GetSelectedSlicer() != -1) { - double *pos; - pos = new double [4]; - pos[0] = pos[1] = pos[2] = pos[3] = 0; + if(mCurrentSlicerManager->GetSelectedSlicer() != -1) { + double *pos; + pos = new double [4]; + pos[0] = pos[1] = pos[2] = pos[3] = 0; - int i(0); - while (iGetImage()->GetNumberOfDimensions() && i<3) { - pos[i] = mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetCursorPosition()[i]; - position += QString::number(pos[i],'f',1) + " "; - mPoint1[i] = round((pos[i] - mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetOrigin()[i])/mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetSpacing()[i]); - ++i; - } - if (mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() == 4) { - pos[3] = mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetTSlice(); - position += QString::number(pos[3],'f',1) + " "; - mPoint1[3] = round(pos[3]); - } - mPoint1Selected = true; - mCurrentSlicerManager->AddLandmarkProfile(pos[0], pos[1], pos[2], pos[3]); - mCurrentSlicerManager->GetLandmarks()->GetLabels()->SetNumberOfValues(mCurrentSlicerManager->GetLandmarks()->GetLabels()->GetNumberOfValues()-1); - mCurrentSlicerManager->GetLandmarks()->GetLabels()->Modified(); - mCurrentSlicerManager->GetLandmarks()->GetLabels()->InsertNextValue("P1"); + int i(0); + while (iGetImage()->GetNumberOfDimensions() && i<3) { + pos[i] = mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetCursorPosition()[i]; + ++i; + } + double posTransformed[3]; + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetConcatenatedTransform()->TransformPoint(pos, posTransformed); + i = 0; + while (iGetImage()->GetNumberOfDimensions() && i<3) { + pos[i] = posTransformed[i]; + mPoint1[i] = round((pos[i] - mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetOrigin()[i])/mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[i]); + pos[i] = mPoint1[i]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[i] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetOrigin()[i]; //Ensure to be at the center of the voxel + position += QString::number(mPoint1[i],'f',0) + " "; + ++i; + } + if (mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() == 4) { + pos[3] = mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetTSlice(); + mPoint1[3] = pos[3]; + position += QString::number(mPoint1[3],'f',0) + " "; } + mPoint1Selected = true; + mCurrentSlicerManager->AddLandmarkProfile(pos[0], pos[1], pos[2], pos[3]); + mCurrentSlicerManager->GetLandmarks()->GetLabels()->SetNumberOfValues(mCurrentSlicerManager->GetLandmarks()->GetLabels()->GetNumberOfValues()-1); + mCurrentSlicerManager->GetLandmarks()->GetLabels()->Modified(); + mCurrentSlicerManager->GetLandmarks()->GetLabels()->InsertNextValue("P1"); + } } mPosPoint1Label->setText(position); isPointsSelected(); @@ -181,7 +197,7 @@ void vvToolProfile::selectPoint2() QString position = ""; if(mCurrentSlicerManager) { - if (mPoint2Selected) { + if (mPoint2Selected) { ProfileWidget->hide(); vtkSmartPointer chart = vtkSmartPointer::New(); chart->SetAutoSize(false); @@ -192,32 +208,41 @@ void vvToolProfile::selectPoint2() this->ProfileWidget->GetRenderWindow()->AddRenderer(mView->GetRenderer()); ProfileWidget->show(); mCurrentSlicerManager->GetLandmarks()->RemoveLandmarkWithLabel("P2", mPoint2[3]); - } + } - mPoint2Selected = false; - if(mCurrentSlicerManager->GetSelectedSlicer() != -1) { - double *pos; - pos = new double [4]; - pos[0] = pos[1] = pos[2] = pos[3] = 0;; + mPoint2Selected = false; + + if(mCurrentSlicerManager->GetSelectedSlicer() != -1) { + double *pos; + pos = new double [4]; + pos[0] = pos[1] = pos[2] = pos[3] = 0;; - int i(0); - while (iGetImage()->GetNumberOfDimensions() &&i<3) { - pos[i] = mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetCursorPosition()[i]; - position += QString::number(pos[i],'f',1) + " "; - mPoint2[i] = round((pos[i] - mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetOrigin()[i])/mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetSpacing()[i]); - ++i; - } - if (mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() == 4) { - pos[3] = mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetTSlice(); - position += QString::number(pos[3],'f',1) + " "; - mPoint2[3] = round(pos[3]); - } - mPoint2Selected = true; - mCurrentSlicerManager->AddLandmarkProfile(pos[0], pos[1], pos[2], pos[3]); - mCurrentSlicerManager->GetLandmarks()->GetLabels()->SetNumberOfValues(mCurrentSlicerManager->GetLandmarks()->GetLabels()->GetNumberOfValues()-1); - mCurrentSlicerManager->GetLandmarks()->GetLabels()->Modified(); - mCurrentSlicerManager->GetLandmarks()->GetLabels()->InsertNextValue("P2"); + int i(0); + while (iGetImage()->GetNumberOfDimensions() && i<3) { + pos[i] = mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetCursorPosition()[i]; + ++i; + } + double posTransformed[3]; + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetConcatenatedTransform()->TransformPoint(pos, posTransformed); + i = 0; + while (iGetImage()->GetNumberOfDimensions() && i<3) { + pos[i] = posTransformed[i]; + mPoint2[i] = round((pos[i] - mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetOrigin()[i])/mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[i]); + pos[i] = mPoint2[i]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[i] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetOrigin()[i]; //Ensure to be at the center of the voxel + position += QString::number(mPoint2[i],'f',0) + " "; + ++i; + } + if (mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() == 4) { + pos[3] = mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetTSlice(); + mPoint2[3] = pos[3]; + position += QString::number(mPoint2[3],'f',0) + " "; } + mPoint2Selected = true; + mCurrentSlicerManager->AddLandmarkProfile(pos[0], pos[1], pos[2], pos[3]); + mCurrentSlicerManager->GetLandmarks()->GetLabels()->SetNumberOfValues(mCurrentSlicerManager->GetLandmarks()->GetLabels()->GetNumberOfValues()-1); + mCurrentSlicerManager->GetLandmarks()->GetLabels()->Modified(); + mCurrentSlicerManager->GetLandmarks()->GetLabels()->InsertNextValue("P2"); + } } mPosPoint2Label->setText(position); isPointsSelected(); @@ -266,13 +291,15 @@ void vvToolProfile::computeProfile() mFilter->SetArgsInfo(mArgsInfo); mFilter->Update(); + //Creation of the XY chart vtkSmartPointer table = vtkSmartPointer::New(); vtkSmartPointer arrX = vtkSmartPointer::New(); vtkSmartPointer arrY = vtkSmartPointer::New(); arrX = mFilter->GetArrayX(); arrY = mFilter->GetArrayY(); - arrX->SetName("Voxel"); + arrX->SetName("Distance (mm)"); arrY->SetName("Intensity"); + table->AddColumn(arrX); table->AddColumn(arrY); @@ -290,6 +317,8 @@ void vvToolProfile::computeProfile() #endif line->SetColor(0, 255, 0, 255); line->SetWidth(1.0); + chart->GetAxis(vtkAxis::LEFT)->SetTitle("Intensity"); + chart->GetAxis(vtkAxis::BOTTOM)->SetTitle("Distance (mm)"); this->ProfileWidget->GetRenderWindow()->GetRenderers()->RemoveAllItems(); this->ProfileWidget->GetRenderWindow()->AddRenderer(mView->GetRenderer()); @@ -332,18 +361,19 @@ void vvToolProfile::cancelPoints() //------------------------------------------------------------------------------ void vvToolProfile::RemoveVTKObjects() { - for(int i=0;iGetNumberOfSlicers(); i++) { - mCurrentSlicerManager->GetSlicer(i)->GetRenderer()->RemoveActor(mLineActors[i]); - } + if (mCurrentSlicerManager) + { + for(int i=0;iGetNumberOfSlicers(); i++) { + mCurrentSlicerManager->GetSlicer(i)->GetRenderer()->RemoveActor(mLineActors[i]); + } - if (mPoint1Selected) - mCurrentSlicerManager->GetLandmarks()->RemoveLandmarkWithLabel("P1", mPoint1[3]); - if (mPoint2Selected) - mCurrentSlicerManager->GetLandmarks()->RemoveLandmarkWithLabel("P2", mPoint2[3]); + if (mPoint1Selected) + mCurrentSlicerManager->GetLandmarks()->RemoveLandmarkWithLabel("P1", mPoint1[3]); + if (mPoint2Selected) + mCurrentSlicerManager->GetLandmarks()->RemoveLandmarkWithLabel("P2", mPoint2[3]); - - if (mCurrentSlicerManager) mCurrentSlicerManager->Render(); + } } //------------------------------------------------------------------------------ @@ -383,9 +413,9 @@ void vvToolProfile::InputIsSelected(vvSlicerManager * m) { mCurrentSlicerManager = m; - mPoint1 = new int[4]; + mPoint1 = new double[4]; mPoint1[0] = mPoint1[1] = mPoint1[2] = mPoint1[3] = 0; - mPoint2 = new int[4]; + mPoint2 = new double[4]; mPoint2[0] = mPoint2[1] = mPoint2[2] = mPoint2[3] = 0; mSaveProfileButton->setEnabled(false); @@ -490,7 +520,7 @@ void vvToolProfile::SaveAs() double *tuple; tuple = new double[mCurrentSlicerManager->GetImage()->GetNumberOfDimensions()]; int i(0); - + fileOpen << "The Bresenham algorithm is used to travel along the line. Values represent the center of each crossed voxel (in voxel and mm)" << endl; fileOpen << "Id" << "\t" << "Value" << "\t" ; fileOpen << "x(vox)" << "\t" << "y(vox)" << "\t"; if (mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() >=3) @@ -505,7 +535,7 @@ void vvToolProfile::SaveAs() fileOpen << endl; while (iGetNumberOfTuples()) { - fileOpen << arrX->GetTuple(i)[0] << "\t" << arrY->GetTuple(i)[0] << "\t" ; + fileOpen << i << "\t" << arrY->GetTuple(i)[0] << "\t" ; coords->GetTuple(i, tuple); for (int j=0; jGetImage()->GetNumberOfDimensions() ; ++j) { @@ -513,7 +543,7 @@ void vvToolProfile::SaveAs() } int j(0); while (jGetImage()->GetNumberOfDimensions() && j<3) { - fileOpen << tuple[j]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetSpacing()[j]+mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetOrigin()[j] << "\t" ; + fileOpen << tuple[j]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[j]+mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetOrigin()[j] << "\t" ; ++j; } if (mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() == 4) { @@ -561,14 +591,15 @@ void vvToolProfile::DisplayLine(int slicer) if(mCurrentSlicerManager) { if(mCurrentSlicerManager->GetSelectedSlicer() != -1) { - if (std::min(mPoint1[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()],mPoint2[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()]) <= mCurrentSlicerManager->GetSlicer(slicer)->GetSlice() && std::max(mPoint1[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()],mPoint2[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()]) >= mCurrentSlicerManager->GetSlicer(slicer)->GetSlice()) { + double currentSlice = (mCurrentSlicerManager->GetSlicer(slicer)->GetSlice()*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetSpacing()[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetOrigin()[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()] - mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetOrigin()[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()] )/ mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()]; + if (std::min(mPoint1[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()],mPoint2[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()]) <= currentSlice && std::max(mPoint1[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()],mPoint2[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()]) >= currentSlice) { vtkSmartPointer clippingBox = vtkSmartPointer::New(); double extent[6]; for (int j=0; j<6; ++j) { extent[j] = mCurrentSlicerManager->GetSlicer(slicer)->GetExtent()[j]; } - extent[2*mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()] = mCurrentSlicerManager->GetSlicer(slicer)->GetImageActor()->GetBounds()[ mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()*2 ]-fabs(mCurrentSlicerManager->GetSlicer(slicer)->GetInput()->GetSpacing()[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()]); - extent[2*mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()+1] = mCurrentSlicerManager->GetSlicer(slicer)->GetImageActor()->GetBounds()[ mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()*2+1 ]+fabs(mCurrentSlicerManager->GetSlicer(slicer)->GetInput()->GetSpacing()[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()]); + extent[2*mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()] = mCurrentSlicerManager->GetSlicer(slicer)->GetImageActor()->GetBounds()[ mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()*2 ]-fabs(mCurrentSlicerManager->GetSlicer(slicer)->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()]); + extent[2*mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()+1] = mCurrentSlicerManager->GetSlicer(slicer)->GetImageActor()->GetBounds()[ mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()*2+1 ]+fabs(mCurrentSlicerManager->GetSlicer(slicer)->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[mCurrentSlicerManager->GetSlicer(slicer)->GetOrientation()]); clippingBox->SetBounds(extent); vtkSmartPointer clipper = vtkSmartPointer::New(); @@ -576,7 +607,10 @@ void vvToolProfile::DisplayLine(int slicer) #if VTK_MAJOR_VERSION <= 5 clipper->SetInput(mLinesPolyData); #else - clipper->SetInputData(mLinesPolyData); + mLineTransform = vtkSmartPointer::New(); + mLineTransform->SetInputData(mLinesPolyData); + mLineTransform->SetTransform(mCurrentSlicerManager->GetSlicer(slicer)->GetConcatenatedTransform()->GetInverse()); + clipper->SetInputConnection(mLineTransform->GetOutputPort()); #endif clipper->InsideOutOff(); clipper->Update(); @@ -655,14 +689,14 @@ void vvToolProfile::SetPoints() } */ double p0[4], p1[4]; - p0[0] = mPoint1[0]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetSpacing()[0] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetOrigin()[0]; - p0[1] = mPoint1[1]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetSpacing()[1] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetOrigin()[1]; - p0[2] = mPoint1[2]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetSpacing()[2] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetOrigin()[2]; + p0[0] = mPoint1[0]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[0] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetOrigin()[0]; + p0[1] = mPoint1[1]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[1] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetOrigin()[1]; + p0[2] = mPoint1[2]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[2] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetOrigin()[2]; p0[3] = mPoint1[3]; - p1[0] = mPoint2[0]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetSpacing()[0] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetOrigin()[0]; - p1[1] = mPoint2[1]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetSpacing()[1] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetOrigin()[1]; - p1[2] = mPoint2[2]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetSpacing()[2] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetOrigin()[2]; + p1[0] = mPoint2[0]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[0] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetOrigin()[0]; + p1[1] = mPoint2[1]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[1] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetOrigin()[1]; + p1[2] = mPoint2[2]*mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetSpacing()[2] + mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetImage()->GetVTKImages()[mCurrentSlicerManager->GetTSlice()]->GetOrigin()[2]; p1[3] = mPoint2[3]; vtkSmartPointer pts = mLinesPolyData->GetPoints();