X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkVolumeRenderer.cxx;h=a804e1507099a2645db27d23fbc40d8e3ff8e59f;hb=79d06fa7c6441e99291ad3a1949d241f336573d5;hp=3ebfe55ddbe611969348be5d71cb750b68e46ac0;hpb=4743efc603c9eeac3b8bc509b5112a76d12b1375;p=bbtk.git diff --git a/packages/vtk/src/bbvtkVolumeRenderer.cxx b/packages/vtk/src/bbvtkVolumeRenderer.cxx index 3ebfe55..a804e15 100644 --- a/packages/vtk/src/bbvtkVolumeRenderer.cxx +++ b/packages/vtk/src/bbvtkVolumeRenderer.cxx @@ -1,33 +1,38 @@ -/*========================================================================= +/* + # --------------------------------------------------------------------- + # + # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image + # pour la SantÈ) + # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton + # Previous Authors : Laurent Guigues, Jean-Pierre Roux + # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil + # + # This software is governed by the CeCILL-B license under French law and + # abiding by the rules of distribution of free software. You can use, + # modify and/ or redistribute the software under the terms of the CeCILL-B + # license as circulated by CEA, CNRS and INRIA at the following URL + # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + # or in the file LICENSE.txt. + # + # As a counterpart to the access to the source code and rights to copy, + # modify and redistribute granted by the license, users are provided only + # with a limited warranty and the software's author, the holder of the + # economic rights, and the successive licensors have only limited + # liability. + # + # The fact that you are presently reading this means that you have had + # knowledge of the CeCILL-B license and that you accept its terms. + # ------------------------------------------------------------------------ */ + + +/*========================================================================= Program: bbtk Module: $RCSfile: bbvtkVolumeRenderer.cxx,v $ Language: C++ - Date: $Date: 2009/07/08 14:23:08 $ - Version: $Revision: 1.3 $ + Date: $Date: 2012/11/16 08:51:58 $ + Version: $Revision: 1.6 $ =========================================================================*/ -/* --------------------------------------------------------------------- - -* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) -* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux -* -* This software is governed by the CeCILL-B license under French law and -* abiding by the rules of distribution of free software. You can use, -* modify and/ or redistribute the software under the terms of the CeCILL-B -* license as circulated by CEA, CNRS and INRIA at the following URL -* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html -* or in the file LICENSE.txt. -* -* As a counterpart to the access to the source code and rights to copy, -* modify and redistribute granted by the license, users are provided only -* with a limited warranty and the software's author, the holder of the -* economic rights, and the successive licensors have only limited -* liability. -* -* The fact that you are presently reading this means that you have had -* knowledge of the CeCILL-B license and that you accept its terms. -* ------------------------------------------------------------------------ */ - /** * \file * \brief @@ -58,6 +63,7 @@ namespace bbvtk mMapper = NULL; mVolume = NULL; bbSetInputColorFunction(0); + bbSetInputColorFunction1(0); bbSetInputOpacityFunction(0); } @@ -75,8 +81,18 @@ namespace bbvtk mRayCastFunction = vtkVolumeRayCastCompositeFunction::New(); mMapper = vtkVolumeRayCastMapper::New(); 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->SetProperty(_volumeProperty ); // mMapper->ScalarVisibilityOff(); // mMapper->ImmediateModeRenderingOn(); @@ -105,41 +121,43 @@ namespace bbvtk } //--------------------------------------------------------------------- - void VolumeRenderer::Process() - { - bool changed = false; - if ( bbGetInputStatus("In") != bbtk::UPTODATE ) - { - mMapper->SetInput( bbGetInputIn() ); - changed = true; - } - - if ( ( bbGetInputStatus("ColorFunction") != bbtk::UPTODATE ) && +void VolumeRenderer::Process() +{ + bool changed = false; + if ( bbGetInputStatus("In") != bbtk::UPTODATE ) + { + mMapper->SetInput( bbGetInputIn() ); + changed = true; + } + + if ( ( bbGetInputStatus("ColorFunction") != bbtk::UPTODATE ) && ( bbGetInputColorFunction() != 0 ) ) - { - mVolume->GetProperty()->SetColor( bbGetInputColorFunction() ); - changed = true; - } + { + mVolume->GetProperty()->SetColor( bbGetInputColorFunction() ); + changed = true; + } if ( ( bbGetInputStatus("ColorFunction1") != bbtk::UPTODATE ) && ( bbGetInputColorFunction1() != 0 ) ) - { - mVolume->GetProperty()->SetColor( bbGetInputColorFunction1() ); - changed = true; - } + { + mVolume->GetProperty()->SetColor( bbGetInputColorFunction1() ); + changed = true; + } if ( ( bbGetInputStatus("OpacityFunction") != bbtk::UPTODATE ) && ( bbGetInputOpacityFunction() != 0 ) ) - { - mVolume->GetProperty()->SetScalarOpacity(bbGetInputOpacityFunction()); - changed = true; - } - - if (changed) mMapper->Update(); + { + mVolume->GetProperty()->SetScalarOpacity(bbGetInputOpacityFunction()); + changed = true; + } + + if (changed) + { + mMapper->Update(); + } + bbSetOutputOut(mVolume); +} - bbSetOutputOut(mVolume); - - } }//namespace bbtk