]> Creatis software - creaMaracasVisu.git/blob - bbtk/src/bbmaracasvisuViewerNV.cxx
.
[creaMaracasVisu.git] / bbtk / src / bbmaracasvisuViewerNV.cxx
1 #include "bbmaracasvisuViewerNV.h"
2 #include "bbcreaMaracasVisuPackage.h"
3 namespace bbcreaMaracasVisu
4 {
5
6
7 BEGIN_EVENT_TABLE( bbwxMaracas_N_ViewersWidget, wxPanel )
8         EVT_MENU( 12121, bbwxMaracas_N_ViewersWidget::OnRefreshView )
9         EVT_MENU( 12122, bbwxMaracas_N_ViewersWidget::OnDClickLeft  )
10 END_EVENT_TABLE( );
11
12
13 //-------------------------------------------------------------
14 //-------------------------------------------------------------
15 //-------------------------------------------------------------
16
17 bbwxMaracas_N_ViewersWidget::bbwxMaracas_N_ViewersWidget(ViewerNV* box,
18                                                                                                                  wxWindow *parent, 
19                                                                                                                  vtkImageData* imagedata, 
20                                                                                                                  std::vector<int> *nTypeView)
21 :wxMaracas_N_ViewersWidget(parent,imagedata,nTypeView)
22 {
23         mbbViewerNV=box;
24 }
25
26 //-------------------------------------------------------------
27 bbwxMaracas_N_ViewersWidget::~bbwxMaracas_N_ViewersWidget()
28 {
29 }
30
31 //-------------------------------------------------------------
32 void bbwxMaracas_N_ViewersWidget::OnRefreshView(wxCommandEvent & event)
33 {
34         
35         mbbViewerNV->point.clear();
36
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"));    
42
43         wxMaracas_N_ViewersWidget::OnRefreshView(event);
44 }
45
46 //-------------------------------------------------------------
47 void bbwxMaracas_N_ViewersWidget::OnDClickLeft(wxCommandEvent & event)
48 {
49 printf("EED bbwxMaracas_N_ViewersWidget::OnDClickLeft \n");
50         wxMaracas_N_ViewersWidget::OnDClickLeft(event);
51         mbbViewerNV->bbSignalOutputModification(std::string("Point"));    
52 }
53
54 //-------------------------------------------------------------
55 //-------------------------------------------------------------
56 //-------------------------------------------------------------
57
58
59
60
61 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,ViewerNV)
62 BBTK_BLACK_BOX_IMPLEMENTATION(ViewerNV,bbtk::WxBlackBox);
63 //-------------------------------------------------------------
64 void ViewerNV::Process()
65 {       
66
67         vtkImageData* img = bbGetInputIn();
68         std::vector<int> type = bbGetInputnTypeView();
69
70         std::cout<<"img "<<img<<std::endl;
71         std::cout<<"widget "<<mwxwidget<<std::endl;
72         
73         if(img != NULL && mwxwidget != NULL){// && !enter){
74                 
75                 if(!compareVectors(type, currenttype)){
76                         mwxwidget->SetType(&type);
77                         mwxwidget->UpdateLayout(img);
78                 }else if (img != currentimg){           
79                         mwxwidget->SetImage(img);
80                         //mwxwidget->UpdateLayout(img);
81                 }
82                 currenttype = type;
83                 currentimg = img;
84                 
85
86                 point.clear();
87                 point.push_back((int)mwxwidget->GetX());
88                 point.push_back((int)mwxwidget->GetY());
89                 point.push_back((int)mwxwidget->GetZ());
90                 bbSetOutputPoint(point);
91
92         //    WxBlackBox::Process(); 
93 //              mwxwidget->SetImage(img );
94                 wxVtkBaseView *wvbv1 = mwxwidget->GetwxVtkBaseView(1);
95                 wxVtkBaseView *wvbv2 = mwxwidget->GetwxVtkBaseView(2);
96                 wxVtkBaseView *wvbv3 = mwxwidget->GetwxVtkBaseView(3);
97                 wxVtkBaseView *wvbv4 = mwxwidget->GetwxVtkBaseView(4);
98
99                 //wxwidget->RefreshView();
100
101                 bbSetOutputwxVtkBaseView1( wvbv1 );
102                 bbSetOutputwxVtkBaseView2( wvbv2 );
103                 bbSetOutputwxVtkBaseView3( wvbv3 );
104                 bbSetOutputwxVtkBaseView4( wvbv4 );
105                 if (wvbv1!=NULL) { bbSetOutputRenderer1( wvbv1->GetRenderer() ); }
106                 if (wvbv2!=NULL) { bbSetOutputRenderer2( wvbv2->GetRenderer() ); }
107                 if (wvbv3!=NULL) { bbSetOutputRenderer3( wvbv3->GetRenderer() ); }
108                 if (wvbv4!=NULL) { bbSetOutputRenderer4( wvbv4->GetRenderer() ); }
109         }       
110 }
111
112 //-------------------------------------------------------------
113 void ViewerNV::CreateWidget(wxWindow* parent)
114 {
115
116     bbtkDebugMessageInc("Core",9,"ViewerNV::CreateWidget()"<<std::endl);
117         mwxwidget = new bbwxMaracas_N_ViewersWidget( this, parent );    
118         bbtkDebugDecTab("Core",9);
119     bbSetOutputWidget( mwxwidget );     
120
121         
122         //this->bbSignalOutputModification();
123         //Process();
124 }
125
126 //-------------------------------------------------------------
127 void ViewerNV::bbUserSetDefaultValues()
128 {
129
130                 mwxwidget = NULL;
131                 bbSetInputIn(NULL);
132
133                 std::vector<int> vecNTypeViwer;
134                 vecNTypeViwer.push_back(5);
135                 vecNTypeViwer.push_back(0);
136                 vecNTypeViwer.push_back(1);
137                 vecNTypeViwer.push_back(3);
138                 bbSetInputnTypeView(vecNTypeViwer);
139
140
141                 bbSetOutputwxVtkBaseView1( NULL );
142                 bbSetOutputwxVtkBaseView2( NULL );
143                 bbSetOutputwxVtkBaseView3( NULL );
144                 bbSetOutputwxVtkBaseView4( NULL );
145                 bbSetOutputRenderer1( NULL );
146                 bbSetOutputRenderer2( NULL );
147                 bbSetOutputRenderer3( NULL );
148                 bbSetOutputRenderer4( NULL );
149 }
150
151         //-----------------------------------------------------------------     
152         void ViewerNV::bbUserInitializeProcessing()
153         {
154         }
155         
156         //-----------------------------------------------------------------     
157         void ViewerNV::bbUserFinalizeProcessing()
158         {
159         }
160         
161         //-----------------------------------------------------------------     
162         
163         
164         
165 bool ViewerNV::compareVectors(std::vector<int> type,std::vector<int> currenttype){
166
167         bool ret = true;
168
169         if(type.size()==currenttype.size()){
170                 for(int i = 0; i < (int)(type.size()) && ret; i++){
171                         if(type[i]!=currenttype[i]){
172                                 ret = false;
173                         }
174                 }
175         }else{
176                 ret=false;
177         }
178         return ret;
179
180
181 }
182
183 }
184 // EO namespace bbcreaMaracasVisu
185
186