+//------------------------------------------------------------------------------
+void vvToolProfile::selectPoint1()
+{
+ QString position = "";
+ point1Selected = false;
+ if(mCurrentSlicerManager) {
+ if(mCurrentSlicerManager->GetSelectedSlicer() != -1) {
+ double *pos;
+ int *index;
+ pos = new double [mCurrentSlicerManager->GetImage()->GetNumberOfDimensions()];
+ index = new int [mCurrentSlicerManager->GetImage()->GetNumberOfDimensions()];
+
+ for (int i=0; i<mCurrentSlicerManager->GetImage()->GetNumberOfDimensions(); ++i) {
+ 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];
+ }
+ point1Selected = true;
+ }
+ }
+ mPosPoint1Label->setText(position);
+ isPointsSelected();
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolProfile::selectPoint2()
+{
+ QString position = "";
+ point2Selected = false;
+ if(mCurrentSlicerManager) {
+ if(mCurrentSlicerManager->GetSelectedSlicer() != -1) {
+ double *pos;
+ int *index;
+ pos = new double [mCurrentSlicerManager->GetImage()->GetNumberOfDimensions()];
+ index = new int [mCurrentSlicerManager->GetImage()->GetNumberOfDimensions()];
+
+ for (int i=0; i<mCurrentSlicerManager->GetImage()->GetNumberOfDimensions(); ++i) {
+ 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];
+ }
+ point2Selected = true;
+ }
+ }
+ mPosPoint2Label->setText(position);
+ isPointsSelected();
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+bool vvToolProfile::isPointsSelected()
+{
+ if (point1Selected && point2Selected)
+ mComputeProfileButton->setEnabled(true);
+ else
+ mComputeProfileButton->setEnabled(false);
+
+ return (point1Selected && point2Selected);
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolProfile::computeProfile()
+{
+ if (!mCurrentSlicerManager) close();
+
+ QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
+ GetArgsInfoFromGUI();
+
+ // Main filter
+ clitk::ProfileImageGenericFilter::Pointer filter = clitk::ProfileImageGenericFilter::New();
+ filter->SetInputVVImage(mCurrentImage);
+ filter->SetArgsInfo(mArgsInfo);
+ filter->Update();
+
+ QApplication::restoreOverrideCursor();
+
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolProfile::cancelPoints()
+{
+ QString position = "";
+ mPosPoint1Label->setText(position);
+ mPosPoint2Label->setText(position);
+ point1Selected = false;
+ point2Selected = false;
+ mComputeProfileButton->setEnabled(false);
+ isPointsSelected();
+}
+//------------------------------------------------------------------------------
+
+