X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolProfile.cxx;h=baf34f86bc35daa0e393d35388bd50633aa11ba8;hb=HEAD;hp=e269fff7aeacbd9f65c1a8fd259a747ee37650d8;hpb=eab384b4509ea170c55a307b9eb484e70c636bba;p=clitk.git diff --git a/vv/vvToolProfile.cxx b/vv/vvToolProfile.cxx index e269fff..baf34f8 100644 --- a/vv/vvToolProfile.cxx +++ b/vv/vvToolProfile.cxx @@ -47,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. @@ -105,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(); @@ -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(); @@ -336,18 +361,21 @@ void vvToolProfile::cancelPoints() //------------------------------------------------------------------------------ void vvToolProfile::RemoveVTKObjects() { - for(int i=0;iGetNumberOfSlicers(); i++) { - mCurrentSlicerManager->GetSlicer(i)->GetRenderer()->RemoveActor(mLineActors[i]); - } + if (mCurrentSlicerManager) + { + connect(mCurrentSlicerManager, SIGNAL(callAddLandmark(float,float,float,float)), mCurrentSlicerManager, SLOT(AddLandmark(float,float,float,float))); - if (mPoint1Selected) - mCurrentSlicerManager->GetLandmarks()->RemoveLandmarkWithLabel("P1", mPoint1[3]); - if (mPoint2Selected) - mCurrentSlicerManager->GetLandmarks()->RemoveLandmarkWithLabel("P2", mPoint2[3]); + 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 (mCurrentSlicerManager) mCurrentSlicerManager->Render(); + } } //------------------------------------------------------------------------------ @@ -356,8 +384,7 @@ void vvToolProfile::RemoveVTKObjects() bool vvToolProfile::close() { //RemoveVTKObjects(); - - connect(mCurrentSlicerManager, SIGNAL(callAddLandmark(float,float,float,float)), mCurrentSlicerManager, SLOT(AddLandmark(float,float,float,float))); + return vvToolWidgetBase::close(); } //------------------------------------------------------------------------------ @@ -387,9 +414,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); @@ -484,50 +511,8 @@ void vvToolProfile::SaveAs() close(); return; } - - vtkSmartPointer arrX = vtkSmartPointer::New(); - vtkSmartPointer arrY = vtkSmartPointer::New(); - vtkSmartPointer coords = vtkSmartPointer::New(); - arrX = mFilter->GetArrayX(); - arrY = mFilter->GetArrayY(); - coords = mFilter->GetCoord(); - double *tuple; - tuple = new double[mCurrentSlicerManager->GetImage()->GetNumberOfDimensions()]; - int i(0); - - fileOpen << "Id" << "\t" << "Value" << "\t" ; - fileOpen << "x(vox)" << "\t" << "y(vox)" << "\t"; - if (mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() >=3) - fileOpen << "z(vox)" << "\t"; - if (mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() >=4) - fileOpen << "t" << "\t"; - fileOpen << "x(mm)" << "\t" << "y(mm)" << "\t"; - if (mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() >=3) - fileOpen << "z(mm)" << "\t"; - if (mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() >=4) - fileOpen << "t" << "\t"; - fileOpen << endl; - - while (iGetNumberOfTuples()) { - fileOpen << i << "\t" << arrY->GetTuple(i)[0] << "\t" ; - - coords->GetTuple(i, tuple); - for (int j=0; jGetImage()->GetNumberOfDimensions() ; ++j) { - fileOpen << tuple[j] << "\t" ; - } - 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" ; - ++j; - } - if (mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() == 4) { - fileOpen << tuple[3] << "\t" ; - } - fileOpen << endl; - ++i; - } - - delete [] tuple; + + mFilter->WriteOutput(mTextFileName.c_str()); fileOpen.close(); QApplication::restoreOverrideCursor(); @@ -565,14 +550,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(); @@ -580,7 +566,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(); @@ -626,7 +615,11 @@ void vvToolProfile::InitializeLine() unsigned char red[3] = { 255, 0, 0 }; vtkSmartPointer colors = vtkSmartPointer::New(); colors->SetNumberOfComponents(3); +#if VTK_MAJOR_VERSION >= 8 || (VTK_MAJOR_VERSION == 7 && VTK_MINOR_VERSION >= 1) + colors->InsertNextTypedTuple(red); +#else colors->InsertNextTupleValue(red); +#endif mLinesPolyData->GetCellData()->SetScalars(colors); for(int i=0;iGetNumberOfSlicers(); i++) { @@ -659,14 +652,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();