X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FvtkClipping3DDataViewer.cxx;h=68f8c2b75f5fa08e0e83ec3a3cbc1ccd4155f3f9;hb=70a5e2bac1fe33d240ff5632d65a915269ff69e3;hp=901a7d7d4c6bb1f5aaa518917c3ef17d57b3b1a7;hpb=543dfcbe8f5ff78bbed90ef1e20c722bfa0ef248;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx index 901a7d7..68f8c2b 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" @@ -10,18 +35,18 @@ vtkClipping3DDataViewer::vtkClipping3DDataViewer() _visibleTissue[i] = false; _representationType[i] = true; } - _visibleVolume=false; - _isRayCasting=true; - _isMIP=false; - _interpolation=false; - _shade=false; + _visibleVolume = false; + _isRayCasting = true; + _isMIP = false; + _interpolation = false; + _shade = false; - _volumerendererdata = VolumeRendererData::New(); - _volumeMapper = vtkVolumeRayCastMapper::New(); - _newvol = vtkVolume::New(); - _volumeProperty = vtkVolumeProperty::New(); - _compositeFunction = vtkVolumeRayCastCompositeFunction::New(); - _compositeFunctionMIP = vtkVolumeRayCastMIPFunction::New(); + _volumerendererdata = VolumeRendererData::New(); + _volumeMapper = vtkVolumeRayCastMapper::New(); + _newvol = vtkVolume::New(); + _volumeProperty = vtkVolumeProperty::New(); + _compositeFunction = vtkVolumeRayCastCompositeFunction::New(); + _compositeFunctionMIP = vtkVolumeRayCastMIPFunction::New(); } //------------------------------------------------------------------- @@ -35,9 +60,7 @@ vtkClipping3DDataViewer::~vtkClipping3DDataViewer() _tissuePlanes[i]->Delete(); _tissueClipper[i]->Delete(); } - _outlineData->Delete(); - _mapOutline->Delete(); - _outline->Delete(); + // Volume _tfun->Delete(); _ctfun->Delete(); @@ -53,11 +76,7 @@ vtkClipping3DDataViewer::~vtkClipping3DDataViewer() } _observerV-> Delete(); } -//------------------------------------------------------------------- -vtkActor* vtkClipping3DDataViewer::GetOutlineActor() -{ - return _outline; -} + //------------------------------------------------------------------- vtkClipPolyData* vtkClipping3DDataViewer::GetTissueClipper(int id) { @@ -176,46 +195,91 @@ void vtkClipping3DDataViewer::SetVisibleVolumeBox(bool visibleBox) _visibleVolumeBox = visibleBox; } + //------------------------------------------------------------------- -void vtkClipping3DDataViewer::Configure_Tissue() +void vtkClipping3DDataViewer::SetImage() { + int i; + vtkImageData *imagedata=_vtkmprbasedata->GetImageData(); + for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++) + { +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + _mCubes[i]->SetInput( imagedata ); +#else + _mCubes[i]->SetInputData( imagedata ); +#endif + } // for +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + _volumeMapper->SetInput( imagedata ); +#else + _volumeMapper->SetInputData( imagedata ); +#endif + _volumerendererdata->SetImageData( imagedata ); +} - double range[2]; +//------------------------------------------------------------------- +void vtkClipping3DDataViewer::Configure_Tissue() +{ int i; - for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++){ + double range[2]; + vtkImageData *imagedata=_vtkmprbasedata->GetImageData(); + imagedata->GetScalarRange( range ); + for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++) + { // Visualisation - original volume - vtkImageData *imagedata=_vtkmprbasedata->GetImageData(); - imagedata->GetScalarRange( range ); _mCubes[i] = vtkMarchingCubes::New( ); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _mCubes[i]->SetInput( imagedata ); +#else + _mCubes[i]->SetInputData( imagedata ); +#endif _mCubes[i]->SetValue( 0, range[1]*(4+i) / 8 ); // _mCubes[i]->SetValue( 0, 1500 ); - _tissueStripper[i] = vtkStripper::New(); - _tissueStripper[i]->SetInput( _mCubes[i]->GetOutput( ) ); - +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + _tissueStripper[i]->SetInput( _mCubes[i]->GetOutput( ) ); +#else + _tissueStripper[i]->SetInputData( _mCubes[i]->GetOutput( ) ); +#endif _tissuePlanes[i] = vtkPlanes::New(); - int x1,x2,y1,y2,z1,z2; imagedata->GetExtent(x1,x2,y1,y2,z1,z2); _tissuePlanes[i]->SetBounds (x1,x2,y1,y2,z1,z2); - _tissueClipper[i] = vtkClipPolyData::New(); - _tissueClipper[i]->SetInput( _tissueStripper[i]->GetOutput() ); _tissueClipper[i]->SetClipFunction( _tissuePlanes[i] ); _tissueClipper[i]->InsideOutOn( ); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + _tissueClipper[i]->SetInput( _tissueStripper[i]->GetOutput() ); +#else + _tissueClipper[i]->SetInputData( _tissueStripper[i]->GetOutput() ); + printf("EED vtkClipping3DDataViewer::Configure_Tissue Update\n"); + _tissueClipper[i]->Update(); +#endif + _tissueMapper[i] = vtkPolyDataMapper::New( ); - _tissueMapper[i]->SetInput( _tissueClipper[i]->GetOutput() ); - _tissueMapper[i]->ScalarVisibilityOff( ); -// _tissueMapper[i]->Update(); - } +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + _tissueMapper[i]->SetInput( _tissueClipper[i]->GetOutput() ); +#else + _tissueMapper[i]->SetInputData( _tissueClipper[i]->GetOutput() ); + _tissueMapper[i]->Update(); +#endif + _tissueMapper[i]->ScalarVisibilityOff( ); +// _tissueMapper[i]->Update(); + } // for i // vtkActor tissue for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++){ @@ -323,7 +387,15 @@ void vtkClipping3DDataViewer::Configure_Volume() // EED 13/03/2011 // _volumeMapper = vtkVolumeRayCastMapper::New(); + + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _volumeMapper->SetInput( this->GetVtkMPRBaseData()->GetImageData() ); +#else + _volumeMapper->SetInputData( this->GetVtkMPRBaseData()->GetImageData() ); +#endif + _volumeMapper->SetVolumeRayCastFunction(_compositeFunction); @@ -359,6 +431,7 @@ void vtkClipping3DDataViewer::Configure_Volume() _observerV->SetvtkVolumeRayCastMapper( _volumeMapper ); } +//----------------------------------------------------------------------------- void vtkClipping3DDataViewer::Configure_VolumeBox() { @@ -376,12 +449,15 @@ void vtkClipping3DDataViewer::Configure_VolumeBox() //_volumerendererdata->BoundingBoxChanged(event.IsChecked() ); } +//----------------------------------------------------------------------------- + void vtkClipping3DDataViewer::SetRenderer(vtkRenderer* renderer) { _volumerendererdata->SetRenderer(renderer); } +//----------------------------------------------------------------------------- void vtkClipping3DDataViewer::SetInteractor(vtkRenderWindowInteractor* interactor) { @@ -389,6 +465,7 @@ void vtkClipping3DDataViewer::SetInteractor(vtkRenderWindowInteractor* interacto } +//----------------------------------------------------------------------------- void vtkClipping3DDataViewer::BoxActorChanged(bool changed) { vector *gv = this->GetGreyValuesTransferenceFVector(); @@ -400,6 +477,7 @@ void vtkClipping3DDataViewer::BoxActorChanged(bool changed) } +//----------------------------------------------------------------------------- void vtkClipping3DDataViewer::UpdateVolumeBox(vector gf, vector vf, vtkColorTransferFunction* ctfun) { _volumerendererdata->SetLookUpTable((vtkLookupTable*)(ctfun)); @@ -407,6 +485,7 @@ void vtkClipping3DDataViewer::UpdateVolumeBox(vector gf, vector } +//----------------------------------------------------------------------------- void vtkClipping3DDataViewer::updateVolume() { @@ -447,15 +526,6 @@ void vtkClipping3DDataViewer::Configure() Configure_Tissue(); Configure_Volume(); Configure_VolumeBox(); - // An outline provides context around the data. - // - _outlineData = vtkOutlineFilter::New(); - _outlineData->SetInput((vtkDataSet *) _vtkmprbasedata->GetImageData() ); - _mapOutline = vtkPolyDataMapper::New(); - _mapOutline->SetInput(_outlineData->GetOutput()); - _outline = vtkActor::New(); - _outline->SetMapper(_mapOutline); - _outline->GetProperty()->SetColor(0,0,0); } @@ -734,7 +804,14 @@ void vtkClipping3DDataViewer::ReadMeshVTK(char *namefile) vtkDataSetReader *reader = vtkDataSetReader::New(); reader->SetFileName(namefile); reader->Update(); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _tissueStripper[3]->SetInput( reader->GetPolyDataOutput() ); +#else + _tissueStripper[3]->SetInputData( reader->GetPolyDataOutput() ); +#endif + } void vtkClipping3DDataViewer::setColorTransferFunction(vtkColorTransferFunction* colortable){