1 #include "bbmaracasvisuViewerNV.h"
2 #include "bbcreaMaracasVisuPackage.h"
3 namespace bbcreaMaracasVisu
6 BEGIN_EVENT_TABLE( bbwxMaracas_N_ViewersWidget, wxPanel )
7 EVT_MENU( 12121, bbwxMaracas_N_ViewersWidget::OnRefreshView )
8 EVT_MENU( 12122, bbwxMaracas_N_ViewersWidget::OnDClickLeft )
12 //-------------------------------------------------------------
13 //-------------------------------------------------------------
14 //-------------------------------------------------------------
16 bbwxMaracas_N_ViewersWidget::bbwxMaracas_N_ViewersWidget(ViewerNV* box,
18 vtkImageData* imagedata,
19 std::vector<int> *nTypeView)
20 :wxMaracas_N_ViewersWidget(parent,imagedata,nTypeView)
25 //-------------------------------------------------------------
26 bbwxMaracas_N_ViewersWidget::~bbwxMaracas_N_ViewersWidget()
30 //-------------------------------------------------------------
31 void bbwxMaracas_N_ViewersWidget::OnRefreshView(wxCommandEvent & event)
33 //printf("CPR: bbwxMaracas_N_ViewersWidget::OnRefreshView -> actualiza X, Y y Z\n");
34 mbbViewerNV->point.clear();
36 mbbViewerNV->point.push_back( (int)GetX() );
37 mbbViewerNV->point.push_back( (int)GetY() );
38 mbbViewerNV->point.push_back( (int)GetZ() );
39 mbbViewerNV->bbSetOutputPoint( mbbViewerNV->point );
40 mbbViewerNV->bbSignalOutputModification(std::string("Point"));
42 wxMaracas_N_ViewersWidget::OnRefreshView(event);
45 //-------------------------------------------------------------
46 void bbwxMaracas_N_ViewersWidget::OnDClickLeft(wxCommandEvent & event)
48 wxMaracas_N_ViewersWidget::OnDClickLeft(event);
49 mbbViewerNV->bbSignalOutputModification(std::string("Point"));
52 //-------------------------------------------------------------
53 //-------------------------------------------------------------
54 //-------------------------------------------------------------
58 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,ViewerNV)
59 BBTK_BLACK_BOX_IMPLEMENTATION(ViewerNV,bbtk::WxBlackBox);
60 //-------------------------------------------------------------
61 void ViewerNV::Process()
64 printf("EED ViewerNV::Process start \n");
66 vtkImageData* img = bbGetInputIn();
70 printf ("EED ViewerNV::Process A %f %f %f \n", spc[0], spc[1], spc[2] );
71 img->SetSpacing( 1,1,1 );
74 img->PrintSelf(std::cout,(vtkIndent)2);
75 img->Print(std::cout);
76 printf ("EED ViewerNV::Process B %f %f %f \n", spc[0], spc[1], spc[2] );
78 std::vector<int> type = bbGetInputnTypeView();
81 if(img != NULL && mwxwidget != NULL){
82 if(!compareVectors(type, currenttype)){
83 mwxwidget->SetType(&type);
84 mwxwidget->UpdateLayout(img);
85 }else if (img != currentimg){
86 mwxwidget->SetImage(img);
87 //mwxwidget->UpdateLayout(img);
90 // if (firsttime==true) // EED 21 aout 2010
93 // mwxwidget->ConfigureVTK();
96 mwxwidget->RefreshView();
102 point.push_back((int)mwxwidget->GetX());
103 point.push_back((int)mwxwidget->GetY());
104 point.push_back((int)mwxwidget->GetZ());
105 bbSetOutputPoint(point);
107 // WxBlackBox::Process();
108 // mwxwidget->SetImage(img );
109 wxVtkBaseView *wvbv1 = mwxwidget->GetwxVtkBaseView(1);
110 wxVtkBaseView *wvbv2 = mwxwidget->GetwxVtkBaseView(2);
111 wxVtkBaseView *wvbv3 = mwxwidget->GetwxVtkBaseView(3);
112 wxVtkBaseView *wvbv4 = mwxwidget->GetwxVtkBaseView(4);
114 //wxwidget->RefreshView();
116 bbSetOutputwxVtkBaseView1( wvbv1 );
117 bbSetOutputwxVtkBaseView2( wvbv2 );
118 bbSetOutputwxVtkBaseView3( wvbv3 );
119 bbSetOutputwxVtkBaseView4( wvbv4 );
120 if (wvbv1!=NULL) { bbSetOutputRenderer1( wvbv1->GetRenderer() ); }
121 if (wvbv2!=NULL) { bbSetOutputRenderer2( wvbv2->GetRenderer() ); }
122 if (wvbv3!=NULL) { bbSetOutputRenderer3( wvbv3->GetRenderer() ); }
123 if (wvbv4!=NULL) { bbSetOutputRenderer4( wvbv4->GetRenderer() ); }
127 bbSetOutputInteractor1( wvbv1->GetWxVTKRenderWindowInteractor() );
131 if(bbGetInputColorFunction()!=NULL)
133 mwxwidget->setColorTransferFunction(bbGetInputColorFunction());
136 if(bbGetInputWindowLevel()!=-1)
138 mwxwidget->setWindowLevel(bbGetInputWindowLevel());
141 if(bbGetInputColorLevel()!=-1)
143 if(bbGetInputColorLevel() == 0)
145 std::cout<<"colorlevel "<<bbGetInputColorLevel()<<std::endl;
146 mwxwidget->setColorLevel(0.1);
148 mwxwidget->setColorLevel(bbGetInputColorLevel());
151 }// mwxwidget != NULL
153 printf("EED ViewerNV::Process end\n");
156 //-------------------------------------------------------------
157 void ViewerNV::CreateWidget(wxWindow* parent)
159 printf("EED ViewerNV::CreateWidget start\n");
161 bbtkDebugMessageInc("Core",9,"ViewerNV::CreateWidget()"<<std::endl);
162 mwxwidget = new bbwxMaracas_N_ViewersWidget( this, parent );
163 bbtkDebugDecTab("Core",9);
164 bbSetOutputWidget( mwxwidget );
166 printf("EED ViewerNV::CreateWidget end\n");
168 //this->bbSignalOutputModification();
172 //-------------------------------------------------------------
173 void ViewerNV::bbUserSetDefaultValues()
179 bbSetInputObs1(NULL);
180 bbSetInputObs2(NULL);
181 bbSetInputObs3(NULL);
182 bbSetInputObs4(NULL);
183 bbSetInputObs5(NULL);
185 std::vector<int> vecNTypeViwer;
186 vecNTypeViwer.push_back(5);
187 vecNTypeViwer.push_back(1);
188 vecNTypeViwer.push_back(2);
189 vecNTypeViwer.push_back(0);
190 bbSetInputnTypeView(vecNTypeViwer);
192 bbSetOutputwxVtkBaseView1( NULL );
193 bbSetOutputwxVtkBaseView2( NULL );
194 bbSetOutputwxVtkBaseView3( NULL );
195 bbSetOutputwxVtkBaseView4( NULL );
196 bbSetOutputRenderer1( NULL );
197 bbSetOutputRenderer2( NULL );
198 bbSetOutputRenderer3( NULL );
199 bbSetOutputRenderer4( NULL );
200 bbSetInputColorFunction(NULL);
201 bbSetInputWindowLevel(-1);
202 bbSetInputColorLevel(-1);
205 //-----------------------------------------------------------------
206 void ViewerNV::bbUserInitializeProcessing()
210 //-----------------------------------------------------------------
211 void ViewerNV::bbUserFinalizeProcessing()
215 //-----------------------------------------------------------------
219 bool ViewerNV::compareVectors(std::vector<int> type,std::vector<int> currenttype){
223 if(type.size()==currenttype.size()){
224 for(int i = 0; i < (int)(type.size()) && ret; i++){
225 if(type[i]!=currenttype[i]){
235 void ViewerNV::updateObservers(){
236 vtkRenderWindowInteractor* interactor;
237 interactor = bbGetOutputInteractor1();
239 if (bbGetInputObs1()!=NULL){
240 bbGetInputObs1()->SetInteractor(interactor);
241 bbGetInputObs1()->EnabledOn();
243 if (bbGetInputObs2()!=NULL)
245 bbGetInputObs2()->SetInteractor(interactor);
246 bbGetInputObs2()->EnabledOn();
248 if (bbGetInputObs3()!=NULL)
250 bbGetInputObs3()->SetInteractor(interactor);
251 bbGetInputObs3()->EnabledOn();
253 if (bbGetInputObs4()!=NULL)
255 bbGetInputObs4()->SetInteractor(interactor);
256 bbGetInputObs4()->EnabledOn();
258 if (bbGetInputObs5()!=NULL)
260 bbGetInputObs5()->SetInteractor(interactor);
261 bbGetInputObs5()->EnabledOn();
267 // EO namespace bbcreaMaracasVisu