]> Creatis software - creaMaracasVisu.git/blob - bbtk/src/bbcreaMaracasVisuPlaneDirection.cxx
#3262 creaMaracasVisu Feature New Normal - Export LookupTable fron ColorLayerImageV...
[creaMaracasVisu.git] / bbtk / src / bbcreaMaracasVisuPlaneDirection.cxx
1 /*# ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4 #                        pour la Sant�)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 #  This software is governed by the CeCILL-B license under French law and
10 #  abiding by the rules of distribution of free software. You can  use,
11 #  modify and/ or redistribute the software under the terms of the CeCILL-B
12 #  license as circulated by CEA, CNRS and INRIA at the following URL
13 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14 #  or in the file LICENSE.txt.
15 #
16 #  As a counterpart to the access to the source code and  rights to copy,
17 #  modify and redistribute granted by the license, users are provided only
18 #  with a limited warranty  and the software's author,  the holder of the
19 #  economic rights,  and the successive licensors  have only  limited
20 #  liability.
21 #
22 #  The fact that you are presently reading this means that you have had
23 #  knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */
25
26 #include "bbcreaMaracasVisuPlaneDirection.h"
27 #include "bbcreaMaracasVisuPackage.h"
28 namespace bbcreaMaracasVisu
29 {
30
31 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,PlaneDirection)
32 BBTK_BLACK_BOX_IMPLEMENTATION(PlaneDirection,bbtk::WxBlackBox);
33 void PlaneDirection::Process()
34 {
35         int radio = bbGetInputArrowSize();
36         std::vector<int> lstPointsx = bbGetInputlstPointsX();
37         std::vector<int> lstPointsy = bbGetInputlstPointsY();
38         std::vector<int> lstPointsz = bbGetInputlstPointsZ();
39         std::vector<double> _lstPointsx;
40         std::vector<double> _lstPointsy;
41         std::vector<double> _lstPointsz;
42         vtkRenderer* render = bbGetInputRenderer();
43         vtkImageData* img = bbGetInputIn();     
44         std::string filename = bbGetInputFilename();
45
46         _planedir->SetArrowSize(radio);
47         if(render!=NULL){
48                 _planedir->SetRenderer(render);
49         }
50
51         if(lstPointsx.size()>0&&lstPointsy.size()>0&&lstPointsz.size()>0){
52                 double* spc;
53                 if(img != NULL){
54                         spc = img->GetSpacing();
55                 }else{
56                         spc = new double[3];
57             spc[0]=1;
58                         spc[1]=1;
59                         spc[2]=1;
60                 }
61                 
62                 int i;
63                 for(i = 0; i < (int)lstPointsx.size();i++){                     
64                         _lstPointsx.push_back(lstPointsx[i]*spc[0]);
65                         _lstPointsy.push_back(lstPointsy[i]*spc[1]);
66                         _lstPointsz.push_back(lstPointsz[i]*spc[2]);
67                 }               
68                 
69                 _planedir->SetVectors(_lstPointsx, _lstPointsy, _lstPointsz);
70                 _planedir->UpdateDirections();
71                 if(filename.compare("")!=0){
72                         _planedir->WriteInformation(filename,spc);
73                 }
74         }
75 }
76
77 void PlaneDirection::CreateWidget(wxWindow* parent)
78 {
79         _planedir = PlaneDirectionViewer::getInstance(parent, radio, colour, opacity);
80    bbSetOutputWidget( _planedir );      
81 }
82
83 void PlaneDirection::bbUserSetDefaultValues()
84 {
85         radio = 5;
86         colour[0] = 1;
87         colour[1] = 0;
88         colour[2] = 0;
89         opacity = 100;
90 }
91
92 void PlaneDirection::bbUserInitializeProcessing()
93 {
94         std::vector<int> temp;
95         bbSetInputFilename("");
96         bbSetInputRenderer(0);
97         bbSetInputIn(0);
98         bbSetInputlstPointsX(temp);
99         bbSetInputlstPointsY(temp);
100         bbSetInputlstPointsZ(temp);
101 }
102
103 void PlaneDirection::bbUserFinalizeProcessing()
104 {
105
106 }
107 }
108 // EO namespace bbcreaMaracasVisu
109
110