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 vtkImageData* img = bbGetInputIn();
68 printf ("EED ViewerNV::Process A %f %f %f \n", spc[0], spc[1], spc[2] );
69 img->SetSpacing( 1,1,1 );
72 img->PrintSelf(std::cout,(vtkIndent)2);
73 img->Print(std::cout);
74 printf ("EED ViewerNV::Process B %f %f %f \n", spc[0], spc[1], spc[2] );
76 std::vector<int> type = bbGetInputnTypeView();
78 // std::cout<<"img "<<img<<std::endl;
79 // std::cout<<"widget "<<mwxwidget<<std::endl;
81 if(img != NULL && mwxwidget != NULL){// && !enter){
82 // if( mwxwidget != NULL){// && !enter){
84 if(!compareVectors(type, currenttype)){
85 mwxwidget->SetType(&type);
86 mwxwidget->UpdateLayout(img);
87 }else if (img != currentimg){
88 mwxwidget->SetImage(img);
89 //mwxwidget->UpdateLayout(img);
92 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() ); }
122 if (wvbv1!=NULL) { bbSetOutputInteractor1( wvbv1->GetWxVTKRenderWindowInteractor() );
126 if(bbGetInputColorFunction()!=NULL){
127 mwxwidget->setColorTransferFunction(bbGetInputColorFunction());
130 if(bbGetInputWindowLevel()!=-1){
131 mwxwidget->setWindowLevel(bbGetInputWindowLevel());
134 if(bbGetInputColorLevel()!=-1){
135 if(bbGetInputColorLevel() == 0){
136 std::cout<<"colorlevel "<<bbGetInputColorLevel()<<std::endl;
137 mwxwidget->setColorLevel(0.1);
139 mwxwidget->setColorLevel(bbGetInputColorLevel());
142 }// mwxwidget != NULL
145 //-------------------------------------------------------------
146 void ViewerNV::CreateWidget(wxWindow* parent)
149 bbtkDebugMessageInc("Core",9,"ViewerNV::CreateWidget()"<<std::endl);
150 mwxwidget = new bbwxMaracas_N_ViewersWidget( this, parent );
151 bbtkDebugDecTab("Core",9);
152 bbSetOutputWidget( mwxwidget );
155 //this->bbSignalOutputModification();
159 //-------------------------------------------------------------
160 void ViewerNV::bbUserSetDefaultValues()
165 bbSetInputObs1(NULL);
166 bbSetInputObs2(NULL);
167 bbSetInputObs3(NULL);
168 bbSetInputObs4(NULL);
169 bbSetInputObs5(NULL);
171 std::vector<int> vecNTypeViwer;
172 vecNTypeViwer.push_back(5);
173 vecNTypeViwer.push_back(0);
174 vecNTypeViwer.push_back(1);
175 vecNTypeViwer.push_back(3);
176 bbSetInputnTypeView(vecNTypeViwer);
178 bbSetOutputwxVtkBaseView1( NULL );
179 bbSetOutputwxVtkBaseView2( NULL );
180 bbSetOutputwxVtkBaseView3( NULL );
181 bbSetOutputwxVtkBaseView4( NULL );
182 bbSetOutputRenderer1( NULL );
183 bbSetOutputRenderer2( NULL );
184 bbSetOutputRenderer3( NULL );
185 bbSetOutputRenderer4( NULL );
186 bbSetInputColorFunction(NULL);
187 bbSetInputWindowLevel(-1);
188 bbSetInputColorLevel(-1);
191 //-----------------------------------------------------------------
192 void ViewerNV::bbUserInitializeProcessing()
196 //-----------------------------------------------------------------
197 void ViewerNV::bbUserFinalizeProcessing()
201 //-----------------------------------------------------------------
205 bool ViewerNV::compareVectors(std::vector<int> type,std::vector<int> currenttype){
209 if(type.size()==currenttype.size()){
210 for(int i = 0; i < (int)(type.size()) && ret; i++){
211 if(type[i]!=currenttype[i]){
221 void ViewerNV::updateObservers(){
222 vtkRenderWindowInteractor* interactor;
223 interactor = bbGetOutputInteractor1();
225 if (bbGetInputObs1()!=NULL){
226 bbGetInputObs1()->SetInteractor(interactor);
227 bbGetInputObs1()->EnabledOn();
229 if (bbGetInputObs2()!=NULL)
231 bbGetInputObs2()->SetInteractor(interactor);
232 bbGetInputObs2()->EnabledOn();
234 if (bbGetInputObs3()!=NULL)
236 bbGetInputObs3()->SetInteractor(interactor);
237 bbGetInputObs3()->EnabledOn();
239 if (bbGetInputObs4()!=NULL)
241 bbGetInputObs4()->SetInteractor(interactor);
242 bbGetInputObs4()->EnabledOn();
244 if (bbGetInputObs5()!=NULL)
246 bbGetInputObs5()->SetInteractor(interactor);
247 bbGetInputObs5()->EnabledOn();
253 // EO namespace bbcreaMaracasVisu