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