+ double ranges[2];
+ vtkImageData *image = bbGetInputIn();
+//EED 2017-01-01 Migration VTK7
+#if (VTK_MAJOR_VERSION <= 5)
+ image->Update();
+#endif
+#if (VTK_MAJOR_VERSION >= 6)
+ // ..
+#endif
+ image->GetScalarRange(ranges);
+ scale = 255/(ranges[1]/100);
+//EED 2017-01-01 Migration VTK7
+#if (VTK_MAJOR_VERSION <= 5)
+ mCast->SetInput( bbGetInputIn() );
+#endif
+#if (VTK_MAJOR_VERSION >= 6)
+ mCast->SetInputData( bbGetInputIn() );
+#endif
+ mCast->SetScale( scale / 100.0 );
+ //mCast->SetShift( -bbGetInputShift() );
+ DensityPoints = bbGetInputDensityPoints();
+ //We assign by default the values of density by regarding at range from the image
+ if(DensityPoints.size()==0)
+ {
+ DensityPoints.push_back(ranges[0]);
+ DensityPoints.push_back(ranges[1]);
+ }
+ OpacityValues = bbGetInputOpacityValues();
+ while(DensityPoints.size()>OpacityValues.size())
+ {
+ OpacityValues.push_back(1.0);
+ }
+ double factor = scale/ 100.0 ;
+ double minCF = bbGetInputMinColorWindow();
+ double maxCF = bbGetInputMaxColorWindow();
+ grayTransferFunction->AddSegment( minCF , 0.0 , maxCF , 1.0 );
+ for(int i =0; i< DensityPoints.size(); i++)
+ {
+ cout<<"MIPCreator::Process::dPoint"<<i<<"::"<<DensityPoints.at(i)<<endl;
+ cout<<"MIPCreator::Process::oPoint"<<i<<"::"<<OpacityValues.at(i)<<endl;
+ opacityTransferFunction->AddPoint(DensityPoints.at(i)*factor, OpacityValues.at(i));
+ }
+ //opacityTransferFunction = vtkPiecewiseFunction::New();
+// opacityTransferFunction->AddPoint( 0 , 0.0/100.0 );
+// opacityTransferFunction->AddPoint( 85 , 2.0/100.0 );
+// opacityTransferFunction->AddPoint( 160 , 25.0/100.0 );
+// opacityTransferFunction->AddPoint( 210 , 50.0/100.0 );
+// opacityTransferFunction->AddPoint( 255 , 90.0/100.0 );
+
+ // Create a set of properties for mip
+ vtkVolumeProperty *mipProperty;
+ mipProperty = vtkVolumeProperty::New();
+ mipProperty->SetScalarOpacity( opacityTransferFunction );
+ mipProperty->SetColor( grayTransferFunction );
+// mipProperty->SetInterpolationTypeToLinear();
+ mipProperty->SetInterpolationTypeToNearest();
+// mipProperty->ShadeOff();
+ mipProperty->ShadeOn();
+// mipProperty->SetAmbient(0.9);
+// mipProperty->SetDiffuse(0.9);
+// mipProperty->SetSpecular(0.9);
+
+
+//EED 2018-07-20 Migration VTK8
+#if (VTK_MAJOR_VERSION <= 7)
+ mMIP = vtkVolumeRayCastMIPFunction::New();
+ mMIP->SetMaximizeMethodToScalarValue();
+ mMapper = vtkVolumeRayCastMapper::New();
+ mMapper->SetVolumeRayCastFunction(mMIP);
+#else
+ mMapper = vtkFixedPointVolumeRayCastMapper::New();
+#endif
+
+
+ mCast->Update();
+
+//EED 2017-01-01 Migration VTK7
+#if (VTK_MAJOR_VERSION <= 5)
+ mMapper->SetInput(mCast->GetOutput()); // (smoother.GetOutput())
+#endif
+#if (VTK_MAJOR_VERSION >= 6)
+ mMapper->SetInputData(mCast->GetOutput()); // (smoother.GetOutput())
+#endif
+
+ mVolume = vtkVolume::New();
+ mVolume->SetMapper(mMapper);
+ mVolume->SetProperty( mipProperty );
+ mMapper->Update();
+ bbSetOutputOut(mVolume);