]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkClipping3DDataViewer.h
Undo Redo
[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         void setColorTransferFunction(vtkColorTransferFunction* colortable);
88
89         //--------------------------------------
90         //Getters transference function
91         //and color of the transference function
92         //---------------------------------------
93         vtkPiecewiseFunction                            *GetTransferencefunction();
94         vtkColorTransferFunction                        *GetColorTransferenceFunction();
95
96
97
98 private:
99         
100         vtkMarchingCubes                                        *_mCubes[ VTKMPRDATA_MAXTISSUE ];
101         vtkStripper                                                     *_tissueStripper[ VTKMPRDATA_MAXTISSUE ];
102         vtkPolyDataMapper                                       *_tissueMapper[ VTKMPRDATA_MAXTISSUE ];
103         vtkPlanes                                                       *_tissuePlanes[ VTKMPRDATA_MAXTISSUE ];
104         vtkClipPolyData                                         *_tissueClipper[ VTKMPRDATA_MAXTISSUE ];
105
106         // outline
107         vtkOutlineFilter                                        *_outlineData;
108         vtkPolyDataMapper                                       *_mapOutline;
109         vtkActor                                                        *_outline;
110
111         /// Volume
112         vtkPiecewiseFunction                            *_tfun;
113         vtkColorTransferFunction                        *_ctfun;
114         vtkVolumeRayCastCompositeFunction       *_compositeFunction;
115         vtkPlanes                                                       *_volumePlanes;
116         vtkVolumeRayCastMapper                          *_volumeMapper;
117         vtkVolumeProperty                                       *_volumeProperty;
118         vtkVolume                                                       *_newvol;
119
120         vtkMPRBaseData                                          *_vtkmprbasedata;
121
122         bool                                                            _visibleVolume;
123         bool                                                            _representationType[VTKMPRDATA_MAXTISSUE];
124         bool                                                            _visibleTissue[VTKMPRDATA_MAXTISSUE];
125         vtkActor                                                        *_tissue[VTKMPRDATA_MAXTISSUE];
126         boxSurfaceObserver                                      *_observerV;
127         boxSurfaceObserver                                      *_observerS[VTKMPRDATA_MAXTISSUE];
128
129         std::vector<double>                                     greyValuesTransferenceFVector;
130         std::vector<double>                                     intensityValuesTransferenceFVector;
131         std::vector<double>                                     redColorsOfColorTransferenceFVector;
132         std::vector<double>                                     greenColorsOfColorTransferenceFVector;
133         std::vector<double>                                     blueColorsOfColorTransferenceFVector;
134         std::vector<double>                                     greyValueColorsOfColorTransferenceFVector;
135 };
136
137 #endif /*VTKCLIPPING3DDATAVIEWER_H_*/