X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FvtkClipping3DDataViewer.cxx;h=0e301e2d79a1cbfa8590a6bd525682c5cb480a42;hb=3d1c0689f4e1844c8f170d9c20f8ad38b34d98b6;hp=80a39b6301a652edb860a44d3f34b61af4c30341;hpb=22b3a32e023370c44f812976adc4b45b88401c2f;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx index 80a39b6..0e301e2 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# 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 "vtkClipping3DDataViewer.h" #include "vtkDataSetReader.h" @@ -16,6 +41,7 @@ vtkClipping3DDataViewer::vtkClipping3DDataViewer() _interpolation=false; _shade=false; + _volumerendererdata = VolumeRendererData::New(); _volumeMapper = vtkVolumeRayCastMapper::New(); _newvol = vtkVolume::New(); _volumeProperty = vtkVolumeProperty::New(); @@ -165,6 +191,15 @@ void vtkClipping3DDataViewer::SetVisibleVolume(bool visiblevolume) _visibleVolume = visiblevolume; } +bool vtkClipping3DDataViewer::GetVisibleVolumeBox() +{ + return _visibleVolumeBox; +} +//------------------------------------------------------------------- +void vtkClipping3DDataViewer::SetVisibleVolumeBox(bool visibleBox) +{ + _visibleVolumeBox = visibleBox; +} //------------------------------------------------------------------- void vtkClipping3DDataViewer::Configure_Tissue() @@ -238,8 +273,6 @@ void vtkClipping3DDataViewer::Configure_Volume() { // Volume - - /** if(_newvol != NULL) { _newvol->Delete(); @@ -247,15 +280,13 @@ void vtkClipping3DDataViewer::Configure_Volume() _volumeProperty->Delete(); }*/ - - _tfun = vtkPiecewiseFunction::New(); _ctfun = vtkColorTransferFunction::New(); double range[2]; this->_vtkmprbasedata->GetImageData()->GetScalarRange(range); double max = range[1]; - + /* adding the poinst of the transference function */ @@ -316,20 +347,14 @@ void vtkClipping3DDataViewer::Configure_Volume() // EED 13/03/2011 - - // _volumeMapper = vtkVolumeRayCastMapper::New(); _volumeMapper->SetInput( this->GetVtkMPRBaseData()->GetImageData() ); - - _volumeMapper->SetVolumeRayCastFunction(_compositeFunction); - // _volumeMapper->SetVolumeRayCastFunction(_compositeFunctionMIP); - + // - _volumeMapper->SetClippingPlanes( _volumePlanes ); _volumeMapper->AutoAdjustSampleDistancesOn(); @@ -339,17 +364,9 @@ void vtkClipping3DDataViewer::Configure_Volume() _volumeProperty->SetScalarOpacity( _tfun ); // EED 31/03/2008 - _volumeProperty->DisableGradientOpacityOn(); - -// _ - - -// _ - - // _volumeProperty->SetInterpolationTypeToNearest(); // _volumeProperty->ShadeOff(); // _volumeProperty->SetAmbient(0.3); @@ -361,25 +378,72 @@ void vtkClipping3DDataViewer::Configure_Volume() _newvol->SetMapper(_volumeMapper ); _newvol->SetProperty(_volumeProperty ); - _observerV = boxSurfaceObserver::New(); + _observerV = boxSurfaceObserver::New(); _observerV->SetPlanes( _volumePlanes ); _observerV->SetActor( _newvol ); _observerV->SetvtkVolumeRayCastMapper( _volumeMapper ); } + +void vtkClipping3DDataViewer::Configure_VolumeBox() +{ + _volumerendererdata->SetImageData(_vtkmprbasedata->GetImageData()); + + + vector *gv = this->GetGreyValuesTransferenceFVector(); + vector *op = this->GetIntensityValuesTransferenceFVector(); + + _volumerendererdata->SetLookUpTable((vtkLookupTable*)(_ctfun)); + _volumerendererdata->OpacityChanged(*gv, *op); + + //_wxvtkclipping3Dview->VisibleVolumeActor( false ); + //_volumerendererdata->ShowVolume(event.IsChecked() ); + //_volumerendererdata->BoundingBoxChanged(event.IsChecked() ); +} + +void vtkClipping3DDataViewer::SetRenderer(vtkRenderer* renderer) +{ + _volumerendererdata->SetRenderer(renderer); + +} + +void vtkClipping3DDataViewer::SetInteractor(vtkRenderWindowInteractor* interactor) +{ + + _volumerendererdata->SetInteractor(interactor); +} + + +void vtkClipping3DDataViewer::BoxActorChanged(bool changed) +{ + vector *gv = this->GetGreyValuesTransferenceFVector(); + vector *op = this->GetIntensityValuesTransferenceFVector(); + + _volumerendererdata->ShowVolume(changed); + _volumerendererdata->OpacityChanged(*gv, *op); + _volumerendererdata->BoundingBoxChanged(changed); + +} + +void vtkClipping3DDataViewer::UpdateVolumeBox(vector gf, vector vf, vtkColorTransferFunction* ctfun) +{ + _volumerendererdata->SetLookUpTable((vtkLookupTable*)(ctfun)); + _volumerendererdata->OpacityChanged(gf, vf); +} + + void vtkClipping3DDataViewer::updateVolume() { if(_isRayCasting) { - cout<<"JPRG::vtkClipping3DDataViewer::Configure_Volume::isRayCasting"<SetVolumeRayCastFunction(_compositeFunction); + _volumerendererdata->changeCompositeMIPFunction(0); } else if(_isMIP) { - cout<<"JPRG::vtkClipping3DDataViewer::Configure_Volume::isMIP"<SetVolumeRayCastFunction(_compositeFunctionMIP); + _volumerendererdata->changeCompositeMIPFunction(1); } if(_interpolation) @@ -407,7 +471,7 @@ void vtkClipping3DDataViewer::Configure() { Configure_Tissue(); Configure_Volume(); - + Configure_VolumeBox(); // An outline provides context around the data. // _outlineData = vtkOutlineFilter::New();