]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.cpp
Support #1768 CREATIS Licence insertion
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasRenderImageManagementPanel.cpp
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 #include "wxMaracasRenderImageManagementPanel.h"
27
28
29 #include <vtkVolume.h>
30
31 /**
32 ** Class constructor
33 **/
34 wxMaracasRenderImageManagementPanel::wxMaracasRenderImageManagementPanel(wxWindow* parent, VolumeRendererManager* _vol, wxMaracasSurfaceRenderingManager* _surface1,
35                                                                                                                                                  wxMaracasSurfaceRenderingManager* _surface2, wxMaracasSurfaceRenderingManager* _surface3, wxString title, int id)
36 : wxDialog(parent, -1, title, wxDefaultPosition, wxDefaultSize, wxRESIZE_BORDER|wxDEFAULT_DIALOG_STYLE)
37 {
38         wxtrasform = new wxMaracasRenderImageTransformation(_vol, _surface1, _surface2, _surface3, id);
39         createControls();
40 }
41
42 /**
43 ** 
44 **/
45 void wxMaracasRenderImageManagementPanel::createControls()
46 {
47         wxFlexGridSizer* sizersliders = new wxFlexGridSizer(1);
48         
49         wxStaticText* tx = new wxStaticText(this, -1, wxString(_T("  Translate X  ")));
50         sliderTranslateX = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
51         sliderTranslateX->SetLineSize(1);
52         Connect(sliderTranslateX->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
53         sizersliders->Add(tx, wxFIXED_MINSIZE);
54         sizersliders->Add(sliderTranslateX, 1, wxALL|wxEXPAND, 2);
55
56         wxStaticText* ty = new wxStaticText(this, -1, wxString(_T("  Translate Y  ")));
57         sliderTranslateY = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
58         sliderTranslateY->SetLineSize(1);
59         Connect(sliderTranslateY->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
60         sizersliders->Add(ty, wxFIXED_MINSIZE);
61         sizersliders->Add(sliderTranslateY, 1, wxALL|wxEXPAND, 2);
62
63         wxStaticText* tz = new wxStaticText(this, -1, wxString(_T("  Translate Z  ")));
64         sliderTranslateZ = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
65         sliderTranslateZ->SetLineSize(1);
66         Connect(sliderTranslateZ->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
67         sizersliders->Add(tz, wxFIXED_MINSIZE);
68         sizersliders->Add(sliderTranslateZ,wxSizerFlags().Expand().Center());
69
70         wxStaticText* rx = new wxStaticText(this, -1, wxString(_T("  Rotate X  ")));
71         sliderRotateX = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
72         sliderRotateX->SetLineSize(1);
73         Connect(sliderRotateX->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
74         sizersliders->Add(rx, wxFIXED_MINSIZE);
75         sizersliders->Add(sliderRotateX,wxSizerFlags().Expand().Center());
76
77         wxStaticText* ry = new wxStaticText(this, -1, wxString(_T("  Rotate Y  ")));
78         sliderRotateY = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
79         sliderRotateY->SetLineSize(1);
80         Connect(sliderRotateY->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
81         sizersliders->Add(ry, wxFIXED_MINSIZE);
82         sizersliders->Add(sliderRotateY,wxSizerFlags().Expand().Center());
83
84         wxStaticText* rz = new wxStaticText(this, -1, wxString(_T("  Rotate Z  ")));
85         sliderRotateZ = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
86         sliderRotateZ->SetLineSize(1);
87         Connect(sliderRotateZ->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
88         sizersliders->Add(rz, wxFIXED_MINSIZE);
89         sizersliders->Add(sliderRotateZ,wxSizerFlags().Expand().Center());
90
91         wxStaticText* sx = new wxStaticText(this, -1, wxString(_T("  Scale X  ")));
92         sliderScaleX = new wxSlider(this, -1, 100, 1, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
93         sliderScaleX->SetLineSize(1);
94         Connect(sliderScaleX->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
95         sizersliders->Add(sx, wxFIXED_MINSIZE);
96         sizersliders->Add(sliderScaleX,wxSizerFlags().Expand().Center());
97
98         wxStaticText* sy = new wxStaticText(this, -1, wxString(_T("  Scale Y  ")));
99         sliderScaleY = new wxSlider(this, -1, 100, 1, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
100         sliderScaleY->SetLineSize(1);
101         Connect(sliderScaleY->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
102         sizersliders->Add(sy, wxFIXED_MINSIZE);
103         sizersliders->Add(sliderScaleY,wxSizerFlags().Expand().Center());
104
105         wxStaticText* sz = new wxStaticText(this, -1, wxString(_T("  Scale Z  ")));
106         sliderScaleZ = new wxSlider(this, -1, 100, 1, 200, wxDefaultPosition, this->GetSize(), wxSL_LABELS);
107         sliderScaleZ->SetLineSize(1);
108         Connect(sliderScaleZ->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
109         sizersliders->Add(sz, wxFIXED_MINSIZE);
110         sizersliders->Add(sliderScaleZ,wxSizerFlags().Expand().Center());
111         
112         //ATENTION!! A SUPRIMER LES LIGNES ON BAS SI ELES NE SONT PAS NECESSAIRES!!
113         
114         /*
115         //wxString choices[2];
116         //choices[0] = wxString(_T("On"));
117         //choices[1] = wxString(_T("Off"));
118         checkboxSA = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering A")));
119         Connect(checkboxSA->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSAChange);   
120         checkboxSA->SetValue(true);     
121
122         sizercheck->Add(checkboxSA, wxFIXED_MINSIZE);
123
124         //wxString choices[2];
125         //choices[0] = wxString(_T("On"));
126         //choices[1] = wxString(_T("Off"));
127         checkboxSB = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering B")));
128         Connect(checkboxSB->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSBChange);   
129         checkboxSB->SetValue(true);     
130
131         sizercheck->Add(checkboxSB, wxFIXED_MINSIZE);
132
133         //wxString choices[2];
134         //choices[0] = wxString(_T("On"));
135         //choices[1] = wxString(_T("Off"));
136         checkboxSC = new  wxCheckBox(this,-1,wxString(_T("Surface Rendering C")));
137         Connect(checkboxSC->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasRenderTabbedPanel::onCheckBoxSCChange);   
138         checkboxSC->SetValue(true);     
139
140         sizercheck->Add(checkboxSC, wxFIXED_MINSIZE);
141         sizerrenderprop->Add(sizercheck, wxFIXED_MINSIZE);*/
142
143         this->SetSizer(sizersliders, true);             
144         this->SetAutoLayout(true);
145 }
146
147 /**
148 ** Class destructor
149 **/
150 wxMaracasRenderImageManagementPanel::~wxMaracasRenderImageManagementPanel()
151 {       
152 }
153
154 /**
155 ** Transforms a volume by the given value for the X axis
156 **/
157 void wxMaracasRenderImageManagementPanel::Transform(wxCommandEvent& event)
158 {
159         //printf("wxMaracasRenderImageManagementPanel::Translate translateX = %d \n", sliderTranslateX->GetValue());
160         //printf("wxMaracasRenderImageManagementPanel::Translate translatey = %d \n", sliderTranslateY->GetValue());
161         //printf("wxMaracasRenderImageManagementPanel::Translate translatez = %d \n", sliderTranslateZ->GetValue());
162         try{
163                 wxtrasform->Translate( sliderTranslateX->GetValue(), sliderTranslateY->GetValue(), sliderTranslateZ->GetValue(), 
164                         sliderRotateX->GetValue(), sliderRotateY->GetValue(), sliderRotateZ->GetValue(), 
165                         sliderScaleX->GetValue(), sliderScaleY->GetValue(), sliderScaleZ->GetValue() );
166         }
167         catch(char* str){
168                 std::cout << "Exception : " << str << '\n';
169                 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
170                 diag->ShowModal();
171         }
172 }