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