]> Creatis software - creaMaracasVisu.git/blob - lib/GUI/Wx/VolumeRenderer/wxMaracasMultipleVolumeRendererView.h
Support #1768 CREATIS Licence insertion
[creaMaracasVisu.git] / lib / GUI / Wx / VolumeRenderer / wxMaracasMultipleVolumeRendererView.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 /*=========================================================================
27
28   Program:   wxMaracas
29   Module:    $RCSfile: wxMaracasMultipleVolumeRendererView.h,v $
30   Language:  C++
31   Date:      $Date: 2012/11/15 14:15:43 $
32   Version:   $Revision: 1.2 $
33
34   Copyright: (c) 2002, 2003
35   License:
36
37      This software is distributed WITHOUT ANY WARRANTY; without even
38      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
39      PURPOSE.  See the above copyright notice for more information.
40
41 =========================================================================*/
42
43 #ifndef __wxMaracasMultipleVolumeRendererViewPanelH__
44 #define __wxMaracasMultipleVolumeRendererViewPanelH__
45
46 #include <vector>
47 #include <wx/wx.h>
48 #include "wx/aui/aui.h"
49 #include <iostream>
50 #include "marTypes.h"
51 #include "vtkProp3D.h"
52
53 #include "volumerenderermanager.h"
54 #include "wxMaracasMultipleVolumeRendererPanel.h"
55
56
57
58 class  creaMaracasVisu_EXPORT  wxMaracasMultipleVolumeRendererView : public wxPanel
59 {
60
61 public:
62         wxMaracasMultipleVolumeRendererView( wxWindow* parent, std::string path);
63     ~wxMaracasMultipleVolumeRendererView( );
64
65         static wxMaracasMultipleVolumeRendererView* getInstance(wxWindow* parent,std::string path="");
66
67         static wxMaracasMultipleVolumeRendererView* getInstance();
68
69         void setRenderer(vtkRenderer*  renderer);
70         
71         void addVolume(vtkImageData* img, std::string dataname="");             
72
73         void loadVolume(wxString filename, wxString dataname);
74
75         void onLoadImageFile();
76
77         void addVolumeRendererPanel(wxMaracasMultipleVolumeRendererPanel* irmview, std::string dataname="");
78
79         std::string getPath();
80
81         void deleteVolume(int volid);
82
83         void addRemoveActor(int id, bool remove);       
84
85         void SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue);
86         void SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values);
87
88         void addVolumeViewPanel(wxMaracasMultipleVolumeRendererPanel* irmview, std::string dataname);
89
90         vtkPiecewiseFunction* GetTransferFunction(int volumeid);
91         vtkColorTransferFunction* GetColorFunction(int volumeid);
92
93         std::vector<vtkImageData*> GetOutputImages();
94
95         void changeCompositeMIPFunction(int id, int function);
96
97         VolumeRendererManager* getVolumeRenderManager();
98
99 private:
100         static wxMaracasMultipleVolumeRendererView* instance;
101
102         VolumeRendererManager* volmanager;
103         wxAuiManager* wxauimanager;
104         wxToolBar* _toolb;
105         
106         std::string _path;
107     std::vector<vtkImageData*> imgVect;
108 };
109
110 class ToolBarEventHandlerMultipleVolumeRenderer : public wxEvtHandler{
111
112         public:
113                 ToolBarEventHandlerMultipleVolumeRenderer();
114                 ~ToolBarEventHandlerMultipleVolumeRenderer();
115
116                 void onLoadImageFile(wxCommandEvent& event);
117
118         private:
119
120                 DECLARE_EVENT_TABLE()
121         };
122
123 class ToolBarMultipleVolumeRenderer : public wxToolBar{
124
125         
126 public:
127         ToolBarMultipleVolumeRenderer(wxWindow * parent,std::string iconsdir);
128         ~ToolBarMultipleVolumeRenderer(void);
129
130
131 private:
132
133         ToolBarEventHandlerMultipleVolumeRenderer* _evthand;
134
135 };
136
137 #endif
138