00001 #include "wxMaracasRenderImageManagementPanel.h"
00002
00003
00004 #include <vtkVolume.h>
00005
00009 wxMaracasRenderImageManagementPanel::wxMaracasRenderImageManagementPanel(wxWindow* parent, wxMaracasMultipleVolumeRendererManager* _vol, wxMaracasSurfaceRenderingManager* _surface1,
00010 wxMaracasSurfaceRenderingManager* _surface2, wxMaracasSurfaceRenderingManager* _surface3, wxString title, int id)
00011 : wxDialog(parent, -1, title, wxDefaultPosition, wxDefaultSize, wxRESIZE_BORDER|wxDEFAULT_DIALOG_STYLE)
00012 {
00013 wxtrasform = new wxMaracasRenderImageTransformation(_vol, _surface1, _surface2, _surface3, id);
00014 createControls();
00015 }
00016
00020 void wxMaracasRenderImageManagementPanel::createControls()
00021 {
00022 wxFlexGridSizer* sizersliders = new wxFlexGridSizer(1);
00023
00024 wxStaticText* tx = new wxStaticText(this, -1, wxString(_T(" Translate X ")));
00025 sliderTranslateX = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
00026 sliderTranslateX->SetLineSize(1);
00027 Connect(sliderTranslateX->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
00028 sizersliders->Add(tx, wxFIXED_MINSIZE);
00029 sizersliders->Add(sliderTranslateX, 1, wxALL|wxEXPAND, 2);
00030
00031 wxStaticText* ty = new wxStaticText(this, -1, wxString(_T(" Translate Y ")));
00032 sliderTranslateY = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
00033 sliderTranslateY->SetLineSize(1);
00034 Connect(sliderTranslateY->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
00035 sizersliders->Add(ty, wxFIXED_MINSIZE);
00036 sizersliders->Add(sliderTranslateY, 1, wxALL|wxEXPAND, 2);
00037
00038 wxStaticText* tz = new wxStaticText(this, -1, wxString(_T(" Translate Z ")));
00039 sliderTranslateZ = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
00040 sliderTranslateZ->SetLineSize(1);
00041 Connect(sliderTranslateZ->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
00042 sizersliders->Add(tz, wxFIXED_MINSIZE);
00043 sizersliders->Add(sliderTranslateZ,wxSizerFlags().Expand().Center());
00044
00045 wxStaticText* rx = new wxStaticText(this, -1, wxString(_T(" Rotate X ")));
00046 sliderRotateX = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
00047 sliderRotateX->SetLineSize(1);
00048 Connect(sliderRotateX->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
00049 sizersliders->Add(rx, wxFIXED_MINSIZE);
00050 sizersliders->Add(sliderRotateX,wxSizerFlags().Expand().Center());
00051
00052 wxStaticText* ry = new wxStaticText(this, -1, wxString(_T(" Rotate Y ")));
00053 sliderRotateY = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
00054 sliderRotateY->SetLineSize(1);
00055 Connect(sliderRotateY->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
00056 sizersliders->Add(ry, wxFIXED_MINSIZE);
00057 sizersliders->Add(sliderRotateY,wxSizerFlags().Expand().Center());
00058
00059 wxStaticText* rz = new wxStaticText(this, -1, wxString(_T(" Rotate Z ")));
00060 sliderRotateZ = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
00061 sliderRotateZ->SetLineSize(1);
00062 Connect(sliderRotateZ->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
00063 sizersliders->Add(rz, wxFIXED_MINSIZE);
00064 sizersliders->Add(sliderRotateZ,wxSizerFlags().Expand().Center());
00065
00066 wxStaticText* sx = new wxStaticText(this, -1, wxString(_T(" Scale X ")));
00067 sliderScaleX = new wxSlider(this, -1, 100, 1, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
00068 sliderScaleX->SetLineSize(1);
00069 Connect(sliderScaleX->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
00070 sizersliders->Add(sx, wxFIXED_MINSIZE);
00071 sizersliders->Add(sliderScaleX,wxSizerFlags().Expand().Center());
00072
00073 wxStaticText* sy = new wxStaticText(this, -1, wxString(_T(" Scale Y ")));
00074 sliderScaleY = new wxSlider(this, -1, 100, 1, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
00075 sliderScaleY->SetLineSize(1);
00076 Connect(sliderScaleY->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
00077 sizersliders->Add(sy, wxFIXED_MINSIZE);
00078 sizersliders->Add(sliderScaleY,wxSizerFlags().Expand().Center());
00079
00080 wxStaticText* sz = new wxStaticText(this, -1, wxString(_T(" Scale Z ")));
00081 sliderScaleZ = new wxSlider(this, -1, 100, 1, 200, wxDefaultPosition, this->GetSize(), wxSL_LABELS);
00082 sliderScaleZ->SetLineSize(1);
00083 Connect(sliderScaleZ->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
00084 sizersliders->Add(sz, wxFIXED_MINSIZE);
00085 sizersliders->Add(sliderScaleZ,wxSizerFlags().Expand().Center());
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118 this->SetSizer(sizersliders, true);
00119 this->SetAutoLayout(true);
00120 }
00121
00125 wxMaracasRenderImageManagementPanel::~wxMaracasRenderImageManagementPanel()
00126 {
00127 }
00128
00132 void wxMaracasRenderImageManagementPanel::Transform(wxCommandEvent& event)
00133 {
00134
00135
00136
00137 try{
00138 wxtrasform->Translate( sliderTranslateX->GetValue(), sliderTranslateY->GetValue(), sliderTranslateZ->GetValue(),
00139 sliderRotateX->GetValue(), sliderRotateY->GetValue(), sliderRotateZ->GetValue(),
00140 sliderScaleX->GetValue(), sliderScaleY->GetValue(), sliderScaleZ->GetValue() );
00141 }
00142 catch(char* str){
00143 std::cout << "Exception : " << str << '\n';
00144 wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
00145 diag->ShowModal();
00146 }
00147 }