]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManagerData.h
147704a4a66bfcffaac0aff76793ef95c121744b
[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 <vtkVolumeRayCastCompositeFunction.h>
30 #include <vtkPlanes.h>
31 #include <vtkVolumeRayCastMapper.h>
32 #include <vtkVolumeProperty.h>
33 #include <vtkVolume.h>
34 #include <vtkPiecewiseFunction.h>
35 #include <vtkColorTransferFunction.h>
36 #include <vtkImageData.h>
37 #include <vtkProp3D.h>
38 #include <vtkRenderer.h>
39 #include <vtkVolumeRayCastMIPFunction.h>
40
41 #include <vector>
42
43
44 class wxMaracasMultipleVolumeRendererManagerData  {
45
46 public:
47         wxMaracasMultipleVolumeRendererManagerData(vtkImageData* vol, std::string dataname=""); 
48         ~wxMaracasMultipleVolumeRendererManagerData();          
49         
50         /**
51         **      Check if the variables are setted correctly
52         **/
53         void checkInvariant()throw (char *);
54
55         /**
56         ** Updates volume
57         **/
58         void Update();
59         
60         /**
61         **      get the prop3D 
62         **/
63         vtkProp3D* getProp3D();
64         
65         /**
66         **      return the id from the daat
67         **/
68         int getId();
69         
70         /**
71         **      set data id
72         **/
73         void setId(int propid);
74         
75         /**
76         **      Get the filanme
77         **/
78     std::string getDataname();
79         
80         /**
81         ** Set the filanme
82         **/
83     void setDataname(std::string dataname);
84         
85         /**
86         **      Set Volume Color
87         **/
88         void setVolumeColor(std::vector<double>& greylevel,
89                                                                         std::vector<double>& red,
90                                                                         std::vector<double>& green,
91                                                                         std::vector<double>& blue);     
92
93         /**
94         **      Volume Opacity
95         **/
96         void setVolumeOpacity(std::vector<double> greylevel,std::vector<double> value);
97
98         vtkPiecewiseFunction* GetTransferFunction(){
99                 return _tfun;
100         }
101
102         vtkColorTransferFunction* GetColorFunction(){
103                 return _ctfun;
104         }
105
106         void changeCompositeMIPFunction(int function) throw (char *);
107         
108 protected:
109         /**
110          * Prop 3D (data actor)
111          */
112         vtkImageData* _vol;     
113         /**
114          *  Dataname given by the user (ex. filename) 
115          **/
116         std::string _dataname;  
117         
118         
119 private:
120         
121         /*
122          * id of the data
123          */
124         int _id;                
125
126         vtkVolumeRayCastCompositeFunction       *_compositeFunction;
127         vtkPlanes                                                       *_volumePlanes;
128         vtkVolumeRayCastMapper                          *_volumeMapper;
129         vtkVolumeProperty                                       *_volumeProperty;
130         vtkVolume                                                       *_newvol;
131         vtkPiecewiseFunction* _tfun;
132         vtkColorTransferFunction* _ctfun;
133         vtkVolumeRayCastMIPFunction* _MIPFunction;
134
135         
136 };
137
138 #endif /*wxMaracasMultipleVolumeRendererManagerData_H_*/