X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FvtkClipping3DDataViewer.cxx;h=aa398d488971528129d01e2c83955763b62c0f49;hb=f9901e756bb82bd333310b47607875331616bb29;hp=2af7d109699a9b18f7d2b39866cccbba498c108a;hpb=7efcf8b7c62b77ababdaf2c52c2b862597b0b129;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.cxx index 2af7d10..aa398d4 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" @@ -6,46 +31,63 @@ vtkClipping3DDataViewer::vtkClipping3DDataViewer() { int i; - for (i=0; iDelete(); - _tissueStripper[i] ->Delete(); - _tissueMapper[i] ->Delete(); - _tissuePlanes[i] ->Delete(); - _tissueClipper[i] ->Delete(); + _mCubes[i]->Delete(); + _tissueStripper[i]->Delete(); + _tissueMapper[i]->Delete(); + _tissuePlanes[i]->Delete(); + _tissueClipper[i]->Delete(); } - _outlineData ->Delete(); - _mapOutline ->Delete(); - _outline ->Delete(); + // Volume - _tfun ->Delete(); - _ctfun ->Delete(); - _compositeFunction ->Delete(); - _volumeMapper ->Delete(); - _volumeProperty ->Delete(); - _newvol ->Delete(); - _volumePlanes ->Delete(); + _tfun->Delete(); + _ctfun->Delete(); +#if (VTK_MAJOR_VERSION <= 7) + _compositeFunction->Delete(); +#else + // .. +#endif + _volumeMapper->Delete(); + _volumeProperty->Delete(); + _newvol->Delete(); + _volumePlanes->Delete(); for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++){ - _tissue[i] -> Delete(); - _observerS[i] -> Delete(); + _tissue[i]-> Delete(); + _observerS[i]-> Delete(); } - _observerV -> Delete(); -} -//------------------------------------------------------------------- -vtkActor* vtkClipping3DDataViewer::GetOutlineActor() -{ - return _outline; + _observerV-> Delete(); } + //------------------------------------------------------------------- vtkClipPolyData* vtkClipping3DDataViewer::GetTissueClipper(int id) { @@ -76,7 +118,7 @@ void vtkClipping3DDataViewer::Refresh() // _newvol->VisibilityOn(); - + // _volumeMapper = vtkVolumeRayCastMapper::New(); // _volumeMapper->SetInput( this->GetVtkMPRBaseData()->GetImageData() ); // _volumeMapper->SetVolumeRayCastFunction(_compositeFunction); @@ -154,47 +196,102 @@ void vtkClipping3DDataViewer::SetVisibleVolume(bool visiblevolume) _visibleVolume = visiblevolume; } +bool vtkClipping3DDataViewer::GetVisibleVolumeBox() +{ + return _visibleVolumeBox; +} +//------------------------------------------------------------------- +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); - + _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() ); +#endif + _tissueMapper[i] = vtkPolyDataMapper::New( ); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _tissueMapper[i]->SetInput( _tissueClipper[i]->GetOutput() ); - _tissueMapper[i]->ScalarVisibilityOff( ); -// _tissueMapper[i]->Update(); +#else + _mCubes[i]->Update(); + _tissueStripper[i]->Update(); + _tissueClipper[i]->Update(); + _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++){ @@ -206,19 +303,19 @@ void vtkClipping3DDataViewer::Configure_Tissue() _tissue[i]->GetProperty()->SetSpecular(.3); _tissue[i]->GetProperty()->SetSpecularPower(20); _tissue[i]->GetProperty()->SetOpacity(0.5); - if (i==0) _tissue[i]->GetProperty()->SetColor(0.85, 0.85 , 0.85 ); - if (i==1) _tissue[i]->GetProperty()->SetColor(0, 0 , 1 ); - if (i==2) _tissue[i]->GetProperty()->SetColor(0.85, 0.20 , 0.20 ); - if (i==3) _tissue[i]->GetProperty()->SetColor(0, 1 , 0 ); - } + if (i==0) { _tissue[i]->GetProperty()->SetColor(0.85, 0.85 , 0.85 ); } + if (i==1) { _tissue[i]->GetProperty()->SetColor(0, 0 , 1 ); } + if (i==2) { _tissue[i]->GetProperty()->SetColor(0.85, 0.20 , 0.20 ); } + if (i==3) { _tissue[i]->GetProperty()->SetColor(0, 1 , 0 ); } + } // for for (i=0; i< VTKMPRDATA_MAXTISSUE ; i++) { _observerS[i] = boxSurfaceObserver::New(); _observerS[i]->SetPlanes( GetTissuePlanes(i) ); _observerS[i]->SetActor( _tissue[i] ); - } - + _observerS[i]->SetFilters( _mCubes[i], _tissueStripper[i] ,_tissueClipper[i] ); + } // for } //----------------------------------------------------------------------------- @@ -227,19 +324,26 @@ void vtkClipping3DDataViewer::Configure_Volume() { // Volume + /** if(_newvol != NULL) + { + _newvol->Delete(); + _volumeMapper->Delete(); + _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 */ //X - greyValuesTransferenceFVector.push_back(max * 0/2); - greyValuesTransferenceFVector.push_back(max * 1/2); + greyValuesTransferenceFVector.push_back(max * 0/2); // JPR ?? 0/2 + greyValuesTransferenceFVector.push_back(max * 1/2); // JPR ?? division entiere? greyValuesTransferenceFVector.push_back(max * 2/2); //Y intensityValuesTransferenceFVector.push_back(0.0); @@ -251,7 +355,7 @@ void vtkClipping3DDataViewer::Configure_Volume() _tfun->AddPoint(max * 2/2 , 1.0); /* - Adding the colors to the vectors + Adding the colors to the vectors */ //RED redColorsOfColorTransferenceFVector.push_back(0.0); @@ -266,14 +370,14 @@ void vtkClipping3DDataViewer::Configure_Volume() greenColorsOfColorTransferenceFVector.push_back(0.0); greenColorsOfColorTransferenceFVector.push_back(1.0); greenColorsOfColorTransferenceFVector.push_back(0.2); - + //BLUE blueColorsOfColorTransferenceFVector.push_back(0.0); blueColorsOfColorTransferenceFVector.push_back(0.0); blueColorsOfColorTransferenceFVector.push_back(1.0); blueColorsOfColorTransferenceFVector.push_back(0.0); blueColorsOfColorTransferenceFVector.push_back(0.0); - //GREY VALUE + //GREY VALUE greyValueColorsOfColorTransferenceFVector.push_back(max*0/4); greyValueColorsOfColorTransferenceFVector.push_back(max*1/4); greyValueColorsOfColorTransferenceFVector.push_back(max*2/4); @@ -292,22 +396,39 @@ void vtkClipping3DDataViewer::Configure_Volume() // imagedata->GetExtent(x1,x2,y1,y2,z1,z2); // _volumePlanes->SetBounds(x1,x2,y1,y2,z1,z2); - _compositeFunction = vtkVolumeRayCastCompositeFunction::New(); + // EED 13/03/2011 + + // _volumeMapper = vtkVolumeRayCastMapper::New(); + - _volumeMapper = vtkVolumeRayCastMapper::New(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 _volumeMapper->SetInput( this->GetVtkMPRBaseData()->GetImageData() ); - _volumeMapper->SetVolumeRayCastFunction(_compositeFunction); +#else + _volumeMapper->SetInputData( this->GetVtkMPRBaseData()->GetImageData() ); +#endif + + +#if (VTK_MAJOR_VERSION <= 7) + _volumeMapper->SetVolumeRayCastFunction(_compositeFunction); + // _volumeMapper->SetVolumeRayCastFunction(_compositeFunctionMIP); +#else + // .. +#endif + +// _volumeMapper->SetClippingPlanes( _volumePlanes ); _volumeMapper->AutoAdjustSampleDistancesOn(); - _volumeProperty = vtkVolumeProperty::New(); + _volumeProperty->SetInterpolationTypeToNearest(); + //_volumeProperty = vtkVolumeProperty::New(); _volumeProperty->SetColor(_ctfun); _volumeProperty->SetScalarOpacity( _tfun ); + // EED 31/03/2008 - _volumeProperty->SetInterpolationTypeToLinear(); - _volumeProperty->ShadeOn(); _volumeProperty->DisableGradientOpacityOn(); + // _volumeProperty->SetInterpolationTypeToNearest(); // _volumeProperty->ShadeOff(); // _volumeProperty->SetAmbient(0.3); @@ -315,32 +436,120 @@ void vtkClipping3DDataViewer::Configure_Volume() // _volumeProperty->SetSpecular(0.8); // _volumeProperty->DisableGradientOpacityOn(); - _newvol = vtkVolume::New(); + // _newvol = vtkVolume::New(); _newvol->SetMapper(_volumeMapper ); _newvol->SetProperty(_volumeProperty ); - _observerV = boxSurfaceObserver::New(); + _observerV = boxSurfaceObserver::New(); _observerV->SetPlanes( _volumePlanes ); _observerV->SetActor( _newvol ); + +#if (VTK_MAJOR_VERSION <= 7) _observerV->SetvtkVolumeRayCastMapper( _volumeMapper ); +#else + _observerV->SetvtkFixedPointVolumeRayCastMapper( _volumeMapper ); +#endif } +//----------------------------------------------------------------------------- + +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 (VTK_MAJOR_VERSION <= 7) + if(_isRayCasting) + { + _volumeMapper->SetVolumeRayCastFunction(_compositeFunction); + _volumerendererdata->changeCompositeMIPFunction(0); + } else if(_isMIP) { + _volumeMapper->SetVolumeRayCastFunction(_compositeFunctionMIP); + _volumerendererdata->changeCompositeMIPFunction(1); + } +#else + // ... here Composition of MIP + printf("EED vtkClipping3DDataViewer::updateVolume ... here Composition or MIP \n"); +#endif + + + if(_interpolation) + { + _volumeProperty->SetInterpolationTypeToLinear(); + } + else + { + _volumeProperty->SetInterpolationTypeToNearest(); + } + + if(_shade) + { + _volumeProperty->ShadeOn(); + } + else + { + _volumeProperty->ShadeOff(); + } + +} //------------------------------------------------------------------- void vtkClipping3DDataViewer::Configure() { Configure_Tissue(); Configure_Volume(); - - // 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); + Configure_VolumeBox(); } @@ -348,6 +557,14 @@ void vtkClipping3DDataViewer::Configure() void vtkClipping3DDataViewer::SetIsovalue(int idTissue, int isoValue) { _mCubes[idTissue]->SetValue(0, isoValue); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + // .. +#else + _mCubes[idTissue]->Update(); + _tissueStripper[idTissue]->Update(); + _tissueClipper[idTissue]->Update(); +#endif } //------------------------------------------------------------------- double vtkClipping3DDataViewer::GetIsovalue(int idTissue) @@ -360,7 +577,12 @@ vtkVolume* vtkClipping3DDataViewer::GetVolumeActor() return _newvol; } //------------------------------------------------------------------- -vtkVolumeRayCastMapper* vtkClipping3DDataViewer::GetVolumeMapper(){ +#if (VTK_MAJOR_VERSION <= 7) + vtkVolumeRayCastMapper* vtkClipping3DDataViewer::GetVolumeMapper() +#else + vtkFixedPointVolumeRayCastMapper* vtkClipping3DDataViewer::GetVolumeMapper() +#endif +{ return _volumeMapper; } //------------------------------------------------------------------- @@ -400,7 +622,7 @@ std::vector* vtkClipping3DDataViewer::GetGreenColorsOfColorTransferenceF } //-------------------------------------------------------------------- std::vector* vtkClipping3DDataViewer::GetBlueColorsOfColorTransferenceFVector() -{ +{ return &blueColorsOfColorTransferenceFVector; } //-------------------------------------------------------------------- @@ -430,9 +652,9 @@ void vtkClipping3DDataViewer::ReadVolumeFunctions() /* int i=0,xi,yi,r,g,b,gValue; vtkImageData *imagedata = this->_vtkmprbasedata->GetImageData(); - + HistogramDialog* hDlg=new HistogramDialog(NULL,_T("Histogram Dialog"),imagedata); - // + // // put in a method // int tfSize=this->greyValuesTransferenceFVector.size(); @@ -447,7 +669,7 @@ void vtkClipping3DDataViewer::ReadVolumeFunctions() hDlg->addPointToTransferenceFunction(g,in*100); i++; } - + } int ctfSize=this->redColorsOfColorTransferenceFVector.size(); @@ -469,17 +691,17 @@ void vtkClipping3DDataViewer::ReadVolumeFunctions() //setting variables if the user wants to do refresh hDlg->setCTF(_ctfun); hDlg->setTF(_tfun); - + // // when the user had changed the transference Function // if(hDlg->ShowModal()== wxID_OK ) - { + { // -- vtkPiecewiseFunction -- this->_tfun->RemoveAllPoints(); greyValuesTransferenceFVector.clear(); intensityValuesTransferenceFVector.clear(); - + int nTFPoints=hDlg->getSizeTransferenceFunction(); i=0; while(i_ctfun->RemoveAllPoints (); //clean colors @@ -499,7 +721,7 @@ void vtkClipping3DDataViewer::ReadVolumeFunctions() greyValueColorsOfColorTransferenceFVector.clear(); int nCTFpoints=hDlg->getSizeBarColor(); - i=0; + i=0; while(igetDataBarColorPoint(i,xi,r,g,b); @@ -510,14 +732,14 @@ void vtkClipping3DDataViewer::ReadVolumeFunctions() greyValueColorsOfColorTransferenceFVector.push_back(xi); i++; } - + this->_volumeMapper->Update(); this->_newvol->Update(); } - + else { - + if(hDlg->getRefreshed()) { int i=0,size; @@ -531,12 +753,12 @@ void vtkClipping3DDataViewer::ReadVolumeFunctions() double in2=intensityValuesTransferenceFVector[i]; this->_tfun->AddPoint( grey1 , in2 ); } - + // -- vtkColorTransferFunction -- _ctfun->RemoveAllPoints (); - + i=0; - size=greyValueColorsOfColorTransferenceFVector.size(); + size=greyValueColorsOfColorTransferenceFVector.size(); for(i=0;i_volumeMapper->Update(); this->_newvol->Update(); } - + } hDlg->Destroy(); */ @@ -578,29 +800,29 @@ void vtkClipping3DDataViewer::ReadVolumeFunctions(char *namefile) // -- vtkPiecewiseFunction -- this->_tfun->RemoveAllPoints(); - fscanf(ff,"%s",tmp); + fscanf(ff,"%s",tmp); while ( strcmp(tmp,"--")!=0 ) { x=atof(tmp); - fscanf(ff,"%s",tmp); + fscanf(ff,"%s",tmp); val=atof(tmp); this->_tfun->AddPoint( x*max , val ); - fscanf(ff,"%s",tmp); + fscanf(ff,"%s",tmp); } this->_ctfun->RemoveAllPoints (); // -- vtkColorTransferFunction -- while ( !feof(ff)) { - fscanf(ff,"%s",tmp); + fscanf(ff,"%s",tmp); x=atof(tmp); - fscanf(ff,"%s",tmp); + fscanf(ff,"%s",tmp); r=atof(tmp); - fscanf(ff,"%s",tmp); + fscanf(ff,"%s",tmp); g=atof(tmp); - fscanf(ff,"%s",tmp); + fscanf(ff,"%s",tmp); b=atof(tmp); - this->_ctfun->AddRGBPoint( x*max , r,g,b ); + this->_ctfun->AddRGBPoint( x*max , r,g,b ); } @@ -619,11 +841,41 @@ 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){ - + _volumeProperty->SetColor(colortable); - -} \ No newline at end of file + +} + + +void vtkClipping3DDataViewer::SetRayCasting(bool active) +{ + _isRayCasting = active; + +} + +void vtkClipping3DDataViewer::SetMIPActive(bool active) +{ + _isMIP = active; +} + +void vtkClipping3DDataViewer::SetInterpolation(bool active) +{ + _interpolation = active; +} + +void vtkClipping3DDataViewer::SetShade(bool active) +{ + _shade = active; +} +