]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasSurfaceRenderingProp3D.cxx
creaButtonContainer: exceptions added, doxygen documentation added :)
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasSurfaceRenderingProp3D.cxx
index e7658c91883eb8a6b996b712589093ff01359531..8b8cf8b97f0e5237f3380f88a7913cf93c170a39 100644 (file)
@@ -1,8 +1,12 @@
 #include "wxMaracasSurfaceRenderingProp3D.h"
+#include "wxMaracasDialog_NViewers.h"
 
 #include <wx/colordlg.h>
 #include "wxMaracasSurfaceRendering.h"
 #include "wxMaracasRendererView.h"
+
+#include "vtkImageData.h"
+
 #include <OpenImage.xpm>
 #include <Add.xpm>
 #include "Color.xpm"
@@ -42,14 +46,26 @@ void wxMaracasSurfaceRenderingProp3D::createControls(){
        
        if(!isComplexBox) 
        {
-               wxString choices[2];
-               choices[0] = wxString(_T("On"));
-               choices[1] = wxString(_T("Off"));
+               //wxString choices[2];
+               //choices[0] = wxString(_T("On"));
+               //choices[1] = wxString(_T("Off"));
+               wxFlexGridSizer* checkboxsizer = new wxFlexGridSizer(2);
+
                checkbox = new  wxCheckBox(this,-1,wxString(_T("Show Actor")));
                Connect(checkbox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onCheckBoxChange);  
                checkbox->SetValue(true);       
+               checkboxsizer->Add(checkbox,1, wxGROW);
+
+
+               if(wxMaracasSurfaceRendering::getInstance()->interactorSet()){
+                       checkboxsurface = new  wxCheckBox(this,-1,wxString(_T("Surface Box")));
+                       Connect(checkboxsurface->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onCheckBoxSurfaceChange);    
+                       checkboxsurface->SetValue(true);
+                       checkboxsizer->Add(checkboxsurface,1, wxGROW);
+               }       
+
 
-               sizersurfprop->Add(checkbox,wxFIXED_MINSIZE);
+               sizersurfprop->Add(checkboxsizer,1, wxGROW);
        }
 
        //this->addControl(checkbox);   
@@ -58,21 +74,15 @@ void wxMaracasSurfaceRenderingProp3D::createControls(){
        wxBitmap bitmap(Color_xpm);
        _colorchoose = new wxBitmapButton(this, -1, bitmap,wxDefaultPosition,wxSize(30,30));    
        Connect(_colorchoose->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onColorChange);                   
-       sizerbut->Add(_colorchoose,wxFIXED_MINSIZE);
+       sizerbut->Add(_colorchoose,1, wxGROW);
 
+       /*
        wxBitmap bitmap1(Add_xpm);
        _viewimage = new wxBitmapButton(this, -1, bitmap1, wxDefaultPosition, wxSize(30,30));   
        Connect(_viewimage->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onViewImage);                       
        sizerbut->Add(_viewimage,wxFIXED_MINSIZE);
-
-       if(isComplexBox) 
-       {
-               wxBitmap bitmap2(OpenImage_xpm);
-               wxBitmapButton* _openParameters = new wxBitmapButton(this, -1, bitmap2, wxDefaultPosition, wxSize(30,30));      
-               Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onOpenParameters);                     
-               sizerbut->Add(_openParameters,wxFIXED_MINSIZE); 
-       }
-       sizersurfprop->Add(sizerbut,wxFIXED_MINSIZE);
+       */
+       sizersurfprop->Add(sizerbut,1, wxGROW);
        //sizercolor->Add(checkbox,wxFIXED_MINSIZE);
        //sizercolor->Add(_colorchoose,wxFIXED_MINSIZE);
        //this->addControl(sizercolor);
@@ -81,10 +91,10 @@ void wxMaracasSurfaceRenderingProp3D::createControls(){
        opacity = new wxSlider(this, -1,100,0,100,wxDefaultPosition,wxDefaultSize,wxSL_HORIZONTAL|wxSL_LABELS); 
        Connect(opacity->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onOpacityRelease);     
        wxFlexGridSizer* sizeropacity = new wxFlexGridSizer(1,1,1);     
-       sizeropacity->Add(label,wxFIXED_MINSIZE);
-       sizeropacity->Add(opacity,wxFIXED_MINSIZE);
+       sizeropacity->Add(label,1, wxGROW);
+       sizeropacity->Add(opacity,1, wxGROW);
 
-       sizersurfprop->Add(sizeropacity,wxFIXED_MINSIZE);
+       sizersurfprop->Add(sizeropacity,1, wxGROW);
 
        this->addControl(sizersurfprop);
        
@@ -97,6 +107,10 @@ void wxMaracasSurfaceRenderingProp3D::onCheckBoxChange(wxCommandEvent& event){
        //if(!isComplexBox)
        wxMaracasSurfaceRendering::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());      
 }
+void wxMaracasSurfaceRenderingProp3D::onCheckBoxSurfaceChange(wxCommandEvent& event){  
+       //if(!isComplexBox)
+       wxMaracasSurfaceRendering::getInstance()->addRemoveSurfaceBox(this->getPropId(), checkboxsurface->GetValue());  
+}
 
 /**
 ** 
@@ -113,11 +127,11 @@ void wxMaracasSurfaceRenderingProp3D::onColorChange(wxCommandEvent& event){
                
                if(this->isComplex()){
                        if(this->getPanId() == 1)
-                               ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeColorA(this->getPropId(), r, g, b);
+                               ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeColorA(this->getPropId(), r, g, b);
                        if(this->getPanId() == 2)
-                               ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeColorB(this->getPropId(), r, g, b);
+                               ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeColorB(this->getPropId(), r, g, b);
                        if(this->getPanId() == 3)
-                               ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeColorC(this->getPropId(), r, g, b);
+                               ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeColorC(this->getPropId(), r, g, b);
                }
                else
                        wxMaracasSurfaceRendering::getInstance()->changeColor(this->getPropId(),r,g,b);
@@ -135,11 +149,11 @@ void wxMaracasSurfaceRenderingProp3D::onOpacityRelease(wxScrollEvent& event ){
 
        if(this->isComplex()){
                if(this->getPanId() == 1)
-                       ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeOpacityA(this->getPropId(),opacity->GetValue());
+                       ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeOpacityA(this->getPropId(),opacity->GetValue());
                if(this->getPanId() == 2)
-                       ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeOpacityB(this->getPropId(),opacity->GetValue());
+                       ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeOpacityB(this->getPropId(),opacity->GetValue());
                if(this->getPanId() == 3)
-                       ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeOpacityC(this->getPropId(),opacity->GetValue());
+                       ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeOpacityC(this->getPropId(),opacity->GetValue());
        }
        else
                wxMaracasSurfaceRendering::getInstance()->changeOpacity(this->getPropId(),opacity->GetValue());
@@ -150,20 +164,23 @@ void wxMaracasSurfaceRenderingProp3D::onOpacityRelease(wxScrollEvent& event ){
 ** Loads the volume in a separate window
 **/
 void wxMaracasSurfaceRenderingProp3D::onViewImage(wxCommandEvent& event){      
+       vtkImageData* img;
+       if(this->isComplexBox){
+               if(this->getPanId() == 1)
+                       img = (wxMaracasRendererView::getInstance())->getTabbedPanel(_propid)->getSurfAImage();
+               if(this->getPanId() == 2)
+                       img = (wxMaracasRendererView::getInstance())->getTabbedPanel(_propid)->getSurfBImage();
+               if(this->getPanId() == 3)
+                       img = (wxMaracasRendererView::getInstance())->getTabbedPanel(_propid)->getSurfCImage();
+               
+               std::vector<int> type;
+               type.push_back(6);
 
-       //if(mwxwidget->ShowModal()==wxID_OK){
-    
-       //      mwxwidget->Show(false);
-       //}     
-}
-
-/** 
-** Loads the volume in a separate window
-** Carolina Perez: Method recently added 28/10/2009
-**/
-void wxMaracasSurfaceRenderingProp3D::onOpenParameters(wxCommandEvent& event){
-       dialog = new wxMaracasRenderImageManagementPanel(this);
-       dialog->SetSize(400,580);
-       dialog->Show(); 
-}
-
+               wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Volume Visualization") ));
+               dialog1->SetSize(730, 700);
+               dialog1->Show();
+       }
+       else{   
+               //vtkImageData* img = wxMaracasMultipleVolumeRendererView::getInstance()->getVolImage();
+       }
+}
\ No newline at end of file