+/*# ---------------------------------------------------------------------
+#
+# 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.
+# ------------------------------------------------------------------------ */
+
#include "wxMaracasMultipleVolumeRendererManagerData.h"
wxMaracasMultipleVolumeRendererManagerData::wxMaracasMultipleVolumeRendererManagerData(vtkImageData* vol, std::string dataname){
- _vol = vol;
- _dataname = dataname;
-
- _tfun = vtkPiecewiseFunction::New();
- _ctfun = vtkColorTransferFunction::New();
+ _vol = vol;
+ _dataname = dataname;
+ _tfun = vtkPiecewiseFunction::New();
+ _ctfun = vtkColorTransferFunction::New();
+ _volumePlanes = vtkPlanes::New();
- _volumePlanes = vtkPlanes::New();
- _compositeFunction = vtkVolumeRayCastCompositeFunction::New();
- _volumeMapper = vtkVolumeRayCastMapper::New();
+
+#if (VTK_MAJOR_VERSION <= 7)
+ _compositeFunction = vtkVolumeRayCastCompositeFunction::New();
+ _MIPFunction = vtkVolumeRayCastMIPFunction::New();
+ _volumeMapper = vtkVolumeRayCastMapper::New();
_volumeMapper->SetVolumeRayCastFunction(_compositeFunction);
+#else
+ _volumeMapper = vtkFixedPointVolumeRayCastMapper::New();
+#endif
+
_volumeMapper->SetClippingPlanes( _volumePlanes );
_volumeMapper->AutoAdjustSampleDistancesOn();
_volumeProperty = vtkVolumeProperty::New();
_newvol = vtkVolume::New();
_newvol->SetMapper(_volumeMapper );
_newvol->SetProperty(_volumeProperty );
+
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
_volumeMapper->SetInput( _vol );
+#else
+ _volumeMapper->SetInputData( _vol );
+#endif
+
_volumeMapper->Update();
_newvol->Update();
}
_tfun->Delete();
_ctfun->Delete();
_volumePlanes->Delete();
+
+
+#if (VTK_MAJOR_VERSION <= 7)
_compositeFunction->Delete();
+#else
+ // ..
+#endif
+
_volumeMapper->Delete();
+
_volumeProperty->Delete();
_newvol->Delete();
_ctfun->RemoveAllPoints();
for(int i = 0; i < greylevelcolors.size();i++){
_ctfun->AddRGBPoint(greylevelcolors[i], red[i],green[i], blue[i]);
- // std::cout<<"transfer color function "<<greylevelcolors[i]<<" "<<red[i]<<" "<<green[i]<<" "<<blue[i]<<std::endl;
+ //std::cout<<"wxMaracasMultipleVolumeRendererManagerData::setVolumeColor "<<greylevelcolors[i]<<" "<<red[i]<<" "<<green[i]<<" "<<blue[i]<<std::endl;
}
_newvol->Update();
}
_tfun->RemoveAllPoints();
for(int i = 0; i < greylevel.size();i++){
_tfun->AddPoint(greylevel[i], value[i]);
-// std::cout<<"transfer function "<<greylevel[i]<<" "<< value[i]<<std::endl;
+ //std::cout<<"wxMaracasMultipleVolumeRendererManagerData::setVolumeOpacity "<<greylevel[i]<<" "<< value[i]<<std::endl;
}
_newvol->Update();
}
/**
** Check if the variables are setted correctly
**/
-void wxMaracasMultipleVolumeRendererManagerData::checkInvariant(){
+void wxMaracasMultipleVolumeRendererManagerData::checkInvariant()throw (char *)
+{
+
+#if (VTK_MAJOR_VERSION <= 7)
+ if(!_compositeFunction)
+ {
+ throw "No composite function initialized";
+ }
+ if(!_MIPFunction)
+ {
+ throw "No MIP function initialized";
+ }
+#else
+ // ..
+#endif
+ if(!_volumeMapper)
+ {
+ throw "No volume mapper initialized";
+ }
+}
+
+/**
+** Check if the variables are setted correctly
+**/
+void wxMaracasMultipleVolumeRendererManagerData::Update(){
+ _newvol->Update();
}
/**
** get the prop3D
_dataname = dataname;
}
+void wxMaracasMultipleVolumeRendererManagerData::changeCompositeMIPFunction(int function) throw (char *)
+{
+ checkInvariant();
+#if (VTK_MAJOR_VERSION <= 7)
+ if(function == 0)
+ {
+ _volumeMapper->SetVolumeRayCastFunction(_compositeFunction);
+ }else{
+ _volumeMapper->SetVolumeRayCastFunction(_MIPFunction);
+ }
+#else
+ printf("EED wxMaracasMultipleVolumeRendererManagerData::changeCompositeMIPFunction Composite MIP ..... ??");
+#endif
+}