/*========================================================================= Program: wxMaracas Module: $RCSfile: wxMaracasIRMView.cxx,v $ Language: C++ Date: $Date: 2009/04/01 16:16:59 $ Version: $Revision: 1.1 $ Copyright: (c) 2002, 2003 License: This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ // EOF - wxMaracasMPR.cxx #include "wxMaracasIRMView.h" wxMaracasIRMView* wxMaracasIRMView::instance=NULL; wxMaracasIRMView::wxMaracasIRMView( wxWindow* parent) : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize){ //createControls(); irmmanager = new wxMaracasIRMViewManager(); wxauimanager = new wxAuiManager(this); std::string iconsdir = "/";//defaultdir; iconsdir+= "/Icons"; wxToolBar* toolbar = new ToolBar(this,iconsdir); wxAuiPaneInfo paneinfo; wxauimanager->AddPane(toolbar,paneinfo.ToolbarPane().Top()); wxauimanager->Update(); createFileChooser(); } wxMaracasIRMView::~wxMaracasIRMView( ){ } void wxMaracasIRMView::loadProp3D(){ wxFileDialog* fildial = new wxFileDialog(this, wxString(_T("Select a STL file")),wxString(_T("")), wxString(_T("")),wxString(_T("*.stl"))); if(fildial->ShowModal()==wxID_OK){ wxString filename(fildial->GetDirectory() + "/"+fildial->GetFilename() ); vtkProp3D* prop3D = irmmanager->getProp3D(filename.c_str()); if(prop3D != NULL){ this->addProp3D(prop3D); } } delete fildial; } void wxMaracasIRMView::createFileChooser(){ } wxMaracasIRMView* wxMaracasIRMView::getInstance(wxWindow* parent){ if(instance==NULL){ instance = new wxMaracasIRMView(parent); } return instance; } wxMaracasIRMView* wxMaracasIRMView::getInstance(){ return instance; } void wxMaracasIRMView::setRenderer(vtkRenderer* renderer){ irmmanager->setRenderer(renderer); } void wxMaracasIRMView::changeOpacity(int _propid, int value){ irmmanager->changeOpacity(_propid,value); } void wxMaracasIRMView::changeIsoValue(int _propid, int value){ } void wxMaracasIRMView::addProp3D(vtkProp3D* prop3D){ int id = irmmanager->addProp3D(prop3D); if(id!=-1){ wxMaracasIRMViewProp3D* controlpan = new wxMaracasIRMViewProp3D(this, id); wxAuiPaneInfo paneinfo; wxauimanager->AddPane(controlpan); } } /** ** Implementation of viewProp3D **/ wxMaracasIRMViewProp3D::wxMaracasIRMViewProp3D(wxWindow* parent,int propid) :wxMaracasIRMViewPanel(parent){ createControls(); this->_propid = propid; } wxMaracasIRMViewProp3D::~wxMaracasIRMViewProp3D(){ } void wxMaracasIRMViewProp3D::createControls(){ wxString choices[2]; choices[0] = "On"; choices[1] = "Off"; radiob = new wxRadioBox(this,-1,wxString(_T("Actor")),wxDefaultPosition,wxDefaultSize,2,choices,1,wxRA_SPECIFY_COLS); this->addControl(radiob); Connect(radiob->GetId(), wxEVT_COMMAND_RADIOBOX_SELECTED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onRadioBoxChange); opacity = new wxSlider(this, -1,0,0,100); this->addControl(opacity); Connect(opacity->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onOpacityRelease); isovalue = new wxSlider(this, -1,0,0,100); this->addControl(isovalue); Connect(isovalue->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onIsoValueRelease); } void wxMaracasIRMViewProp3D::onRadioBoxChange(wxCommandEvent& event){ } void wxMaracasIRMViewProp3D::onActionButtonPressedEliminate( wxCommandEvent& event ){ } void wxMaracasIRMViewProp3D::onOpacityRelease(wxScrollEvent& event ){ wxMaracasIRMView::getInstance()->changeOpacity(_propid,opacity->GetValue()); } void wxMaracasIRMViewProp3D::onIsoValueRelease(wxScrollEvent& event ){ wxMaracasIRMView::getInstance()->changeIsoValue(_propid,isovalue->GetValue()); } /** ** **/ ToolBar::ToolBar(wxWindow * parent,std::string iconsdir) : wxToolBar(parent, -1, wxDefaultPosition, wxDefaultSize) { std::string iconfil = iconsdir; iconfil+= "/Open.png"; wxBitmap* bitmap2 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG); this->AddTool(2, wxString(_T("test")),*bitmap2); this->Realize(); } ToolBar::~ToolBar(void){ } void ToolBar::onLoadConfig(wxCommandEvent& event){ wxMaracasIRMView::getInstance()->loadProp3D(); } BEGIN_EVENT_TABLE(ToolBar, wxToolBar) EVT_MENU(2, ToolBar::onLoadConfig) END_EVENT_TABLE()