]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasRenderImageManagementPanel.cpp
creaButtonContainer: Updates in documentation, adding try catch clauses and cleaning...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasRenderImageManagementPanel.cpp
index 6a2d5b381190f36d0a477770a333c02362e3d413..4473513c2d9cf7e5d29d75f4b0fc8a7ed59f5dba 100644 (file)
@@ -1,13 +1,16 @@
 #include "wxMaracasRenderImageManagementPanel.h"
 
-#include <OpenImage.xpm>
+
+#include <vtkVolume.h>
 
 /**
 ** Class constructor
 **/
-wxMaracasRenderImageManagementPanel::wxMaracasRenderImageManagementPanel(wxWindow* parent)
-: wxDialog(parent, -1, _T("Image Position Parameters"), wxDefaultPosition, wxDefaultSize, wxRESIZE_BORDER|wxDEFAULT_DIALOG_STYLE)
+wxMaracasRenderImageManagementPanel::wxMaracasRenderImageManagementPanel(wxWindow* parent, wxMaracasMultipleVolumeRendererManager* _vol, wxMaracasSurfaceRenderingManager* _surface1, 
+                                                                                                                                                wxMaracasSurfaceRenderingManager* _surface2, wxMaracasSurfaceRenderingManager* _surface3, wxString title, int id)
+: wxDialog(parent, -1, title, wxDefaultPosition, wxDefaultSize, wxRESIZE_BORDER|wxDEFAULT_DIALOG_STYLE)
 {
+       wxtrasform = new wxMaracasRenderImageTransformation(_vol, _surface1, _surface2, _surface3, id);
        createControls();
 }
 
@@ -20,55 +23,64 @@ void wxMaracasRenderImageManagementPanel::createControls()
        
        wxStaticText* tx = new wxStaticText(this, -1, wxString(_T("  Translate X  ")));
        sliderTranslateX = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderTranslateX->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::TranslateX);
+       sliderTranslateX->SetLineSize(1);
+       Connect(sliderTranslateX->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(tx, wxFIXED_MINSIZE);
-       sizersliders->Add(sliderTranslateX,wxSizerFlags().Expand().Center());
+       sizersliders->Add(sliderTranslateX, 1, wxALL|wxEXPAND, 2);
 
        wxStaticText* ty = new wxStaticText(this, -1, wxString(_T("  Translate Y  ")));
        sliderTranslateY = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderTranslateY->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::TranslateY);
