X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FvtkClipping3DDataViewer.h;h=4a75a62a35fe8bd8988adc630db3776a690042d1;hb=e263b7ace0f53d647a731553a3f67700838ad146;hp=21e5dbd317682e0b4345f90781dd6fbd6b3f6278;hpb=a236b3d0da0e436f9027b701df86c3576e9c25fe;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.h index 21e5dbd..4a75a62 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.h @@ -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. +# ------------------------------------------------------------------------ */ + #ifndef VTKCLIPPING3DDATAVIEWER_H_ #define VTKCLIPPING3DDATAVIEWER_H_ @@ -7,9 +32,14 @@ #include "vtkStripper.h" #include "vtkLODActor.h" #include "vtkMarchingCubes.h" -#include "vtkVolumeRayCastMapper.h" +#if (VTK_MAJOR_VERSION <= 7) + #include "vtkVolumeRayCastCompositeFunction.h" + #include "vtkVolumeRayCastMIPFunction.h" + #include "vtkVolumeRayCastMapper.h" +#else + #include +#endif #include "boxSurfaceObserver.h" -#include "vtkVolumeRayCastCompositeFunction.h" #include #include "vtkVolumeProperty.h" #include "vtkPolyDataMapper.h" @@ -19,7 +49,6 @@ #include "vtkOutlineFilter.h" #include "vtkRenderWindowInteractor.h" -#include "vtkVolumeRayCastMIPFunction.h" #include "volumerendererdata.h" @@ -32,7 +61,8 @@ public: virtual ~vtkClipping3DDataViewer(); // vtkImageActor* GetImageActor(int id); - vtkActor* GetOutlineActor(); + + vtkClipPolyData* GetTissueClipper(int id); vtkPolyDataMapper* GetTissueMapper(int id); vtkPlanes* GetTissuePlanes(int id); @@ -43,17 +73,24 @@ public: vtkMarchingCubes *GetMCubes(int idTissue); virtual void Refresh(); - void RefreshSurface(); + void RefreshSurface(); virtual void Configure(); void Configure_Tissue(); void Configure_Volume(); + void SetImage(); void SetIsovalue(int idTissue, int isoValue); double GetIsovalue(int idTissue); vtkVolume *GetVolumeActor(); - vtkVolumeRayCastMapper *GetVolumeMapper(); + +#if (VTK_MAJOR_VERSION <= 7) + vtkVolumeRayCastMapper *GetVolumeMapper(); +#else + vtkFixedPointVolumeRayCastMapper *GetVolumeMapper(); +#endif + vtkPlanes *GetVolumePlanes(); void SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata); @@ -65,7 +102,7 @@ public: bool GetVisibleVolume(); void SetVisibleVolume(bool visibleVolume); - bool GetVisibleVolumeBox(); + bool GetVisibleVolumeBox(); void SetVisibleVolumeBox(bool visibleBox); void SetRepresentationType(int idTissue, bool representationType); @@ -79,20 +116,20 @@ public: void ReadMeshVTK(char *namefile); - void Configure_VolumeBox(); - void SetInteractor(vtkRenderWindowInteractor* interactor); - void SetRenderer(vtkRenderer* renderer); + void Configure_VolumeBox(); + void SetInteractor(vtkRenderWindowInteractor* interactor); + void SetRenderer(vtkRenderer* renderer); //------------------- //Getters Vectors //------------------- - std::vector* GetGreyValuesTransferenceFVector(); - std::vector* GetIntensityValuesTransferenceFVector(); - std::vector* GetRedColorsOfColorTransferenceFVector(); - std::vector* GetGreenColorsOfColorTransferenceFVector(); - std::vector* GetBlueColorsOfColorTransferenceFVector(); - std::vector* GetGreyValueColorsOfColorTransferenceFVector(); + std::vector* GetGreyValuesTransferenceFVector(); + std::vector* GetIntensityValuesTransferenceFVector(); + std::vector* GetRedColorsOfColorTransferenceFVector(); + std::vector* GetGreenColorsOfColorTransferenceFVector(); + std::vector* GetBlueColorsOfColorTransferenceFVector(); + std::vector* GetGreyValueColorsOfColorTransferenceFVector(); void setColorTransferFunction(vtkColorTransferFunction* colortable); @@ -100,50 +137,44 @@ public: //Getters transference function //and color of the transference function //--------------------------------------- - vtkPiecewiseFunction *GetTransferencefunction(); - vtkColorTransferFunction *GetColorTransferenceFunction(); + vtkPiecewiseFunction *GetTransferencefunction(); + vtkColorTransferFunction *GetColorTransferenceFunction(); - void SetRayCasting(bool active); - void SetMIPActive(bool active); - void SetInterpolation(bool active); - void SetShade(bool active); - void updateVolume(); - - - void BoxActorChanged(bool changed); - void UpdateVolumeBox(vector gf, vector vf, vtkColorTransferFunction* ctfun); + void SetRayCasting(bool active); + void SetMIPActive(bool active); + void SetInterpolation(bool active); + void SetShade(bool active); + void updateVolume(); + void BoxActorChanged(bool changed); + void UpdateVolumeBox(vector gf, vector vf, vtkColorTransferFunction* ctfun); private: - vtkMarchingCubes *_mCubes[ VTKMPRDATA_MAXTISSUE ]; vtkStripper *_tissueStripper[ VTKMPRDATA_MAXTISSUE ]; vtkPolyDataMapper *_tissueMapper[ VTKMPRDATA_MAXTISSUE ]; vtkPlanes *_tissuePlanes[ VTKMPRDATA_MAXTISSUE ]; vtkClipPolyData *_tissueClipper[ VTKMPRDATA_MAXTISSUE ]; - // outline - vtkOutlineFilter *_outlineData; - vtkPolyDataMapper *_mapOutline; - vtkActor *_outline; - /// Volume vtkPiecewiseFunction *_tfun; vtkColorTransferFunction *_ctfun; // vtkVolumeRayCastCompositeFunction *_compositeFunction; vtkPlanes *_volumePlanes; + +#if (VTK_MAJOR_VERSION <= 7) vtkVolumeRayCastMapper *_volumeMapper; +#else + vtkFixedPointVolumeRayCastMapper *_volumeMapper; +#endif + + vtkVolumeProperty *_volumeProperty; vtkVolume *_newvol; - vtkMPRBaseData *_vtkmprbasedata; - bool _visibleVolume; - - bool _visibleVolumeBox; - - + bool _visibleVolumeBox; bool _representationType[VTKMPRDATA_MAXTISSUE]; bool _visibleTissue[VTKMPRDATA_MAXTISSUE]; vtkActor *_tissue[VTKMPRDATA_MAXTISSUE]; @@ -157,11 +188,16 @@ private: std::vector blueColorsOfColorTransferenceFVector; std::vector greyValueColorsOfColorTransferenceFVector; +#if (VTK_MAJOR_VERSION <= 7) vtkVolumeRayCastCompositeFunction *_compositeFunction; vtkVolumeRayCastMIPFunction *_compositeFunctionMIP ; +#else + // .. +#endif + bool _isRayCasting; - bool _isMIP; + bool _isMIP; bool _interpolation; bool _shade;