1 #include "bbmaracasvisuViewerNV.h"
2 #include "bbcreaMaracasVisuPackage.h"
3 namespace bbcreaMaracasVisu
7 BEGIN_EVENT_TABLE( bbwxMaracas_N_ViewersWidget, wxPanel )
8 EVT_MENU( 12121, bbwxMaracas_N_ViewersWidget::OnRefreshView )
9 EVT_MENU( 12122, bbwxMaracas_N_ViewersWidget::OnDClickLeft )
13 //-------------------------------------------------------------
14 //-------------------------------------------------------------
15 //-------------------------------------------------------------
17 bbwxMaracas_N_ViewersWidget::bbwxMaracas_N_ViewersWidget(ViewerNV* box,
19 vtkImageData* imagedata,
20 std::vector<int> *nTypeView)
21 :wxMaracas_N_ViewersWidget(parent,imagedata,nTypeView)
26 //-------------------------------------------------------------
27 bbwxMaracas_N_ViewersWidget::~bbwxMaracas_N_ViewersWidget()
31 //-------------------------------------------------------------
32 void bbwxMaracas_N_ViewersWidget::OnRefreshView(wxCommandEvent & event)
34 printf("CPR: bbwxMaracas_N_ViewersWidget::OnRefreshView -> actualiza X, Y y Z\n");
35 mbbViewerNV->point.clear();
37 mbbViewerNV->point.push_back( (int)GetX() );
38 mbbViewerNV->point.push_back( (int)GetY() );
39 mbbViewerNV->point.push_back( (int)GetZ() );
40 mbbViewerNV->bbSetOutputPoint( mbbViewerNV->point );
41 mbbViewerNV->bbSignalOutputModification(std::string("Point"));
43 wxMaracas_N_ViewersWidget::OnRefreshView(event);
46 //-------------------------------------------------------------
47 void bbwxMaracas_N_ViewersWidget::OnDClickLeft(wxCommandEvent & event)
49 wxMaracas_N_ViewersWidget::OnDClickLeft(event);
50 mbbViewerNV->bbSignalOutputModification(std::string("Point"));
53 //-------------------------------------------------------------
54 //-------------------------------------------------------------
55 //-------------------------------------------------------------
59 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,ViewerNV)
60 BBTK_BLACK_BOX_IMPLEMENTATION(ViewerNV,bbtk::WxBlackBox);
61 //-------------------------------------------------------------
62 void ViewerNV::Process()
65 vtkImageData* img = bbGetInputIn();
69 printf ("EED ViewerNV::Process A %f %f %f \n", spc[0], spc[1], spc[2] );
70 img->SetSpacing( 1,1,1 );
73 img->PrintSelf(std::cout,(vtkIndent)2);
74 img->Print(std::cout);
75 printf ("EED ViewerNV::Process B %f %f %f \n", spc[0], spc[1], spc[2] );
77 std::vector<int> type = bbGetInputnTypeView();
79 // std::cout<<"img "<<img<<std::endl;
80 // std::cout<<"widget "<<mwxwidget<<std::endl;
82 // if(img != NULL && mwxwidget != NULL){// && !enter){
83 if( mwxwidget != NULL){// && !enter){
85 if(!compareVectors(type, currenttype)){
86 mwxwidget->SetType(&type);
87 mwxwidget->UpdateLayout(img);
88 }else if (img != currentimg){
89 mwxwidget->SetImage(img);
90 //mwxwidget->UpdateLayout(img);
93 mwxwidget->ConfigureVTK();
94 mwxwidget->RefreshView();
101 point.push_back((int)mwxwidget->GetX());
102 point.push_back((int)mwxwidget->GetY());
103 point.push_back((int)mwxwidget->GetZ());
104 bbSetOutputPoint(point);
106 // WxBlackBox::Process();
107 // mwxwidget->SetImage(img );
108 wxVtkBaseView *wvbv1 = mwxwidget->GetwxVtkBaseView(1);
109 wxVtkBaseView *wvbv2 = mwxwidget->GetwxVtkBaseView(2);
110 wxVtkBaseView *wvbv3 = mwxwidget->GetwxVtkBaseView(3);
111 wxVtkBaseView *wvbv4 = mwxwidget->GetwxVtkBaseView(4);
113 //wxwidget->RefreshView();
115 bbSetOutputwxVtkBaseView1( wvbv1 );
116 bbSetOutputwxVtkBaseView2( wvbv2 );
117 bbSetOutputwxVtkBaseView3( wvbv3 );
118 bbSetOutputwxVtkBaseView4( wvbv4 );
119 if (wvbv1!=NULL) { bbSetOutputRenderer1( wvbv1->GetRenderer() ); }
120 if (wvbv2!=NULL) { bbSetOutputRenderer2( wvbv2->GetRenderer() ); }
121 if (wvbv3!=NULL) { bbSetOutputRenderer3( wvbv3->GetRenderer() ); }
122 if (wvbv4!=NULL) { bbSetOutputRenderer4( wvbv4->GetRenderer() ); }
124 if (wvbv1!=NULL) { bbSetOutputInteractor1( wvbv1->GetWxVTKRenderWindowInteractor() );
128 if(bbGetInputColorFunction()!=NULL){
129 mwxwidget->setColorTransferFunction(bbGetInputColorFunction());
132 if(bbGetInputWindowLevel()!=-1){
133 mwxwidget->setWindowLevel(bbGetInputWindowLevel());
136 if(bbGetInputColorLevel()!=-1){
137 if(bbGetInputColorLevel() == 0){
138 std::cout<<"colorlevel "<<bbGetInputColorLevel()<<std::endl;
139 mwxwidget->setColorLevel(0.1);
141 mwxwidget->setColorLevel(bbGetInputColorLevel());
146 }// mwxwidget != NULL
149 //-------------------------------------------------------------
150 void ViewerNV::CreateWidget(wxWindow* parent)
153 bbtkDebugMessageInc("Core",9,"ViewerNV::CreateWidget()"<<std::endl);
154 mwxwidget = new bbwxMaracas_N_ViewersWidget( this, parent );
155 bbtkDebugDecTab("Core",9);
156 bbSetOutputWidget( mwxwidget );
159 //this->bbSignalOutputModification();
163 //-------------------------------------------------------------
164 void ViewerNV::bbUserSetDefaultValues()
170 bbSetInputObs1(NULL);
171 bbSetInputObs2(NULL);
172 bbSetInputObs3(NULL);
173 bbSetInputObs4(NULL);
174 bbSetInputObs5(NULL);
176 std::vector<int> vecNTypeViwer;
177 vecNTypeViwer.push_back(5);
178 vecNTypeViwer.push_back(0);
179 vecNTypeViwer.push_back(1);
180 vecNTypeViwer.push_back(3);
181 bbSetInputnTypeView(vecNTypeViwer);
184 bbSetOutputwxVtkBaseView1( NULL );
185 bbSetOutputwxVtkBaseView2( NULL );
186 bbSetOutputwxVtkBaseView3( NULL );
187 bbSetOutputwxVtkBaseView4( NULL );
188 bbSetOutputRenderer1( NULL );
189 bbSetOutputRenderer2( NULL );
190 bbSetOutputRenderer3( NULL );
191 bbSetOutputRenderer4( NULL );
192 bbSetInputColorFunction(NULL);
193 bbSetInputWindowLevel(-1);
194 bbSetInputColorLevel(-1);
197 //-----------------------------------------------------------------
198 void ViewerNV::bbUserInitializeProcessing()
202 //-----------------------------------------------------------------
203 void ViewerNV::bbUserFinalizeProcessing()
207 //-----------------------------------------------------------------
211 bool ViewerNV::compareVectors(std::vector<int> type,std::vector<int> currenttype){
215 if(type.size()==currenttype.size()){
216 for(int i = 0; i < (int)(type.size()) && ret; i++){
217 if(type[i]!=currenttype[i]){
229 void ViewerNV::updateObservers(){
230 vtkRenderWindowInteractor* interactor;
231 interactor = bbGetOutputInteractor1();
233 if (bbGetInputObs1()!=NULL){
234 bbGetInputObs1()->SetInteractor(interactor);
235 bbGetInputObs1()->EnabledOn();
237 if (bbGetInputObs2()!=NULL)
239 bbGetInputObs2()->SetInteractor(interactor);
240 bbGetInputObs2()->EnabledOn();
242 if (bbGetInputObs3()!=NULL)
244 bbGetInputObs3()->SetInteractor(interactor);
245 bbGetInputObs3()->EnabledOn();
247 if (bbGetInputObs4()!=NULL)
249 bbGetInputObs4()->SetInteractor(interactor);
250 bbGetInputObs4()->EnabledOn();
252 if (bbGetInputObs5()!=NULL)
254 bbGetInputObs5()->SetInteractor(interactor);
255 bbGetInputObs5()->EnabledOn();
261 // EO namespace bbcreaMaracasVisu