]> Creatis software - clitk.git/blobdiff - vv/vvMainWindow.cxx
Merge branch 'master' of git.creatis.insa-lyon.fr:clitk
[clitk.git] / vv / vvMainWindow.cxx
index 948c8e12da32159972d82a6eecef34924cf3df39..7f468d073b1553385db0336c7e17742698cedde9 100644 (file)
@@ -1240,6 +1240,7 @@ void vvMainWindow::ChangeViewMode()
   typedef struct _SIZE{
     QSplitter* splitter;
     QList<int> size1, size2;
+    int cols[3];
   }SplitterSize;
   SplitterSize sizes[4];
   sizes[0].splitter = OSplitter;
@@ -1247,24 +1248,36 @@ void vvMainWindow::ChangeViewMode()
   sizes[0].size1.push_back(0);
   sizes[0].size2.push_back(1);
   sizes[0].size2.push_back(0);
+  sizes[0].cols[0] = 2;
+  sizes[0].cols[1] = 3;
+  sizes[0].cols[2] = 4;
 
   sizes[1].splitter = ESplitter;
   sizes[1].size1.push_back(0);
   sizes[1].size1.push_back(1);
   sizes[1].size2.push_back(1);
   sizes[1].size2.push_back(0);
+  sizes[1].cols[0] = 1;
+  sizes[1].cols[1] = 3;
+  sizes[1].cols[2] = 4;
 
   sizes[2].splitter = OSplitter;
   sizes[2].size1.push_back(1);
   sizes[2].size1.push_back(0);
   sizes[2].size2.push_back(0);
   sizes[2].size2.push_back(1);
+  sizes[2].cols[0] = 1;
+  sizes[2].cols[1] = 2;
+  sizes[2].cols[2] = 4;
 
   sizes[3].splitter = ESplitter;
   sizes[3].size1.push_back(0);
   sizes[3].size1.push_back(1);
   sizes[3].size2.push_back(0);
   sizes[3].size2.push_back(1);
+  sizes[3].cols[0] = 1;
+  sizes[3].cols[1] = 2;
+  sizes[3].cols[2] = 3;
   
   int slicer = mSlicerManagers[mCurrentPickedImageIndex]->GetSelectedSlicer();
   if (viewMode == 1) {
@@ -1272,9 +1285,9 @@ void vvMainWindow::ChangeViewMode()
       viewMode = 0;
       splitter_3->setSizes(sizes[slicer].size1);
       sizes[slicer].splitter->setSizes(sizes[slicer].size2);
-      DataTree->setColumnHidden(2,1);
-      DataTree->setColumnHidden(3,1);
-      DataTree->setColumnHidden(4,1);
+      DataTree->setColumnHidden(sizes[slicer].cols[0],1);
+      DataTree->setColumnHidden(sizes[slicer].cols[1],1);
+      DataTree->setColumnHidden(sizes[slicer].cols[2],1);
     }
   } else {
     QList<int> size;
@@ -1284,9 +1297,9 @@ void vvMainWindow::ChangeViewMode()
       size.push_back(1);
       splitter_3->setSizes(size);
       sizes[slicer].splitter->setSizes(size);
-      DataTree->setColumnHidden(2,0);
-      DataTree->setColumnHidden(3,0);
-      DataTree->setColumnHidden(4,0);
+      DataTree->setColumnHidden(sizes[slicer].cols[0],0);
+      DataTree->setColumnHidden(sizes[slicer].cols[1],0);
+      DataTree->setColumnHidden(sizes[slicer].cols[2],0);
     }
   }
   UpdateRenderWindows();
@@ -1803,6 +1816,32 @@ void vvMainWindow::ApplyWindowLevelToAllImages()
 }
 //------------------------------------------------------------------------------
 
+//------------------------------------------------------------------------------
+void vvMainWindow::ApplyWindowToSetOfImages(double window, unsigned int indexMin, unsigned int indexMax)
+{
+  for (unsigned int i = indexMin; i <= indexMax && i < mSlicerManagers.size(); i++) {
+    if (mSlicerManagers[i] == NULL)
+      continue;
+    mSlicerManagers[i]->SetColorWindow(window);
+    mSlicerManagers[i]->SetPreset(6);
+    mSlicerManagers[i]->Render();
+  }
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvMainWindow::ApplyLevelToSetOfImages(double level, unsigned int indexMin, unsigned int indexMax)
+{
+  for (unsigned int i = indexMin; i <= indexMax && i < mSlicerManagers.size(); i++) {
+    if (mSlicerManagers[i] == NULL)
+      continue;
+    mSlicerManagers[i]->SetColorLevel(level);
+    mSlicerManagers[i]->SetPreset(6);
+    mSlicerManagers[i]->Render();
+  }
+}
+//------------------------------------------------------------------------------
+
 //------------------------------------------------------------------------------
 void vvMainWindow::UpdateLinkManager(std::string id, int slicer, double x, double y, double z, int temps)
 {
@@ -2705,23 +2744,24 @@ void vvMainWindow::UpdateTSlice(int slicer, int slice)
 //------------------------------------------------------------------------------
 void vvMainWindow::UpdateSliceRange(int slicer, int min, int max, int tmin, int tmax)
 {
-  int position = int((min+max)/2);
+  //int position = int((min+max)/2);
+  int position = mSlicerManagers[mCurrentPickedImageIndex]->GetSlicer(slicer)->GetSlice();
   if (slicer == 0) {
-    NOVerticalSlider->setValue(position);
     NOVerticalSlider->setRange(min,max);
     NOHorizontalSlider->setRange(tmin,tmax);
+    NOVerticalSlider->setValue(position);
   } else if (slicer == 1) {
-    NEVerticalSlider->setValue(position);
     NEVerticalSlider->setRange(min,max);
     NEHorizontalSlider->setRange(tmin,tmax);
+    NEVerticalSlider->setValue(position);
   } else if (slicer == 2) {
-    SOVerticalSlider->setValue(position);
     SOVerticalSlider->setRange(min,max);
     SOHorizontalSlider->setRange(tmin,tmax);
+    SOVerticalSlider->setValue(position);
   } else if (slicer == 3) {
-    SEVerticalSlider->setValue(position);
     SEVerticalSlider->setRange(min,max);
     SEHorizontalSlider->setRange(tmin,tmax);
+    SEVerticalSlider->setValue(position);
   }
 }
 //------------------------------------------------------------------------------