//---------------------------------------------------------------------
void MIPCreator::bbUserSetDefaultValues()
{
-
-
-
std::vector<double> opaValues;
std::vector<double> denPoints;
opaValues.push_back(0.0);
bbSetInputOpacityValues(opaValues);
bbSetInputMinColorWindow(0.0);
bbSetInputMaxColorWindow(255.0);
-
- opacityTransferFunction = vtkPiecewiseFunction::New();
- grayTransferFunction = vtkPiecewiseFunction::New();
-
+ opacityTransferFunction = vtkPiecewiseFunction::New();
+ grayTransferFunction = vtkPiecewiseFunction::New();
mCast = NULL;
mMIP = NULL;
mMapper = NULL;
mVolume = NULL;
-
-
}
+
//---------------------------------------------------------------------
void MIPCreator::bbUserInitializeProcessing()
{
-
-
// Create the pipeline
mCast = vtkImageShiftScale::New();
mCast->SetOutputScalarTypeToUnsignedChar();
mCast->ClampOverflowOn();
-
-
}
//---------------------------------------------------------------------
void MIPCreator::Process()
{
-
-
-
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;
-
+ 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( 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);
-
-
-
-
-
mMIP = vtkVolumeRayCastMIPFunction::New();
mMIP->SetMaximizeMethodToScalarValue();
-
mMapper = vtkVolumeRayCastMapper::New();
mMapper->SetVolumeRayCastFunction(mMIP);
+ 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);
// mVolume->GetProperty()->SetColor( bbGetInputColour()[0], bbGetInputColour()[1], bbGetInputColour()[2] );
// mVolume->GetProperty()->SetOpacity( bbGetInputOpacity() );