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