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()
63 vtkImageData* img = bbGetInputIn();
67 printf ("EED ViewerNV::Process A %f %f %f \n", spc[0], spc[1], spc[2] );
68 img->SetSpacing( 1,1,1 );
71 img->PrintSelf(std::cout,(vtkIndent)2);
72 img->Print(std::cout);
73 printf ("EED ViewerNV::Process B %f %f %f \n", spc[0], spc[1], spc[2] );
75 std::vector<int> type = bbGetInputnTypeView();
78 if(img != NULL && mwxwidget != NULL){
79 if(!compareVectors(type, currenttype)){
80 mwxwidget->SetType(&type);
81 mwxwidget->UpdateLayout(img);
82 }else if (img != currentimg){
83 mwxwidget->SetImage(img);
84 //mwxwidget->UpdateLayout(img);
87 // if (firsttime==true) // EED 21 aout 2010
90 // mwxwidget->ConfigureVTK();
93 mwxwidget->RefreshView();
99 point.push_back((int)mwxwidget->GetX());
100 point.push_back((int)mwxwidget->GetY());
101 point.push_back((int)mwxwidget->GetZ());
102 bbSetOutputPoint(point);
104 // WxBlackBox::Process();
105 // mwxwidget->SetImage(img );
106 wxVtkBaseView *wvbv1 = mwxwidget->GetwxVtkBaseView(1);
107 wxVtkBaseView *wvbv2 = mwxwidget->GetwxVtkBaseView(2);
108 wxVtkBaseView *wvbv3 = mwxwidget->GetwxVtkBaseView(3);
109 wxVtkBaseView *wvbv4 = mwxwidget->GetwxVtkBaseView(4);
111 //wxwidget->RefreshView();
113 bbSetOutputwxVtkBaseView1( wvbv1 );
114 bbSetOutputwxVtkBaseView2( wvbv2 );
115 bbSetOutputwxVtkBaseView3( wvbv3 );
116 bbSetOutputwxVtkBaseView4( wvbv4 );
117 if (wvbv1!=NULL) { bbSetOutputRenderer1( wvbv1->GetRenderer() ); }
118 if (wvbv2!=NULL) { bbSetOutputRenderer2( wvbv2->GetRenderer() ); }
119 if (wvbv3!=NULL) { bbSetOutputRenderer3( wvbv3->GetRenderer() ); }
120 if (wvbv4!=NULL) { bbSetOutputRenderer4( wvbv4->GetRenderer() ); }
124 bbSetOutputInteractor1( wvbv1->GetWxVTKRenderWindowInteractor() );
128 if(bbGetInputColorFunction()!=NULL)
130 mwxwidget->setColorTransferFunction(bbGetInputColorFunction());
133 if(bbGetInputWindowLevel()!=-1)
135 mwxwidget->setWindowLevel(bbGetInputWindowLevel());
138 if(bbGetInputColorLevel()!=-1)
140 if(bbGetInputColorLevel() == 0)
142 std::cout<<"colorlevel "<<bbGetInputColorLevel()<<std::endl;
143 mwxwidget->setColorLevel(0.1);
145 mwxwidget->setColorLevel(bbGetInputColorLevel());
148 }// mwxwidget != NULL
151 //-------------------------------------------------------------
152 void ViewerNV::CreateWidget(wxWindow* parent)
155 bbtkDebugMessageInc("Core",9,"ViewerNV::CreateWidget()"<<std::endl);
156 mwxwidget = new bbwxMaracas_N_ViewersWidget( this, parent );
157 bbtkDebugDecTab("Core",9);
158 bbSetOutputWidget( mwxwidget );
161 //this->bbSignalOutputModification();
165 //-------------------------------------------------------------
166 void ViewerNV::bbUserSetDefaultValues()
172 bbSetInputObs1(NULL);
173 bbSetInputObs2(NULL);
174 bbSetInputObs3(NULL);
175 bbSetInputObs4(NULL);
176 bbSetInputObs5(NULL);
178 std::vector<int> vecNTypeViwer;
179 vecNTypeViwer.push_back(5);
180 vecNTypeViwer.push_back(1);
181 vecNTypeViwer.push_back(2);
182 vecNTypeViwer.push_back(0);
183 bbSetInputnTypeView(vecNTypeViwer);
185 bbSetOutputwxVtkBaseView1( NULL );
186 bbSetOutputwxVtkBaseView2( NULL );
187 bbSetOutputwxVtkBaseView3( NULL );
188 bbSetOutputwxVtkBaseView4( NULL );
189 bbSetOutputRenderer1( NULL );
190 bbSetOutputRenderer2( NULL );
191 bbSetOutputRenderer3( NULL );
192 bbSetOutputRenderer4( NULL );
193 bbSetInputColorFunction(NULL);
194 bbSetInputWindowLevel(-1);
195 bbSetInputColorLevel(-1);
198 //-----------------------------------------------------------------
199 void ViewerNV::bbUserInitializeProcessing()
203 //-----------------------------------------------------------------
204 void ViewerNV::bbUserFinalizeProcessing()
208 //-----------------------------------------------------------------
212 bool ViewerNV::compareVectors(std::vector<int> type,std::vector<int> currenttype){
216 if(type.size()==currenttype.size()){
217 for(int i = 0; i < (int)(type.size()) && ret; i++){
218 if(type[i]!=currenttype[i]){
228 void ViewerNV::updateObservers(){
229 vtkRenderWindowInteractor* interactor;
230 interactor = bbGetOutputInteractor1();
232 if (bbGetInputObs1()!=NULL){
233 bbGetInputObs1()->SetInteractor(interactor);
234 bbGetInputObs1()->EnabledOn();
236 if (bbGetInputObs2()!=NULL)
238 bbGetInputObs2()->SetInteractor(interactor);
239 bbGetInputObs2()->EnabledOn();
241 if (bbGetInputObs3()!=NULL)
243 bbGetInputObs3()->SetInteractor(interactor);
244 bbGetInputObs3()->EnabledOn();
246 if (bbGetInputObs4()!=NULL)
248 bbGetInputObs4()->SetInteractor(interactor);
249 bbGetInputObs4()->EnabledOn();
251 if (bbGetInputObs5()!=NULL)
253 bbGetInputObs5()->SetInteractor(interactor);
254 bbGetInputObs5()->EnabledOn();
260 // EO namespace bbcreaMaracasVisu