1 #include "wxMaracasSurfaceRenderingProp3D.h"
3 #include <wx/colordlg.h>
4 #include "wxMaracasSurfaceRendering.h"
5 #include "wxMaracasRendererView.h"
6 #include <OpenImage.xpm>
11 ** Implementation of viewProp3D
13 wxMaracasSurfaceRenderingProp3D::wxMaracasSurfaceRenderingProp3D(wxWindow* parent, int propid, bool _isComplexBox, int _panID)
14 :wxMaracasSurfaceRenderingPanel(parent, propid, _isComplexBox, _panID){
21 wxMaracasSurfaceRenderingProp3D::~wxMaracasSurfaceRenderingProp3D(){
22 //wxMaracasSurfaceRendering::getInstance()->addRemoveActor(_propid, false);
25 //if(this->getPanId() == 1)
26 // ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->addRemoveActorSA(_propid, false);
27 //if(this->getPanId() == 2)
28 // ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->addRemoveActorSB(_propid, false);
29 //if(this->getPanId() == 3)
30 // ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->addRemoveActorSC(_propid, false);
33 //wxMaracasSurfaceRendering::getInstance()->deleteActor(_propid);
37 ** Constructs the panel. Elements inside may change depending on which tipe of panel construction if being requested
39 void wxMaracasSurfaceRenderingProp3D::createControls(){
41 wxFlexGridSizer* sizersurfprop = new wxFlexGridSizer(1);
46 choices[0] = wxString(_T("On"));
47 choices[1] = wxString(_T("Off"));
48 checkbox = new wxCheckBox(this,-1,wxString(_T("Show Actor")));
49 Connect(checkbox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onCheckBoxChange);
50 checkbox->SetValue(true);
52 sizersurfprop->Add(checkbox,wxFIXED_MINSIZE);
55 //this->addControl(checkbox);
56 wxFlexGridSizer* sizerbut = new wxFlexGridSizer(3);
58 wxBitmap bitmap(Color_xpm);
59 _colorchoose = new wxBitmapButton(this, -1, bitmap,wxDefaultPosition,wxSize(30,30));
60 Connect(_colorchoose->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onColorChange);
61 sizerbut->Add(_colorchoose,wxFIXED_MINSIZE);
63 wxBitmap bitmap1(Add_xpm);
64 _viewimage = new wxBitmapButton(this, -1, bitmap1, wxDefaultPosition, wxSize(30,30));
65 Connect(_viewimage->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onViewImage);
66 sizerbut->Add(_viewimage,wxFIXED_MINSIZE);
70 wxBitmap bitmap2(OpenImage_xpm);
71 wxBitmapButton* _openParameters = new wxBitmapButton(this, -1, bitmap2, wxDefaultPosition, wxSize(30,30));
72 Connect(_openParameters->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onOpenParameters);
73 sizerbut->Add(_openParameters,wxFIXED_MINSIZE);
75 sizersurfprop->Add(sizerbut,wxFIXED_MINSIZE);
76 //sizercolor->Add(checkbox,wxFIXED_MINSIZE);
77 //sizercolor->Add(_colorchoose,wxFIXED_MINSIZE);
78 //this->addControl(sizercolor);
80 wxStaticText* label = new wxStaticText(this, -1, wxString(_T("Opacity")));
81 opacity = new wxSlider(this, -1,100,0,100,wxDefaultPosition,wxDefaultSize,wxSL_HORIZONTAL|wxSL_LABELS);
82 Connect(opacity->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingProp3D::onOpacityRelease);
83 wxFlexGridSizer* sizeropacity = new wxFlexGridSizer(1,1,1);
84 sizeropacity->Add(label,wxFIXED_MINSIZE);
85 sizeropacity->Add(opacity,wxFIXED_MINSIZE);
87 sizersurfprop->Add(sizeropacity,wxFIXED_MINSIZE);
89 this->addControl(sizersurfprop);
94 ** Method called by setting on or off the actor
96 void wxMaracasSurfaceRenderingProp3D::onCheckBoxChange(wxCommandEvent& event){
98 wxMaracasSurfaceRendering::getInstance()->addRemoveActor(this->getPropId(), checkbox->GetValue());
104 void wxMaracasSurfaceRenderingProp3D::onColorChange(wxCommandEvent& event){
105 wxColourDialog* colourdiag = new wxColourDialog(this);
106 if(colourdiag->ShowModal()==wxID_OK){
107 wxColour colour = colourdiag->GetColourData().GetColour();
108 _colorchoose->SetBackgroundColour(colour);
110 double r = (double)(colour.Red())/255.0;
111 double g = (double)(colour.Green())/255.0;
112 double b = (double)(colour.Blue())/255.0;
114 if(this->isComplex()){
115 if(this->getPanId() == 1)
116 ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeColorA(this->getPropId(), r, g, b);
117 if(this->getPanId() == 2)
118 ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeColorB(this->getPropId(), r, g, b);
119 if(this->getPanId() == 3)
120 ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeColorC(this->getPropId(), r, g, b);
123 wxMaracasSurfaceRendering::getInstance()->changeColor(this->getPropId(),r,g,b);
127 /*void wxMaracasSurfaceRenderingProp3D::onActionButtonPressedEliminate( wxCommandEvent& event ){
132 ** Changes the opacity of an actor
134 void wxMaracasSurfaceRenderingProp3D::onOpacityRelease(wxScrollEvent& event ){
136 if(this->isComplex()){
137 if(this->getPanId() == 1)
138 ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeOpacityA(this->getPropId(),opacity->GetValue());
139 if(this->getPanId() == 2)
140 ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeOpacityB(this->getPropId(),opacity->GetValue());
141 if(this->getPanId() == 3)
142 ((wxMaracasRenderTabbedPanel*)(wxMaracasRendererView::getInstance())->getTabbedPanel())->changeOpacityC(this->getPropId(),opacity->GetValue());
145 wxMaracasSurfaceRendering::getInstance()->changeOpacity(this->getPropId(),opacity->GetValue());
149 /**Carolina Perez: Method recently added. Not functionalit yet
150 ** Loads the volume in a separate window
152 void wxMaracasSurfaceRenderingProp3D::onViewImage(wxCommandEvent& event){
154 //if(mwxwidget->ShowModal()==wxID_OK){
156 // mwxwidget->Show(false);
161 ** Loads the volume in a separate window
162 ** Carolina Perez: Method recently added 28/10/2009
164 void wxMaracasSurfaceRenderingProp3D::onOpenParameters(wxCommandEvent& event){
165 dialog = new wxMaracasRenderImageManagementPanel(this);
166 dialog->SetSize(400,580);