]> Creatis software - clitk.git/blobdiff - vv/vvToolProfile.cxx
Debug RTStruct conversion with empty struc
[clitk.git] / vv / vvToolProfile.cxx
index 4360fee91119781a9401032d189fafed7065cdf6..baf34f86bc35daa0e393d35388bd50633aa11ba8 100644 (file)
@@ -361,18 +361,21 @@ void vvToolProfile::cancelPoints()
 //------------------------------------------------------------------------------
 void vvToolProfile::RemoveVTKObjects()
 { 
-  for(int i=0;i<mCurrentSlicerManager->GetNumberOfSlicers(); 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;i<mCurrentSlicerManager->GetNumberOfSlicers(); 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();
+  }
 }
 //------------------------------------------------------------------------------
 
@@ -381,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();
 }
 //------------------------------------------------------------------------------
@@ -509,50 +511,8 @@ void vvToolProfile::SaveAs()
             close();
             return;
         }
-        
-        vtkSmartPointer<vtkFloatArray> arrX = vtkSmartPointer<vtkFloatArray>::New();
-        vtkSmartPointer<vtkFloatArray> arrY = vtkSmartPointer<vtkFloatArray>::New();
-        vtkSmartPointer<vtkFloatArray> coords = vtkSmartPointer<vtkFloatArray>::New();
-        arrX = mFilter->GetArrayX();
-        arrY = mFilter->GetArrayY();
-        coords = mFilter->GetCoord();
-        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 << "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 (i<arrX->GetNumberOfTuples()) {
-            fileOpen << i << "\t" << arrY->GetTuple(i)[0] << "\t" ;
-      
-            coords->GetTuple(i, tuple);
-            for (int j=0; j<mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() ; ++j) {
-                fileOpen << tuple[j] << "\t" ;
-            }
-            int j(0);
-            while (j<mCurrentSlicerManager->GetImage()->GetNumberOfDimensions() && j<3) {
-                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) {
-                fileOpen << tuple[3] << "\t" ;
-            }
-            fileOpen << endl;
-            ++i;
-        }
-  
-        delete [] tuple;
+
+        mFilter->WriteOutput(mTextFileName.c_str());
 
         fileOpen.close();
         QApplication::restoreOverrideCursor();
@@ -655,7 +615,11 @@ void vvToolProfile::InitializeLine()
       unsigned char red[3] = { 255, 0, 0 };
       vtkSmartPointer<vtkUnsignedCharArray> colors = vtkSmartPointer<vtkUnsignedCharArray>::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;i<mCurrentSlicerManager->GetNumberOfSlicers(); i++) {