]> Creatis software - creaMaracasVisu.git/blob - bbtk/src/bbcreaMaracasVisuPlaneDirection.cxx
1c03a1ea29186f7660c831514c01a8b97ded46ba
[creaMaracasVisu.git] / bbtk / src / bbcreaMaracasVisuPlaneDirection.cxx
1 #include "bbcreaMaracasVisuPlaneDirection.h"
2 #include "bbcreaMaracasVisuPackage.h"
3 namespace bbcreaMaracasVisu
4 {
5
6 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,PlaneDirection)
7 BBTK_BLACK_BOX_IMPLEMENTATION(PlaneDirection,bbtk::WxBlackBox);
8 void PlaneDirection::Process()
9 {
10         int radio = bbGetInputArrowSize();
11         std::vector<int> lstPointsx = bbGetInputlstPointsX();
12         std::vector<int> lstPointsy = bbGetInputlstPointsY();
13         std::vector<int> lstPointsz = bbGetInputlstPointsZ();
14         std::vector<double> _lstPointsx;
15         std::vector<double> _lstPointsy;
16         std::vector<double> _lstPointsz;
17         vtkRenderer* render = bbGetInputRenderer();
18         vtkImageData* img = bbGetInputIn();     
19         std::string filename = bbGetInputFilename();
20
21         _planedir->SetArrowSize(radio);
22         if(render!=NULL){
23                 _planedir->SetRenderer(render);
24         }
25
26         if(lstPointsx.size()>0&&lstPointsy.size()>0&&lstPointsz.size()>0){
27                 double* spc;
28                 if(img != NULL){
29                         spc = img->GetSpacing();
30                 }else{
31                         spc = new double[3];
32             spc[0]=1;
33                         spc[1]=1;
34                         spc[2]=1;
35                 }
36                 
37                 int i;
38                 for(i = 0; i < (int)lstPointsx.size();i++){                     
39                         _lstPointsx.push_back(lstPointsx[i]*spc[0]);
40                         _lstPointsy.push_back(lstPointsy[i]*spc[1]);
41                         _lstPointsz.push_back(lstPointsz[i]*spc[2]);
42                 }               
43                 
44                 _planedir->SetVectors(_lstPointsx, _lstPointsy, _lstPointsz);
45                 _planedir->UpdateDirections();
46                 if(filename.compare("")!=0){
47                         _planedir->WriteInformation(filename,spc);
48                 }
49         }
50 }
51
52 void PlaneDirection::CreateWidget(wxWindow* parent)
53 {
54         _planedir = PlaneDirectionViewer::getInstance(parent, radio, colour, opacity);
55    bbSetOutputWidget( _planedir );      
56 }
57
58 void PlaneDirection::bbUserSetDefaultValues()
59 {
60         radio = 5;
61         colour[0] = 1;
62         colour[1] = 0;
63         colour[2] = 0;
64         opacity = 100;
65 }
66
67 void PlaneDirection::bbUserInitializeProcessing()
68 {
69         std::vector<int> temp;
70         bbSetInputFilename("");
71         bbSetInputRenderer(0);
72         bbSetInputIn(0);
73         bbSetInputlstPointsX(temp);
74         bbSetInputlstPointsY(temp);
75         bbSetInputlstPointsZ(temp);
76 }
77
78 void PlaneDirection::bbUserFinalizeProcessing()
79 {
80
81 }
82 }
83 // EO namespace bbcreaMaracasVisu
84
85