- DD(numImage);
-
- // how many intensity ?
-
-
- vtkImageMapToRGBA * mOverlayMapper = vtkImageMapToRGBA::New();
- mOverlayMapper->SetInput(mImage->GetVTKImages()[0]); // DS TODO : to change if it is 4D !!!
- vtkLookupTable * lut = vtkLookupTable::New();
- DD(lut->IsOpaque ());
- lut->SetRange(0,1);
- lut->SetNumberOfTableValues(2);
- lut->SetTableValue(mBackgroundValue, 0, 0, 0, 0.0); // BG
- lut->SetTableValue(1, mColor[0], mColor[1], mColor[2], mAlpha); // FG
- DD(mColor[0]);
- mOverlayMapper->SetLookupTable(lut);
-
- vtkImageActor * mOverlayActor = vtkImageActor::New();
+ // how many intensity ?
+ vtkSmartPointer<vtkImageMapToRGBA> mOverlayMapper = vtkSmartPointer<vtkImageMapToRGBA>::New();
+ if (mImage->IsTimeSequence())
+ {
+ #if VTK_MAJOR_VERSION <= 5
+ mOverlayMapper->SetInput(mImage->GetVTKImages()[numImage]);
+#else
+ mOverlayMapper->SetInputData(mImage->GetVTKImages()[numImage]);
+#endif
+ }
+ else {
+#if VTK_MAJOR_VERSION <= 5
+ mOverlayMapper->SetInput(mImage->GetVTKImages()[0]);
+#else
+ mOverlayMapper->SetInputData(mImage->GetVTKImages()[0]);
+#endif
+ }
+
+ double range[2];
+ if (mImage->IsTimeSequence())
+ {
+ mImage->GetVTKImages()[numImage]->GetScalarRange(range);
+ }
+ else {
+ mImage->GetVTKImages()[0]->GetScalarRange(range);
+ }
+ int n = range[1]-range[0]+1;
+ mColorLUT->SetRange(range[0],range[1]);
+ mColorLUT->SetNumberOfTableValues(n);
+
+ // Mode BG -> all is color except BG
+ if (m_modeBG) {
+ for(int i=0; i<n; i++) {
+ mColorLUT->SetTableValue(i, mColor[0], mColor[1], mColor[2], mAlpha);
+ }
+ mColorLUT->SetTableValue(mBackgroundValue, 0, 0, 0, 0.0);
+ }
+ else {
+ // Mode FG -> all is BG, except FG which is color
+ for(int i=0; i<n; i++) {
+ mColorLUT->SetTableValue(i, 0, 0, 0, 0.0);
+ }
+ mColorLUT->SetTableValue(mForegroundValue, mColor[0], mColor[1], mColor[2], mAlpha);
+ }
+
+ mOverlayMapper->SetLookupTable(mColorLUT);
+
+ vtkSmartPointer<vtkImageActor> mOverlayActor = vtkSmartPointer<vtkImageActor>::New();
+#if VTK_MAJOR_VERSION <= 5