]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasIRMView.cxx
01f52a75873a6559f839ef3cb39e71e80b964823
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxMaracasIRMView.cxx
1 /*=========================================================================
2
3   Program:   wxMaracas
4   Module:    $RCSfile: wxMaracasIRMView.cxx,v $
5   Language:  C++
6   Date:      $Date: 2009/04/01 16:16:59 $
7   Version:   $Revision: 1.1 $
8
9   Copyright: (c) 2002, 2003
10   License:
11
12      This software is distributed WITHOUT ANY WARRANTY; without even
13      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14      PURPOSE.  See the above copyright notice for more information.
15
16 =========================================================================*/
17
18
19 // EOF - wxMaracasMPR.cxx
20
21 #include "wxMaracasIRMView.h"
22
23 wxMaracasIRMView* wxMaracasIRMView::instance=NULL;
24
25 wxMaracasIRMView::wxMaracasIRMView( wxWindow* parent) 
26 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize){
27
28         //createControls();
29         irmmanager = new wxMaracasIRMViewManager();             
30
31         wxauimanager = new wxAuiManager(this);          
32
33         std::string iconsdir = "/";//defaultdir;
34         iconsdir+= "/Icons";
35         wxToolBar* toolbar = new ToolBar(this,iconsdir);
36         wxAuiPaneInfo paneinfo; 
37         wxauimanager->AddPane(toolbar,paneinfo.ToolbarPane().Top());                    
38
39         wxauimanager->Update();
40         createFileChooser();
41
42 }
43 wxMaracasIRMView::~wxMaracasIRMView( ){
44
45
46 }
47
48 void wxMaracasIRMView::loadProp3D(){    
49         
50         wxFileDialog* fildial = new wxFileDialog(this, wxString(_T("Select a STL file")),wxString(_T("")),
51                 wxString(_T("")),wxString(_T("*.stl")));
52         if(fildial->ShowModal()==wxID_OK){
53                 
54                 wxString filename(fildial->GetDirectory() + "/"+fildial->GetFilename() );
55                 vtkProp3D* prop3D = irmmanager->getProp3D(filename.c_str());
56                 if(prop3D != NULL){
57                         this->addProp3D(prop3D);
58                 }
59                 
60         }
61         delete fildial;
62         
63 }
64
65 void wxMaracasIRMView::createFileChooser(){
66     
67 }
68
69 wxMaracasIRMView* wxMaracasIRMView::getInstance(wxWindow* parent){
70         if(instance==NULL){
71                 instance = new wxMaracasIRMView(parent);
72         }
73         return instance;
74 }
75
76 wxMaracasIRMView* wxMaracasIRMView::getInstance(){
77         return instance;
78 }
79
80 void wxMaracasIRMView::setRenderer(vtkRenderer*  renderer){
81         irmmanager->setRenderer(renderer);
82 }
83
84 void wxMaracasIRMView::changeOpacity(int _propid, int value){
85         irmmanager->changeOpacity(_propid,value);
86 }
87
88 void wxMaracasIRMView::changeIsoValue(int _propid, int value){
89
90 }
91
92 void wxMaracasIRMView::addProp3D(vtkProp3D* prop3D){
93         int id = irmmanager->addProp3D(prop3D);
94         if(id!=-1){
95                 wxMaracasIRMViewProp3D* controlpan = new wxMaracasIRMViewProp3D(this, id);
96                 wxAuiPaneInfo paneinfo; 
97                 wxauimanager->AddPane(controlpan);              
98                 
99         }
100         
101 }
102
103 /**
104 **      Implementation of viewProp3D
105 **/
106
107 wxMaracasIRMViewProp3D::wxMaracasIRMViewProp3D(wxWindow* parent,int propid)
108 :wxMaracasIRMViewPanel(parent){
109         createControls();
110         this->_propid = propid;
111 }
112
113 wxMaracasIRMViewProp3D::~wxMaracasIRMViewProp3D(){
114 }
115
116 void wxMaracasIRMViewProp3D::createControls(){
117
118         wxString choices[2];
119         choices[0] = "On";
120         choices[1] = "Off";
121         radiob = new  wxRadioBox(this,-1,wxString(_T("Actor")),wxDefaultPosition,wxDefaultSize,2,choices,1,wxRA_SPECIFY_COLS);
122         this->addControl(radiob);
123         Connect(radiob->GetId(), wxEVT_COMMAND_RADIOBOX_SELECTED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onRadioBoxChange);    
124                 
125
126
127         opacity = new wxSlider(this, -1,0,0,100);
128         this->addControl(opacity);
129         Connect(opacity->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onOpacityRelease);      
130
131         isovalue = new wxSlider(this, -1,0,0,100);
132         this->addControl(isovalue);
133         Connect(isovalue->GetId(), wxEVT_SCROLL_CHANGED, (wxObjectEventFunction)&wxMaracasIRMViewProp3D::onIsoValueRelease);    
134 }
135 void wxMaracasIRMViewProp3D::onRadioBoxChange(wxCommandEvent& event){
136
137 }
138 void wxMaracasIRMViewProp3D::onActionButtonPressedEliminate( wxCommandEvent& event ){   
139
140 }
141
142 void wxMaracasIRMViewProp3D::onOpacityRelease(wxScrollEvent& event ){
143
144         wxMaracasIRMView::getInstance()->changeOpacity(_propid,opacity->GetValue());
145
146 }
147
148 void wxMaracasIRMViewProp3D::onIsoValueRelease(wxScrollEvent& event ){
149
150         wxMaracasIRMView::getInstance()->changeIsoValue(_propid,isovalue->GetValue());
151
152 }
153
154
155 /**
156 **
157 **/
158
159 ToolBar::ToolBar(wxWindow * parent,std::string iconsdir)
160 : wxToolBar(parent, -1, wxDefaultPosition, wxDefaultSize)
161 {    
162
163
164         std::string iconfil = iconsdir;
165
166         iconfil+= "/Open.png";
167         wxBitmap* bitmap2 = new wxBitmap(wxString(iconfil.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG);
168         this->AddTool(2, wxString(_T("test")),*bitmap2);                
169         
170         this->Realize();
171         
172         
173 }
174
175 ToolBar::~ToolBar(void){
176 }
177
178
179 void ToolBar::onLoadConfig(wxCommandEvent& event){
180         wxMaracasIRMView::getInstance()->loadProp3D();
181 }
182
183 BEGIN_EVENT_TABLE(ToolBar, wxToolBar)   
184         EVT_MENU(2, ToolBar::onLoadConfig)    
185 END_EVENT_TABLE()