]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.h
New classes due to separation of vtkMPR*.cxx and some modifications to othar classes
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / vtkClipping3DDataViewer.h
1 #ifndef VTKCLIPPING3DDATAVIEWER_H_
2 #define VTKCLIPPING3DDATAVIEWER_H_
3
4 #include "wxMPRBaseData.h"
5
6 #include "vtkClipPolyData.h"
7 #include "vtkStripper.h"
8 #include "vtkLODActor.h"
9 #include "vtkMarchingCubes.h"
10 #include "vtkVolumeRayCastMapper.h"
11 #include "boxSurfaceObserver.h"
12 #include "vtkVolumeRayCastCompositeFunction.h"
13 #include <vtkPiecewiseFunction.h>
14 #include "vtkVolumeProperty.h"
15 #include "vtkPolyDataMapper.h"
16 #include "vtkColorTransferFunction.h"
17 #include "vtkVolume.h"
18 #include "vtkActor.h"
19 #include "vtkOutlineFilter.h"
20
21
22
23 class vtkClipping3DDataViewer {
24 public:
25         //----------------------
26         //Constructo-Destructor
27         //----------------------
28         vtkClipping3DDataViewer();
29         virtual ~vtkClipping3DDataViewer();
30
31 //      vtkImageActor*                  GetImageActor(int id);
32         vtkActor*                               GetOutlineActor();
33         vtkClipPolyData*                GetTissueClipper(int id);
34         vtkPolyDataMapper*              GetTissueMapper(int id);
35         vtkPlanes*                              GetTissuePlanes(int id);
36         vtkStripper*                    GetTissueStripper(int id);
37 //      vtkGlyph3D*                             GetGlyph(int id);
38         vtkLODActor*                    GetMaceActor(int id);
39
40         vtkMarchingCubes                *GetMCubes(int idTissue);
41
42         virtual void                    Refresh();
43                         void                    RefreshSurface();
44
45         virtual void                    Configure();
46         void                                    Configure_Tissue();
47         void                                    Configure_Volume();
48
49         void                                    SetIsovalue(int idTissue, int isoValue);
50         double                                  GetIsovalue(int idTissue);
51
52         vtkVolume                               *GetVolumeActor();
53         vtkVolumeRayCastMapper  *GetVolumeMapper();
54         vtkPlanes                               *GetVolumePlanes();
55
56         void                                    SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata);
57         vtkMPRBaseData*                 GetVtkMPRBaseData();
58
59         vtkActor                                *GetTissueActor(int id);
60         void                                    SetVisibleTissue(int idTissue, bool visible);
61         bool                                    GetVisibleTissue(int idTissue);
62         bool                                    GetVisibleVolume();
63         void                                    SetVisibleVolume(bool visibleVolume);
64
65         void                                    SetRepresentationType(int idTissue, bool representationType);
66         bool                                    GetRepresentationType(int idTissue);
67
68         boxSurfaceObserver              *GetObserverS(int idObserverS);
69         boxSurfaceObserver              *GetObserverV();
70
71         //void                                  ReadVolumeFunctions(char *namefile); 
72         void                                    ReadVolumeFunctions(); 
73         void                                    ReadMeshVTK(char *namefile); 
74
75
76         //-------------------
77         //Getters Vectors
78         //-------------------
79
80         std::vector<double>*                                    GetGreyValuesTransferenceFVector();
81         std::vector<double>*                                    GetIntensityValuesTransferenceFVector();
82         std::vector<double>*                                    GetRedColorsOfColorTransferenceFVector();
83         std::vector<double>*                                    GetGreenColorsOfColorTransferenceFVector();
84         std::vector<double>*                                    GetBlueColorsOfColorTransferenceFVector();
85         std::vector<double>*                                    GetGreyValueColorsOfColorTransferenceFVector();
86
87         //--------------------------------------
88         //Getters transference function
89         //and color of the transference function
90         //---------------------------------------
91         vtkPiecewiseFunction                            *GetTransferencefunction();
92         vtkColorTransferFunction                        *GetColorTransferenceFunction();
93
94
95
96 private:
97         
98         vtkMarchingCubes                                        *_mCubes[ VTKMPRDATA_MAXTISSUE ];
99         vtkStripper                                                     *_tissueStripper[ VTKMPRDATA_MAXTISSUE ];
100         vtkPolyDataMapper                                       *_tissueMapper[ VTKMPRDATA_MAXTISSUE ];
101         vtkPlanes                                                       *_tissuePlanes[ VTKMPRDATA_MAXTISSUE ];
102         vtkClipPolyData                                         *_tissueClipper[ VTKMPRDATA_MAXTISSUE ];
103
104         // outline
105         vtkOutlineFilter                                        *_outlineData;
106         vtkPolyDataMapper                                       *_mapOutline;
107         vtkActor                                                        *_outline;
108
109         /// Volume
110         vtkPiecewiseFunction                            *_tfun;
111         vtkColorTransferFunction                        *_ctfun;
112         vtkVolumeRayCastCompositeFunction       *_compositeFunction;
113         vtkPlanes                                                       *_volumePlanes;
114         vtkVolumeRayCastMapper                          *_volumeMapper;
115         vtkVolumeProperty                                       *_volumeProperty;
116         vtkVolume                                                       *_newvol;
117
118         vtkMPRBaseData                                          *_vtkmprbasedata;
119
120         bool                                                            _visibleVolume;
121         bool                                                            _representationType[VTKMPRDATA_MAXTISSUE];
122         bool                                                            _visibleTissue[VTKMPRDATA_MAXTISSUE];
123         vtkActor                                                        *_tissue[VTKMPRDATA_MAXTISSUE];
124         boxSurfaceObserver                                      *_observerV;
125         boxSurfaceObserver                                      *_observerS[VTKMPRDATA_MAXTISSUE];
126
127         std::vector<double>                                     greyValuesTransferenceFVector;
128         std::vector<double>                                     intensityValuesTransferenceFVector;
129         std::vector<double>                                     redColorsOfColorTransferenceFVector;
130         std::vector<double>                                     greenColorsOfColorTransferenceFVector;
131         std::vector<double>                                     blueColorsOfColorTransferenceFVector;
132         std::vector<double>                                     greyValueColorsOfColorTransferenceFVector;
133 };
134
135 #endif /*VTKCLIPPING3DDATAVIEWER_H_*/