1 /*=========================================================================
7 =========================================================================*/
9 /* ---------------------------------------------------------------------
11 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
12 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
14 * This software is governed by the CeCILL-B license under French law and
15 * abiding by the rules of distribution of free software. You can use,
16 * modify and/ or redistribute the software under the terms of the CeCILL-B
17 * license as circulated by CEA, CNRS and INRIA at the following URL
18 * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
19 * or in the file LICENSE.txt.
21 * As a counterpart to the access to the source code and rights to copy,
22 * modify and redistribute granted by the license, users are provided only
23 * with a limited warranty and the software's author, the holder of the
24 * economic rights, and the successive licensors have only limited
27 * The fact that you are presently reading this means that you have had
28 * knowledge of the CeCILL-B license and that you accept its terms.
29 * ------------------------------------------------------------------------ */
33 * \brief Class bbtk::GBlackBox
37 #include "GBlackBoxModel.h"
41 //=========================================================================
43 GBlackBoxModel::GBlackBoxModel()
45 _isExecutable = false;
48 //=========================================================================
50 GBlackBoxModel::~GBlackBoxModel()
54 //=========================================================================
56 void GBlackBoxModel::setInicPoint(double& x, double& y, double& z)
58 GObjectModel::setInicPoint(x,y,z);
60 double xFin=x+BOX_WIDTH,yFin=y-BOX_HEIGHT;
61 setFinalPoint(xFin,yFin,z);
64 //=========================================================================
66 void GBlackBoxModel::addInputPort(GPortModel *inputport)
68 _inputs.push_back(inputport);
71 //=========================================================================
73 void GBlackBoxModel::addOutputPort(GPortModel *outputport)
75 _outputs.push_back(outputport);
78 //=========================================================================
80 int GBlackBoxModel::getNumInputPorts()
82 return _inputs.size();
85 //=========================================================================
87 int GBlackBoxModel::getNumOutputPorts()
89 return _outputs.size();
92 //=========================================================================
94 void GBlackBoxModel::move(double xx,double yy,double zz)
96 setInicPoint(xx,yy,zz);
98 //Refresh inputs position
100 for(i=0;i<_inputs.size();i++)
102 _inputs[i]->updatePortPosition();
105 //Refresh outputs position
106 for(i=0;i<_outputs.size();i++)
108 _outputs[i]->updatePortPosition();
113 //=========================================================================
115 std::string GBlackBoxModel::getBBTKPackage()
120 //=========================================================================
122 void GBlackBoxModel::setBBTKPackage(std::string obpackage)
124 _bbtkPackage = obpackage;
127 //=========================================================================
129 bool GBlackBoxModel::isExecutable()
131 return _isExecutable;
134 //=========================================================================
136 void GBlackBoxModel::setExecutable(bool executable)
138 _isExecutable = executable;
141 //=========================================================================
143 std::string GBlackBoxModel::getStatusText()
145 std::string temp = "";
155 //=========================================================================
157 std::vector<GPortModel*> GBlackBoxModel::getInputPorts()
162 //=========================================================================
164 std::vector<GPortModel*> GBlackBoxModel::getOutputPorts()
169 //=========================================================================
171 void GBlackBoxModel::setValueToInputPort(int pos,std::string value)
173 _inputs[pos]->setValue(value);
176 //=========================================================================
178 void GBlackBoxModel::save(std::string &content)
182 content+=_bbtkPackage;
191 sprintf (buffer, "%f", _xInic);
194 sprintf (buffer, "%f", _yInic);
197 sprintf (buffer, "%f", _zInic);
201 sprintf (buffer, "%f", _xFin);
204 sprintf (buffer, "%f", _yFin);
207 sprintf (buffer, "%f", _zFin);
212 for(int i = 0; i<_inputs.size();i++)
214 if(_inputs[i]->isValueSet())
216 _inputs[i]->save(content);
222 //=========================================================================
225 } // EO namespace bbtk