]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasMultipleVolumeRendererManager.h
cb55609fdcded0d655f8eda1a651704f0b8e88ae
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasMultipleVolumeRendererManager.h
1 /*=========================================================================
2
3   Program:   wxMaracas
4   Module:    $RCSfile: wxMaracasMultipleVolumeRendererManager.h,v $
5   Language:  C++
6   Date:      $Date: 2009/07/08 15:14:03 $
7   Version:   $Revision: 1.2 $
8
9   Copyright: (c) 2002, 2003
10   License:
11   
12      This software is distributed WITHOUT ANY WARRANTY; without even 
13      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14      PURPOSE.  See the above copyright notice for more information.
15
16 =========================================================================*/
17
18
19
20
21 #ifndef __wxMaracasMultipleVolumeRendererManagerH__
22 #define __wxMaracasMultipleVolumeRendererManagerH__
23
24 #include <iostream>
25 #include <vector>
26
27 #include "wxMaracasMultipleVolumeRendererManagerData.h"
28
29
30 class wxMaracasMultipleVolumeRendererManager  {
31
32 public:
33         wxMaracasMultipleVolumeRendererManager();
34         ~wxMaracasMultipleVolumeRendererManager();
35
36         /**
37         **      Sets the renderer to manage the prop3D from the view
38         **/
39         void setRenderer(vtkRenderer*  renderer);
40         /**
41         **      Adds a volume
42         **/
43         int addVolume(vtkImageData* img, std::string dataname) throw (char*);   
44         
45         /**
46         **      loads a prop3D from a nSTL file
47         **/
48         vtkProp3D* getVolume(std::string filename);
49
50         /**
51         **      loads a MHD file to convert it into an actor
52         **/
53         vtkImageData* getImageData(std::string filename);
54
55         /**
56         **      adds or removes an actor depending of the bool value
57         **/
58         void addRemoveActor(int propid, bool addremove) throw(char*);
59         /**
60         **      Check if the variables are setted correctly
61         **/
62         void checkInvariant()throw(char*);
63
64         /** 
65         ** Set Volume Opacity
66         **/
67         void setVolumeOpacity(int propid, std::vector<double> greylevel,std::vector<double> value) throw(char*);
68         /**
69         **      Set Volume Color
70         **/
71         void setVolumeColor(int volid, std::vector<double> greylevel,
72                                                                         std::vector<double> red,
73                                                                         std::vector<double> green,
74                                                                         std::vector<double> blue);      
75
76         /**
77         **      Given an id search the data in the vector
78         **/
79         wxMaracasMultipleVolumeRendererManagerData* getViewData(int id)throw(char*);
80         /**
81         **
82         **/
83         void deleteActor(int volumeid)throw (char *);
84         
85 private:        
86         std::vector<wxMaracasMultipleVolumeRendererManagerData*> prop3Dvect;
87
88         vtkRenderer*  _renderer;
89
90         int _idCount;
91
92         
93
94         
95 };
96
97 #endif