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