X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkVolumeRenderer.cxx;h=f0674b2db32db3a2e97376dc8741dfbd95ea2957;hb=7a10db8c8166b77b7da88846127431f732be69bc;hp=d9de17f8d76848998e04f32e49188e15960639e0;hpb=ff64736c7b0524ea73c6f1ca1ca569593c8e0946;p=bbtk.git diff --git a/packages/vtk/src/bbvtkVolumeRenderer.cxx b/packages/vtk/src/bbvtkVolumeRenderer.cxx index d9de17f..f0674b2 100644 --- a/packages/vtk/src/bbvtkVolumeRenderer.cxx +++ b/packages/vtk/src/bbvtkVolumeRenderer.cxx @@ -2,8 +2,8 @@ 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 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -52,18 +52,17 @@ namespace bbvtk - 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 @@ -75,25 +74,44 @@ namespace bbvtk // 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; + } } //--------------------------------------------------------------------- @@ -106,12 +124,21 @@ namespace bbvtk 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 ) ) { @@ -120,7 +147,9 @@ namespace bbvtk } if (changed) mMapper->Update(); - + + bbSetOutputOut(mVolume); + } }//namespace bbtk