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
//----------------------------------------------------------------------------\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
return;\r
}\r
\r
-\r
if (slice < 0)\r
slice = 0;\r
else if (slice > mSlicers[0]->GetTMax())\r
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
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
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
//----------------------------------------------------------------------------\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
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
mPreviousSlice[slicer] = slice;\r
mPreviousTSlice[slicer] = tslice;\r
\r
- emit UpdateTSlice(slicer, tslice);\r
+ emit UpdateTSlice(slicer, tslice, mFusionSequenceInvolvementCode);\r
}\r
//----------------------------------------------------------------------------\r
\r
//----------------------------------------------------------------------------\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
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