wxMaracasSurfaceRenderingProp3D.cxx

Go to the documentation of this file.
00001 #include "wxMaracasSurfaceRenderingProp3D.h"
00002 #include "wxMaracasDialog_NViewers.h"
00003 
00004 #include <wx/colordlg.h>
00005 #include "wxMaracasSurfaceRendering.h"
00006 #include "wxMaracasRendererView.h"
00007 
00008 #include "vtkImageData.h"
00009 
00010 #include <OpenImage.xpm>
00011 #include <Add.xpm>
00012 #include "Color.xpm"
00013 
00017 wxMaracasSurfaceRenderingProp3D::wxMaracasSurfaceRenderingProp3D(wxWindow* parent, int propid, bool _isComplexBox, int _panID)
00018 :wxMaracasSurfaceRenderingPanel(parent, propid, _isComplexBox, _panID){
00019         createControls();       
00020 }
00021 
00025 wxMaracasSurfaceRenderingProp3D::~wxMaracasSurfaceRenderingProp3D(){    
00026         //wxMaracasSurfaceRendering::getInstance()->addRemoveActor(_propid, false);
00027         if(this->isComplex())
00028         {       
00029                 //if(this->getPanId() == 1)
00030                 //      ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->addRemoveActorSA(_propid, false);
00031                 //if(this->getPanId() == 2)
00032                 //      ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->addRemoveActorSB(_propid, false);
00033                 //if(this->getPanId() == 3)
00034                 //      ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->addRemoveActorSC(_propid, false);
00035         }
00036         //else
00037                 //wxMaracasSurfaceRendering::getInstance()->deleteActor(_propid);
00038 }
00039 
00043 void wxMaracasSurfaceRenderingProp3D::createControls(){
00044 
00045         wxFlexGridSizer* sizersurfprop = new wxFlexGridSizer(1);
00046         
00047         if(!isComplexBox) 
00048         {
00049                 //wxString choices[2];
00050                 //choices[0] = wxString(_T("On"));
00051                 //choices[1] = wxString(_T("Off"));
00052                 wxFlexGridSizer* checkboxsizer = new wxFlexGridSizer(2);
00053 
00054                 checkbox = new  wxCheckBox(this,-1,wxString(_T("Show Actor")));
00055                 Connect(checkbox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onCheckBoxChange);  
00056                 checkbox->SetValue(true);       
00057                 checkboxsizer->Add(checkbox,wxFIXED_MINSIZE);
00058 
00059 
00060                 if(wxMaracasSurfaceRendering::getInstance()->interactorSet()){
00061                         checkboxsurface = new  wxCheckBox(this,-1,wxString(_T("Surface Box")));
00062                         Connect(checkboxsurface->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onCheckBoxSurfaceChange);    
00063                         checkboxsurface->SetValue(true);
00064                         checkboxsizer->Add(checkboxsurface,wxFIXED_MINSIZE);
00065                 }       
00066 
00067 
00068                 sizersurfprop->Add(checkboxsizer,wxFIXED_MINSIZE);
00069         }
00070 
00071         //this->addControl(checkbox);   
00072         wxFlexGridSizer* sizerbut = new wxFlexGridSizer(3);
00073 
00074         wxBitmap bitmap(Color_xpm);
00075         _colorchoose = new wxBitmapButton(this, -1, bitmap,wxDefaultPosition,wxSize(30,30));    
00076         Connect(_colorchoose->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onColorChange);                   
00077         sizerbut->Add(_colorchoose,wxFIXED_MINSIZE);
00078 
00079         /*
00080         wxBitmap bitmap1(Add_xpm);
00081         _viewimage = new wxBitmapButton(this, -1, bitmap1, wxDefaultPosition, wxSize(30,30));   
00082         Connect(_viewimage->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onViewImage);                       
00083         sizerbut->Add(_viewimage,wxFIXED_MINSIZE);
00084         */
00085         sizersurfprop->Add(sizerbut,wxFIXED_MINSIZE);
00086         //sizercolor->Add(checkbox,wxFIXED_MINSIZE);
00087         //sizercolor->Add(_colorchoose,wxFIXED_MINSIZE);
00088         //this->addControl(sizercolor);
00089 
00090         wxStaticText* label = new wxStaticText(this, -1, wxString(_T("Opacity")));              
00091         opacity = new wxSlider(this, -1,100,0,100,wxDefaultPosition,wxDefaultSize,wxSL_HORIZONTAL|wxSL_LABELS); 
00092         Connect(opacity->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onOpacityRelease);     
00093         wxFlexGridSizer* sizeropacity = new wxFlexGridSizer(1,1,1);     
00094         sizeropacity->Add(label,wxFIXED_MINSIZE);
00095         sizeropacity->Add(opacity,wxFIXED_MINSIZE);
00096 
00097         sizersurfprop->Add(sizeropacity,wxFIXED_MINSIZE);
00098 
00099         this->addControl(sizersurfprop);
00100         
00101 }
00102 
00106 void wxMaracasSurfaceRenderingProp3D::onCheckBoxChange(wxCommandEvent& event){  
00107         //if(!isComplexBox)
00108         wxMaracasSurfaceRendering::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());      
00109 }
00110 void wxMaracasSurfaceRenderingProp3D::onCheckBoxSurfaceChange(wxCommandEvent& event){   
00111         //if(!isComplexBox)
00112         wxMaracasSurfaceRendering::getInstance()->addRemoveSurfaceBox(this->getPropId(), checkboxsurface->GetValue());  
00113 }
00114 
00118 void wxMaracasSurfaceRenderingProp3D::onColorChange(wxCommandEvent& event){
00119         wxColourDialog* colourdiag = new wxColourDialog(this);
00120         if(colourdiag->ShowModal()==wxID_OK){
00121                 wxColour colour = colourdiag->GetColourData().GetColour();
00122                 _colorchoose->SetBackgroundColour(colour);
00123 
00124                 double r = (double)(colour.Red())/255.0;
00125                 double g = (double)(colour.Green())/255.0;
00126                 double b = (double)(colour.Blue())/255.0;
00127                 
00128                 if(this->isComplex()){
00129                         if(this->getPanId() == 1)
00130                                 ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeColorA(this->getPropId(), r, g, b);
00131                         if(this->getPanId() == 2)
00132                                 ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeColorB(this->getPropId(), r, g, b);
00133                         if(this->getPanId() == 3)
00134                                 ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeColorC(this->getPropId(), r, g, b);
00135                 }
00136                 else
00137                         wxMaracasSurfaceRendering::getInstance()->changeColor(this->getPropId(),r,g,b);
00138         }
00139         delete colourdiag;
00140 }
00141 /*void wxMaracasSurfaceRenderingProp3D::onActionButtonPressedEliminate( wxCommandEvent& event ){        
00142 
00143 }*/
00144 
00148 void wxMaracasSurfaceRenderingProp3D::onOpacityRelease(wxScrollEvent& event ){
00149 
00150         if(this->isComplex()){
00151                 if(this->getPanId() == 1)
00152                         ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeOpacityA(this->getPropId(),opacity->GetValue());
00153                 if(this->getPanId() == 2)
00154                         ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeOpacityB(this->getPropId(),opacity->GetValue());
00155                 if(this->getPanId() == 3)
00156                         ( (wxMaracasRendererView::getInstance())->getTabbedPanel(getPropId()) )->changeOpacityC(this->getPropId(),opacity->GetValue());
00157         }
00158         else
00159                 wxMaracasSurfaceRendering::getInstance()->changeOpacity(this->getPropId(),opacity->GetValue());
00160 
00161 }
00162 
00166 void wxMaracasSurfaceRenderingProp3D::onViewImage(wxCommandEvent& event){       
00167         vtkImageData* img;
00168         if(this->isComplexBox){
00169                 if(this->getPanId() == 1)
00170                         img = (wxMaracasRendererView::getInstance())->getTabbedPanel(_propid)->getSurfAImage();
00171                 if(this->getPanId() == 2)
00172                         img = (wxMaracasRendererView::getInstance())->getTabbedPanel(_propid)->getSurfBImage();
00173                 if(this->getPanId() == 3)
00174                         img = (wxMaracasRendererView::getInstance())->getTabbedPanel(_propid)->getSurfCImage();
00175                 
00176                 std::vector<int> type;
00177                 type.push_back(6);
00178 
00179                 wxMaracasDialog_NViewers* dialog1 = new wxMaracasDialog_NViewers(this, img, &type, wxString(_T("Volume Visualization") ));
00180                 dialog1->SetSize(730, 700);
00181                 dialog1->Show();
00182         }
00183         else{   
00184                 //vtkImageData* img = wxMaracasMultipleVolumeRendererView::getInstance()->getVolImage();
00185         }
00186 }

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1