+       sliderTranslateY->SetLineSize(1);
+       Connect(sliderTranslateY->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(ty, wxFIXED_MINSIZE);
-       sizersliders->Add(sliderTranslateY,wxSizerFlags().Expand().Center());
+       sizersliders->Add(sliderTranslateY, 1, wxALL|wxEXPAND, 2);
 
        wxStaticText* tz = new wxStaticText(this, -1, wxString(_T("  Translate Z  ")));
        sliderTranslateZ = new wxSlider(this, -1, 0, -200, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderTranslateZ->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::TranslateZ);
+       sliderTranslateZ->SetLineSize(1);
+       Connect(sliderTranslateZ->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(tz, wxFIXED_MINSIZE);
        sizersliders->Add(sliderTranslateZ,wxSizerFlags().Expand().Center());
 
        wxStaticText* rx = new wxStaticText(this, -1, wxString(_T("  Rotate X  ")));
        sliderRotateX = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderRotateX->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::RotateX);
+       sliderRotateX->SetLineSize(1);
+       Connect(sliderRotateX->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(rx, wxFIXED_MINSIZE);
        sizersliders->Add(sliderRotateX,wxSizerFlags().Expand().Center());
 
        wxStaticText* ry = new wxStaticText(this, -1, wxString(_T("  Rotate Y  ")));
        sliderRotateY = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderRotateY->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::RotateY);
+       sliderRotateY->SetLineSize(1);
+       Connect(sliderRotateY->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(ry, wxFIXED_MINSIZE);
        sizersliders->Add(sliderRotateY,wxSizerFlags().Expand().Center());
 
        wxStaticText* rz = new wxStaticText(this, -1, wxString(_T("  Rotate Z  ")));
        sliderRotateZ = new wxSlider(this, -1, 0, -360, 360, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderRotateZ->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::RotateZ);
+       sliderRotateZ->SetLineSize(1);
+       Connect(sliderRotateZ->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(rz, wxFIXED_MINSIZE);
        sizersliders->Add(sliderRotateZ,wxSizerFlags().Expand().Center());
 
        wxStaticText* sx = new wxStaticText(this, -1, wxString(_T("  Scale X  ")));
-       sliderScaleX = new wxSlider(this, -1, 0, -100, 100, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderScaleX->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::ScaleX);
+       sliderScaleX = new wxSlider(this, -1, 100, 1, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
+       sliderScaleX->SetLineSize(1);
+       Connect(sliderScaleX->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(sx, wxFIXED_MINSIZE);
        sizersliders->Add(sliderScaleX,wxSizerFlags().Expand().Center());
 
        wxStaticText* sy = new wxStaticText(this, -1, wxString(_T("  Scale Y  ")));
-       sliderScaleY = new wxSlider(this, -1, 0, -100, 100, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
-       Connect(sliderScaleY->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::ScaleY);
+       sliderScaleY = new wxSlider(this, -1, 100, 1, 200, wxDefaultPosition, wxDefaultSize, wxSL_LABELS);
+       sliderScaleY->SetLineSize(1);
+       Connect(sliderScaleY->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(sy, wxFIXED_MINSIZE);
        sizersliders->Add(sliderScaleY,wxSizerFlags().Expand().Center());
 
        wxStaticText* sz = new wxStaticText(this, -1, wxString(_T("  Scale Z  ")));
-       sliderScaleZ = new wxSlider(this, -1, 0, -100, 100, wxDefaultPosition, this->GetSize(), wxSL_LABELS);
-       Connect(sliderScaleZ->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::ScaleZ);
+       sliderScaleZ = new wxSlider(this, -1, 100, 1, 200, wxDefaultPosition, this->GetSize(), wxSL_LABELS);
+       sliderScaleZ->SetLineSize(1);
+       Connect(sliderScaleZ->GetId(), wxEVT_COMMAND_SLIDER_UPDATED, (wxObjectEventFunction)&wxMaracasRenderImageManagementPanel::Transform);
        sizersliders->Add(sz, wxFIXED_MINSIZE);
        sizersliders->Add(sliderScaleZ,wxSizerFlags().Expand().Center());
        
@@ -110,59 +122,26 @@ void wxMaracasRenderImageManagementPanel::createControls()
 /**
 ** Class destructor
 **/
-wxMaracasRenderImageManagementPanel::~wxMaracasRenderImageManagementPanel(){   
+wxMaracasRenderImageManagementPanel::~wxMaracasRenderImageManagementPanel()
+{      
 }
 
 /**
 ** Transforms a volume by the given value for the X axis
 **/
-void wxMaracasRenderImageManagementPanel::TranslateX(int val){
-}
-
-/**
-** Transforms a volume by the given value for the Y axis
-**/
-void wxMaracasRenderImageManagementPanel::TranslateY(int val){
-}
-
-/**
-** Transforms a volume by the given value for the Z axis
-**/
-void wxMaracasRenderImageManagementPanel::TranslateZ(int val){
-}
-
-/**
-** Rotates a volume by the given degree for the X axis
-**/
-void wxMaracasRenderImageManagementPanel::RotateX(int degr){
-}
-
-/**
-** Rotates a volume by the given degree for the Y axis
-**/
-void wxMaracasRenderImageManagementPanel::RotateY(int degr){
-}
-
-/**
-** Rotates a volume by the given degree for the Z axis
-**/
-void wxMaracasRenderImageManagementPanel::RotateZ(int degr){
-}
-
-/**
-** Scales a volume by the given value for the X axis
-**/
-void wxMaracasRenderImageManagementPanel::ScaleX(int val){
-}
-
-/**
-** Scales a volume by the given value for the Y axis
-**/
-void wxMaracasRenderImageManagementPanel::ScaleY(int val){
-}
-
-/**
-** Scales a volume by the given value for the Z axis
-**/
-void wxMaracasRenderImageManagementPanel::ScaleZ(int val){
+void wxMaracasRenderImageManagementPanel::Transform(wxCommandEvent& event)
+{
+       //printf("wxMaracasRenderImageManagementPanel::Translate translateX = %d \n", sliderTranslateX->GetValue());
+       //printf("wxMaracasRenderImageManagementPanel::Translate translatey = %d \n", sliderTranslateY->GetValue());
+       //printf("wxMaracasRenderImageManagementPanel::Translate translatez = %d \n", sliderTranslateZ->GetValue());
+       try{
+               wxtrasform->Translate( sliderTranslateX->GetValue(), sliderTranslateY->GetValue(), sliderTranslateZ->GetValue(), 
+                       sliderRotateX->GetValue(), sliderRotateY->GetValue(), sliderRotateZ->GetValue(), 
+                       sliderScaleX->GetValue(), sliderScaleY->GetValue(), sliderScaleZ->GetValue() );
+       }
+       catch(char* str){
+               std::cout << "Exception : " << str << '\n';
+               wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
+               diag->ShowModal();
+       }
 }
\ No newline at end of file