]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManagerData.h
#3351 creaMaracas Visu Bug New Normal - Refresh ViewerNV
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasMultipleVolumeRendererManagerData.h
1 /*# ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4 #                        pour la Sant�)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 #  This software is governed by the CeCILL-B license under French law and
10 #  abiding by the rules of distribution of free software. You can  use,
11 #  modify and/ or redistribute the software under the terms of the CeCILL-B
12 #  license as circulated by CEA, CNRS and INRIA at the following URL
13 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14 #  or in the file LICENSE.txt.
15 #
16 #  As a counterpart to the access to the source code and  rights to copy,
17 #  modify and redistribute granted by the license, users are provided only
18 #  with a limited warranty  and the software's author,  the holder of the
19 #  economic rights,  and the successive licensors  have only  limited
20 #  liability.
21 #
22 #  The fact that you are presently reading this means that you have had
23 #  knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */
25
26 #ifndef wxMaracasMultipleVolumeRendererManagerData_H_
27 #define wxMaracasMultipleVolumeRendererManagerData_H_
28
29 #include <vtkPlanes.h>
30 #include <vtkVolumeProperty.h>
31 #include <vtkVolume.h>
32 #include <vtkPiecewiseFunction.h>
33 #include <vtkColorTransferFunction.h>
34 #include <vtkImageData.h>
35 #include <vtkProp3D.h>
36 #include <vtkRenderer.h>
37
38
39 #if (VTK_MAJOR_VERSION <= 7) 
40         #include <vtkVolumeRayCastCompositeFunction.h>
41         #include <vtkVolumeRayCastMIPFunction.h>
42         #include <vtkVolumeRayCastMapper.h>
43 #else 
44         #include <vtkFixedPointVolumeRayCastMapper.h>
45 #endif
46
47
48 #include <vector>
49
50
51 class wxMaracasMultipleVolumeRendererManagerData  {
52
53 public:
54         wxMaracasMultipleVolumeRendererManagerData(vtkImageData* vol, std::string dataname=""); 
55         ~wxMaracasMultipleVolumeRendererManagerData();          
56         
57         /**
58         **      Check if the variables are setted correctly
59         **/
60         void checkInvariant()throw (char *);
61
62         /**
63         ** Updates volume
64         **/
65         void Update();
66         
67         /**
68         **      get the prop3D 
69         **/
70         vtkProp3D* getProp3D();
71         
72         /**
73         **      return the id from the daat
74         **/
75         int getId();
76         
77         /**
78         **      set data id
79         **/
80         void setId(int propid);
81         
82         /**
83         **      Get the filanme
84         **/
85     std::string getDataname();
86         
87         /**
88         ** Set the filanme
89         **/
90     void setDataname(std::string dataname);
91         
92         /**
93         **      Set Volume Color
94         **/
95         void setVolumeColor(std::vector<double>& greylevel,
96                                                                         std::vector<double>& red,
97                                                                         std::vector<double>& green,
98                                                                         std::vector<double>& blue);     
99
100         /**
101         **      Volume Opacity
102         **/
103         void setVolumeOpacity(std::vector<double> greylevel,std::vector<double> value);
104
105         vtkPiecewiseFunction* GetTransferFunction(){
106                 return _tfun;
107         }
108
109         vtkColorTransferFunction* GetColorFunction(){
110                 return _ctfun;
111         }
112
113         void changeCompositeMIPFunction(int function) throw (char *);
114         
115 protected:
116         /**
117          * Prop 3D (data actor)
118          */
119         vtkImageData* _vol;     
120         /**
121          *  Dataname given by the user (ex. filename) 
122          **/
123         std::string _dataname;  
124         
125         
126 private:
127         
128         /*
129          * id of the data
130          */
131         int _id;                
132
133
134
135         vtkPlanes                                                       *_volumePlanes;
136         vtkVolumeProperty                                       *_volumeProperty;
137         vtkVolume                                                       *_newvol;
138         vtkPiecewiseFunction                            *_tfun;
139         vtkColorTransferFunction                        *_ctfun;
140         
141 #if (VTK_MAJOR_VERSION <= 7) 
142         vtkVolumeRayCastMIPFunction                     *_MIPFunction;
143         vtkVolumeRayCastCompositeFunction       *_compositeFunction;
144         vtkVolumeRayCastMapper                          *_volumeMapper;
145 #else 
146         vtkFixedPointVolumeRayCastMapper        *_volumeMapper;
147 #endif
148         
149
150         
151 };
152
153 #endif /*wxMaracasMultipleVolumeRendererManagerData_H_*/