Program: bbtk
Module: $RCSfile: bbvtkVolumeRenderer.cxx,v $
Language: C++
- Date: $Date: 2008/12/16 12:48:10 $
- Version: $Revision: 1.1 $
+ Date: $Date: 2009/10/16 08:52:13 $
+ Version: $Revision: 1.5 $
=========================================================================*/
/* ---------------------------------------------------------------------
- void VolumeRenderer::bbUserConstructor()
+ void VolumeRenderer::bbUserSetDefaultValues()
{
- Init();
- bbSetInputColorFunction(0);
- bbSetInputOpacityFunction(0);
+ mRayCastFunction = NULL;
+ mMapper = NULL;
+ mVolume = NULL;
+ bbSetInputColorFunction(0);
+ bbSetInputColorFunction1(0);
+ bbSetInputOpacityFunction(0);
}
- void VolumeRenderer::bbUserCopyConstructor(bbtk::BlackBox::Pointer)
- {
- Init();
- }
-
- void VolumeRenderer::Init()
+
+ void VolumeRenderer::bbUserInitializeProcessing()
{
// Create the pipeline
// mMIP->SetMaximizeMethodToScalarValue();
mRayCastFunction = vtkVolumeRayCastCompositeFunction::New();
-
mMapper = vtkVolumeRayCastMapper::New();
- mMapper->SetVolumeRayCastFunction(mRayCastFunction);
+ mMapper->SetVolumeRayCastFunction(mRayCastFunction);
+ mMapper->AutoAdjustSampleDistancesOn();
+
+ _volumeProperty = vtkVolumeProperty::New();
+ _volumeProperty->SetInterpolationTypeToLinear();
+ _volumeProperty->ShadeOn();
+ _volumeProperty->DisableGradientOpacityOn();
+ //_volumeProperty->SetColor(_ctfun);
+ //_volumeProperty->SetScalarOpacity(_tfun );
-
mVolume = vtkVolume::New();
- mVolume->SetMapper(mMapper);
+ mVolume->SetMapper(mMapper);
+ mVolume->SetProperty(_volumeProperty );
// mMapper->ScalarVisibilityOff();
// mMapper->ImmediateModeRenderingOn();
- bbSetOutputOut(mVolume);
}
- void VolumeRenderer::bbUserDestructor()
+ //---------------------------------------------------------------------
+ void VolumeRenderer::bbUserFinalizeProcessing()
{
- mRayCastFunction->Delete();
- mMapper->Delete();
- mVolume->Delete();
+ if (mRayCastFunction!=NULL)
+ {
+ mRayCastFunction->Delete();
+ mRayCastFunction=NULL;
+ }
+ if (mMapper!=NULL)
+ {
+ mMapper->Delete();
+ mMapper=NULL;
+ }
+ if (mVolume!=NULL)
+ {
+ mVolume->Delete();
+ mVolume=NULL;
+ }
}
//---------------------------------------------------------------------
mMapper->SetInput( bbGetInputIn() );
changed = true;
}
- if ( ( bbGetInputStatus("ColorFunction") != bbtk::UPTODATE ) &&
+
+ if ( ( bbGetInputStatus("ColorFunction") != bbtk::UPTODATE ) &&
( bbGetInputColorFunction() != 0 ) )
{
mVolume->GetProperty()->SetColor( bbGetInputColorFunction() );
changed = true;
}
+
+ if ( ( bbGetInputStatus("ColorFunction1") != bbtk::UPTODATE ) &&
+ ( bbGetInputColorFunction1() != 0 ) )
+ {
+ mVolume->GetProperty()->SetColor( bbGetInputColorFunction1() );
+ changed = true;
+ }
+
if ( ( bbGetInputStatus("OpacityFunction") != bbtk::UPTODATE ) &&
( bbGetInputOpacityFunction() != 0 ) )
{
}
if (changed) mMapper->Update();
-
+
+ bbSetOutputOut(mVolume);
+
}
}//namespace bbtk