#include <QFileDialog>
#include <QShortcut>
+#include <algorithm>
+
// vv
#include "vvToolProfile.h"
#include "vvProgressDialog.h"
#include "vvToolInputSelectorWidget.h"
// vtk
+#include <vtkAxis.h>
#include <vtkImageActor.h>
#include <vtkCamera.h>
#include <vtkImageClip.h>
#include <vtkBox.h>
#include <vtkInformation.h>
+#ifdef Q_OS_OSX
+# include "vvOSXHelper.h"
+#endif
+
//------------------------------------------------------------------------------
// Create the tool and automagically (I like this word) insert it in
// the main window menu.
this->ProfileWidget->GetRenderWindow()->AddRenderer(mView->GetRenderer());
ProfileWidget->show();
+#ifdef Q_OS_OSX
+ disableGLHiDPI(ProfileWidget->winId());
+#endif
+
// Main filter
mFilter = clitk::ProfileImageGenericFilter::New();
{
QString position = "";
+ if(mCurrentSlicerManager) {
if (mPoint1Selected) {
ProfileWidget->hide();
vtkSmartPointer<vtkChartXY> chart = vtkSmartPointer<vtkChartXY>::New();
this->ProfileWidget->GetRenderWindow()->AddRenderer(mView->GetRenderer());
ProfileWidget->show();
mCurrentSlicerManager->GetLandmarks()->RemoveLandmarkWithLabel("P1", mPoint1[3]);
- }
+ }
- mPoint1Selected = false;
- if(mCurrentSlicerManager) {
- if(mCurrentSlicerManager->GetSelectedSlicer() != -1) {
- double *pos;
- int *index;
- pos = new double [4];
- pos[0] = pos[1] = pos[2] = pos[3] = 0;
- index = new int [mCurrentSlicerManager->GetImage()->GetNumberOfDimensions()];
+ mPoint1Selected = false;
+
+ if(mCurrentSlicerManager->GetSelectedSlicer() != -1) {
+ double *pos;
+ pos = new double [4];
+ pos[0] = pos[1] = pos[2] = pos[3] = 0;
- int i(0);
- while (i<mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() && i<3) {
- pos[i] = mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetCursorPosition()[i];
- index[i] = (int) (pos[i] - mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetOrigin()[i])/mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetSpacing()[i];
- position += QString::number(pos[i],'f',1) + " ";
- mPoint1[i] = index[i];
- ++i;
- }
- if (mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() == 4) {
- pos[3] = mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetTSlice();
- index[3] = (int)pos[3];
- position += QString::number(pos[3],'f',1) + " ";
- mPoint1[3] = index[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 (i<mCurrentSlicerManager->GetImage()->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 (i<mCurrentSlicerManager->GetImage()->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();
{
QString position = "";
- if (mPoint2Selected) {
+ if(mCurrentSlicerManager) {
+ if (mPoint2Selected) {
ProfileWidget->hide();
vtkSmartPointer<vtkChartXY> chart = vtkSmartPointer<vtkChartXY>::New();
chart->SetAutoSize(false);
this->ProfileWidget->GetRenderWindow()->AddRenderer(mView->GetRenderer());
ProfileWidget->show();
mCurrentSlicerManager->GetLandmarks()->RemoveLandmarkWithLabel("P2", mPoint2[3]);
- }
+ }
- mPoint2Selected = false;
- if(mCurrentSlicerManager) {
- if(mCurrentSlicerManager->GetSelectedSlicer() != -1) {
- double *pos;
- int *index;
- pos = new double [4];
- pos[0] = pos[1] = pos[2] = pos[3] = 0;;
- index = new int [mCurrentSlicerManager->GetImage()->GetNumberOfDimensions()];
+ 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 (i<mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() &&i<3) {
- pos[i] = mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetCursorPosition()[i];
- index[i] = (int) (pos[i] - mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetOrigin()[i])/mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetInput()->GetSpacing()[i];
- position += QString::number(pos[i],'f',1) + " ";
- mPoint2[i] = index[i];
- ++i;
- }
- if (mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() == 4) {
- pos[3] = mCurrentSlicerManager->GetSlicer(mCurrentSlicerManager->GetSelectedSlicer())->GetTSlice();
- index[3] = (int)pos[3];
- position += QString::number(pos[3],'f',1) + " ";
- mPoint2[3] = index[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 (i<mCurrentSlicerManager->GetImage()->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 (i<mCurrentSlicerManager->GetImage()->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();
void vvToolProfile::computeProfile()
{
if (!mCurrentSlicerManager) close();
-
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
GetArgsInfoFromGUI();
ProfileWidget->hide();
-
+
// Main filter
mFilter->SetInputVVImage(mCurrentImage);
mFilter->SetArgsInfo(mArgsInfo);
mFilter->Update();
- //mImageLine = mFilter->GetOutputVVImage();
+ //Creation of the XY chart
vtkSmartPointer<vtkTable> table = vtkSmartPointer<vtkTable>::New();
vtkSmartPointer<vtkFloatArray> arrX = vtkSmartPointer<vtkFloatArray>::New();
vtkSmartPointer<vtkFloatArray> arrY = vtkSmartPointer<vtkFloatArray>::New();
arrX = mFilter->GetArrayX();
arrY = mFilter->GetArrayY();
- arrX->SetName("Voxel");
+ arrX->SetName("Distance (mm)");
arrY->SetName("Intensity");
+
table->AddColumn(arrX);
table->AddColumn(arrY);
#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());
{
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);
mArgsInfo.input_arg = new char;
mArgsInfo.output_arg = new char;
+
+
}
//------------------------------------------------------------------------------
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)
fileOpen << endl;
while (i<arrX->GetNumberOfTuples()) {
- 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; j<mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() ; ++j) {
}
int j(0);
while (j<mCurrentSlicerManager->GetImage()->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) {
if(mCurrentSlicerManager) {
if(mCurrentSlicerManager->GetSelectedSlicer() != -1) {
+ 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<vtkBox> clippingBox = vtkSmartPointer<vtkBox>::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<vtkClipPolyData> clipper = vtkSmartPointer<vtkClipPolyData>::New();
#if VTK_MAJOR_VERSION <= 5
clipper->SetInput(mLinesPolyData);
#else
- clipper->SetInputData(mLinesPolyData);
+ mLineTransform = vtkSmartPointer<vtkTransformPolyDataFilter>::New();
+ mLineTransform->SetInputData(mLinesPolyData);
+ mLineTransform->SetTransform(mCurrentSlicerManager->GetSlicer(slicer)->GetConcatenatedTransform()->GetInverse());
+ clipper->SetInputConnection(mLineTransform->GetOutputPort());
#endif
clipper->InsideOutOff();
clipper->Update();
mLineActors[slicer]->GetProperty()->SetOpacity(0.995);
mCurrentSlicerManager->GetSlicer(slicer)->GetRenderer()->AddActor(mLineActors[slicer]);
+ }
}
}
}
} */
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<vtkPoints> pts = mLinesPolyData->GetPoints();