]> Creatis software - clitk.git/blobdiff - vv/vvSlicerManager.cxx
correct bugs related to new window/level option
[clitk.git] / vv / vvSlicerManager.cxx
index 01821d9baca187961efc7556492c3b39f7b1278a..e975da28babd5ee04bdb31120ccd77bd50b5412f 100644 (file)
@@ -77,8 +77,8 @@ vvSlicerManager::vvSlicerManager(int numberOfSlicers)
     mSlicers.push_back(vtkSmartPointer<vvSlicer>::New());\r
   mSelectedSlicer = -1;\r
   \r
-  mPreviousSlice.resize(numberOfSlicers);\r
-  mPreviousTSlice.resize(numberOfSlicers);\r
+  mPreviousSlice.resize(numberOfSlicers, 0);\r
+  mPreviousTSlice.resize(numberOfSlicers, 0);\r
   mSlicingPreset = WORLD_SLICING;\r
 \r
   \r
@@ -513,7 +513,7 @@ int vvSlicerManager::GetTSlice()
 //----------------------------------------------------------------------------\r
 void vvSlicerManager::SetTSlice(int slice, bool updateLinkedImages)\r
 {\r
-       if (!updateLinkedImages) {\r
+       if (!updateLinkedImages) { //for fusionSequence, TMax / MaxCurrentTSlice are irrelevant.\r
                for ( unsigned int i = 0; i < mSlicers.size(); i++) {\r
                        mSlicers[i]->SetTSlice(slice, updateLinkedImages);\r
                        UpdateTSlice(i);\r
@@ -521,7 +521,6 @@ void vvSlicerManager::SetTSlice(int slice, bool updateLinkedImages)
                return;\r
        }\r
 \r
-\r
   if (slice < 0)\r
     slice = 0;\r
   else if (slice > mSlicers[0]->GetTMax())\r
@@ -557,7 +556,7 @@ void vvSlicerManager::SetNextTSlice(int originating_slicer)
   if (t > mSlicers[0]->GetTMax())\r
     t = 0;\r
   //std::cout << "vvSlicerManager::SetNextTSlice" << std::endl;\r
-  emit UpdateTSlice(originating_slicer,t);\r
+  emit UpdateTSlice(originating_slicer,t, mFusionSequenceInvolvementCode);\r
 }\r
 //----------------------------------------------------------------------------\r
 \r
@@ -570,7 +569,7 @@ void vvSlicerManager::SetPreviousTSlice(int originating_slicer)
   if (t < 0)\r
     t = mSlicers[0]->GetTMax();\r
   //std::cout << "vvSlicerManager::SetPreviousTSlice" << std::endl;\r
-  emit UpdateTSlice(originating_slicer,t);\r
+  emit UpdateTSlice(originating_slicer,t, mFusionSequenceInvolvementCode);\r
 }\r
 //----------------------------------------------------------------------------\r
 \r
@@ -786,7 +785,6 @@ void vvSlicerManager::UpdateLinked(int slicer)
     for (std::list<std::string>::const_iterator i = mLinkedId.begin(); i != mLinkedId.end(); i++) {\r
                if (this->IsInvolvedInFusionSequence()) {\r
                        //this SlicerManager is involved in fusionSequence => do not synchronize the times\r
-      //TODO: check is something more specific should be done ...\r
                        emit UpdateLinkManager(*i, slicer, p[0], p[1], p[2], -1);\r
                }\r
                else {\r
@@ -1057,7 +1055,6 @@ void vvSlicerManager::RemoveActors()
 //----------------------------------------------------------------------------\r
 void vvSlicerManager::UpdateInfoOnCursorPosition(int slicer)\r
 {\r
-//TODO: this is probably here that I shall prevent the overlayPanel to disappear when the mouse goes over the linked sequence!\r
   //  int view = mSlicers[slicer]->GetSliceOrientation();\r
   //  int slice = mSlicers[slicer]->GetSlice();\r
   double x = mSlicers[slicer]->GetCursorPosition()[0];\r
@@ -1183,7 +1180,7 @@ void vvSlicerManager::UpdateTSlice(int slicer)
   int slice = mSlicers[slicer]->GetSlice();\r
 \r
   int tslice = mSlicers[slicer]->GetMaxCurrentTSlice();\r
-  if (this->IsInvolvedInFusionSequence()) tslice = mSlicers[slicer]->GetTSlice();\r
+  //if (this->IsInvolvedInFusionSequence()) tslice = mSlicers[slicer]->GetTSlice(); //actually, this is handled by the Slicer\r
 \r
   if (mPreviousSlice[slicer] == slice) {\r
     if (mPreviousTSlice[slicer] == tslice) {\r
@@ -1194,7 +1191,7 @@ void vvSlicerManager::UpdateTSlice(int slicer)
   mPreviousSlice[slicer] = slice;\r
   mPreviousTSlice[slicer] = tslice;\r
 \r
-  emit UpdateTSlice(slicer, tslice);\r
+  emit UpdateTSlice(slicer, tslice, mFusionSequenceInvolvementCode);\r
 }\r
 //----------------------------------------------------------------------------\r
 \r
@@ -1247,41 +1244,46 @@ void vvSlicerManager::SetSlicingPreset(SlicingPresetType preset)
 //----------------------------------------------------------------------------\r
 void vvSlicerManager::SetPreset(int preset)\r
 {\r
+\r
   //vtkLookupTable* LUT = static_cast<vtkLookupTable*>(mSlicers[0]->GetWindowLevel()->GetLookupTable());\r
   double window = mSlicers[0]->GetColorWindow();\r
   double level = mSlicers[0]->GetColorLevel();\r
 \r
   std::string component_type=mImage->GetScalarTypeAsITKString();\r
   switch (preset) {\r
-  case 0:\r
+  case WL_AUTO:\r
     double range[2];\r
     mImage->GetScalarRange(range);\r
     window = range[1] - range[0];\r
     level = (range[1] + range[0])* 0.5;\r
     break;\r
-  case 1:\r
+  case WL_HOUNSFIELD:\r
     window = 2000;\r
     level = 0;\r
     break;\r
-  case 2:\r
+  case WL_SOFTTISSUE:\r
     window = 400;\r
     level = 20;\r
     break;\r
-  case 3: // lungs (same as FOCAL)\r
+  case WL_LUNGS: // lungs (same as FOCAL)\r
     window = 1700;\r
     level = -300;\r
     break;\r
-  case 4:\r
+  case WL_BONES:\r
     window = 1000;\r
     level = 500;\r
     break;\r
-  case 5:\r
+  case WL_HEAD:\r
+    window = 200;\r
+    level = 70;\r
+    break;\r
+  case WL_BINARY:\r
     window = 1;\r
     level = 0.5;\r
     break;\r
-  case 6:\r
+  case WL_USER:\r
     break;\r
-  case 7:\r
+  case WL_VENTILATION:\r
     window=1.;\r
     level=0.;\r
     break;\r
@@ -1331,7 +1333,7 @@ void vvSlicerManager::SetLocalColorWindowing(const int slicer, const bool bCtrlK
                                                           this->mSlicers[slicer]->GetConcatenatedTransform());\r
     this->SetColorWindow(max-min);\r
     this->SetColorLevel(0.5*(min+max));\r
-    this->SetPreset(6);\r
+    this->SetPreset(WL_USER);\r
   }\r
   this->Render();\r
   this->UpdateWindowLevel();\r