]> Creatis software - creaMaracasVisu.git/blob - bbtk/src/bbmaracasvisuViewerNV.cxx
ff52573783798e5633a69282472d1c2dda7d6bbc
[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         if(img != NULL && mwxwidget != NULL){// && !enter){
63                 
64                 if(!compareVectors(type, currenttype)){
65                         mwxwidget->SetType(&type);
66                         mwxwidget->UpdateLayout(img);
67                 }else if (img != currentimg){           
68                         mwxwidget->SetImage(img);
69                         //mwxwidget->UpdateLayout(img);
70                 }
71                 currenttype = type;
72                 currentimg = img;
73                 
74
75                 point.clear();
76                 point.push_back((int)mwxwidget->GetX());
77                 point.push_back((int)mwxwidget->GetY());
78                 point.push_back((int)mwxwidget->GetZ());
79                 bbSetOutputPoint(point);
80
81         //    WxBlackBox::Process(); 
82 //              mwxwidget->SetImage(img );
83                 wxVtkBaseView *wvbv1 = mwxwidget->GetwxVtkBaseView(1);
84                 wxVtkBaseView *wvbv2 = mwxwidget->GetwxVtkBaseView(2);
85                 wxVtkBaseView *wvbv3 = mwxwidget->GetwxVtkBaseView(3);
86                 wxVtkBaseView *wvbv4 = mwxwidget->GetwxVtkBaseView(4);
87
88                 //wxwidget->RefreshView();
89
90                 bbSetOutputwxVtkBaseView1( wvbv1 );
91                 bbSetOutputwxVtkBaseView2( wvbv2 );
92                 bbSetOutputwxVtkBaseView3( wvbv3 );
93                 bbSetOutputwxVtkBaseView4( wvbv4 );
94                 if (wvbv1!=NULL) { bbSetOutputRenderer1( wvbv1->GetRenderer() ); }
95                 if (wvbv2!=NULL) { bbSetOutputRenderer2( wvbv2->GetRenderer() ); }
96                 if (wvbv3!=NULL) { bbSetOutputRenderer3( wvbv3->GetRenderer() ); }
97                 if (wvbv4!=NULL) { bbSetOutputRenderer4( wvbv4->GetRenderer() ); }
98         }       
99 }
100
101 //-------------------------------------------------------------
102 void ViewerNV::CreateWidget(wxWindow* parent)
103 {
104
105     bbtkDebugMessageInc("Core",9,"ViewerNV::CreateWidget()"<<std::endl);
106         mwxwidget = new bbwxMaracas_N_ViewersWidget( this, parent );    
107         bbtkDebugDecTab("Core",9);
108     bbSetOutputWidget( mwxwidget );     
109
110         
111         //this->bbSignalOutputModification();
112         //Process();
113 }
114
115 //-------------------------------------------------------------
116 void ViewerNV::bbUserConstructor()
117 {
118
119                 mwxwidget = NULL;
120                 bbSetInputIn(NULL);
121
122                 std::vector<int> vecNTypeViwer;
123                 vecNTypeViwer.push_back(5);
124                 vecNTypeViwer.push_back(0);
125                 vecNTypeViwer.push_back(1);
126                 vecNTypeViwer.push_back(3);
127                 bbSetInputnTypeView(vecNTypeViwer);
128
129
130                 bbSetOutputwxVtkBaseView1( NULL );
131                 bbSetOutputwxVtkBaseView2( NULL );
132                 bbSetOutputwxVtkBaseView3( NULL );
133                 bbSetOutputwxVtkBaseView4( NULL );
134                 bbSetOutputRenderer1( NULL );
135                 bbSetOutputRenderer2( NULL );
136                 bbSetOutputRenderer3( NULL );
137                 bbSetOutputRenderer4( NULL );
138 }
139
140 //-------------------------------------------------------------
141 void ViewerNV::bbUserCopyConstructor(bbtk::BlackBox::Pointer)
142 {
143
144                 mwxwidget = NULL;
145                 
146 }
147
148 //-------------------------------------------------------------
149 void ViewerNV::bbUserDestructor()
150 {
151 std::cout << "ViewerNV destroy "<<this<<" vs "<<GetThisPointer<void>()<<std::endl;
152
153 }
154
155 bool ViewerNV::compareVectors(std::vector<int> type,std::vector<int> currenttype){
156
157         bool ret = true;
158
159         if(type.size()==currenttype.size()){
160                 for(int i = 0; i < (int)(type.size()) && ret; i++){
161                         if(type[i]!=currenttype[i]){
162                                 ret = false;
163                         }
164                 }
165         }else{
166                 ret=false;
167         }
168         return ret;
169
170
171 }
172
173 }
174 // EO namespace bbcreaMaracasVisu
175
176