X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FvtkClipping3DDataViewer.h;h=a14720278e37c9983f772408c5ad7a752f437696;hb=659bcd2c2a608cfb8c5854ffe84e9248871df9a1;hp=3fa2c0dddf544114fd9b6bf2242588346f6a88d4;hpb=22b3a32e023370c44f812976adc4b45b88401c2f;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.h index 3fa2c0d..a147202 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,18 +32,25 @@ #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" #include "vtkColorTransferFunction.h" #include "vtkVolume.h" #include "vtkActor.h" -#include "vtkOutlineFilter.h" +//#include "vtkOutlineFilter.h" +#include "vtkRenderWindowInteractor.h" + -#include "vtkVolumeRayCastMIPFunction.h" +#include "volumerendererdata.h" class vtkClipping3DDataViewer { public: @@ -29,7 +61,8 @@ public: virtual ~vtkClipping3DDataViewer(); // vtkImageActor* GetImageActor(int id); - vtkActor* GetOutlineActor(); + + vtkClipPolyData* GetTissueClipper(int id); vtkPolyDataMapper* GetTissueMapper(int id); vtkPlanes* GetTissuePlanes(int id); @@ -40,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); @@ -62,6 +102,9 @@ public: bool GetVisibleVolume(); void SetVisibleVolume(bool visibleVolume); + bool GetVisibleVolumeBox(); + void SetVisibleVolumeBox(bool visibleBox); + void SetRepresentationType(int idTissue, bool representationType); bool GetRepresentationType(int idTissue); @@ -73,16 +116,20 @@ public: void ReadMeshVTK(char *namefile); + 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); @@ -90,42 +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 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 _representationType[VTKMPRDATA_MAXTISSUE]; bool _visibleTissue[VTKMPRDATA_MAXTISSUE]; vtkActor *_tissue[VTKMPRDATA_MAXTISSUE]; @@ -139,13 +188,20 @@ 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; + + VolumeRendererData* _volumerendererdata; }; #endif /*VTKCLIPPING3DDATAVIEWER_H_*/