/* # --------------------------------------------------------------------- # # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image # pour la Santé) # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton # # This software is governed by the CeCILL-B license under French law and # abiding by the rules of distribution of free software. You can use, # modify and/ or redistribute the software under the terms of the CeCILL-B # license as circulated by CEA, CNRS and INRIA at the following URL # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html # or in the file LICENSE.txt. # # As a counterpart to the access to the source code and rights to copy, # modify and redistribute granted by the license, users are provided only # with a limited warranty and the software's author, the holder of the # economic rights, and the successive licensors have only limited # liability. # # The fact that you are presently reading this means that you have had # knowledge of the CeCILL-B license and that you accept its terms. # ------------------------------------------------------------------------ */ /*========================================================================= Program: bbtk Module: $RCSfile$ Language: C++ Date: $Date$ Version: $Revision$ =========================================================================*/ /* --------------------------------------------------------------------- * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux * * This software is governed by the CeCILL-B license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL-B * license as circulated by CEA, CNRS and INRIA at the following URL * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html * or in the file LICENSE.txt. * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL-B license and that you accept its terms. * ------------------------------------------------------------------------ */ /** * \file * \brief Class bbtk::GBox */ #include "GBoxModel.h" namespace bbtk { //========================================================================= GBoxModel::GBoxModel() { } //========================================================================= GBoxModel::~GBoxModel() { } //========================================================================= void GBoxModel::setInicPoint(double& x, double& y, double& z) { GObjectModel::setInicPoint(x,y,z); double xFin=x+BOX_WIDTH,yFin=y-BOX_HEIGHT; setFinalPoint(xFin,yFin,z); } //========================================================================= void GBoxModel::addInputPort(GPortModel *inputport) { _inputs.push_back(inputport); } //========================================================================= void GBoxModel::addOutputPort(GPortModel *outputport) { _outputs.push_back(outputport); } //========================================================================= int GBoxModel::getNumInputPorts() { return _inputs.size(); } //========================================================================= int GBoxModel::getNumOutputPorts() { return _outputs.size(); } //========================================================================= void GBoxModel::move(double xx,double yy,double zz) { setInicPoint(xx,yy,zz); //Refresh inputs position int i; for(i=0;i<(int)_inputs.size();i++) { _inputs[i]->updatePortPosition(); } //Refresh outputs position for(i=0;i<(int)_outputs.size();i++) { _outputs[i]->updatePortPosition(); } } //========================================================================= std::string GBoxModel::getStatusText() { std::string temp = ""; return temp; } //========================================================================= std::vector GBoxModel::getInputPorts() { return _inputs; } //========================================================================= std::vector GBoxModel::getOutputPorts() { return _outputs; } //========================================================================= void GBoxModel::save(std::string &content) { content+="\n"; } //========================================================================= GPortModel* GBoxModel::getInputPort(std::string name) { for(int i = 0; i<(int)_inputs.size();i++) { if(_inputs[i]->getBBTKName()==name) { return _inputs[i]; } } return NULL; } //========================================================================= GPortModel* GBoxModel::getOutputPort(std::string name) { for(int i = 0; i<(int)_outputs.size();i++) { if(_outputs[i]->getBBTKName()==name) { return _outputs[i]; } } return NULL; } //========================================================================= GPortModel* GBoxModel::getInputPort(int pos) { return _inputs[pos]; } //========================================================================= GPortModel* GBoxModel::getOutputPort(int pos) { return _outputs[pos]; } //========================================================================= void GBoxModel::updatePorts() { for(int i = 0; i<(int)_inputs.size();i++) { _inputs[i]->updatePortPosition(); _inputs[i]->notifyObservers(_objectId); } for(int i = 0; i<_outputs.size();i++) { _outputs[i]->updatePortPosition(); _outputs[i]->notifyObservers(_objectId); } } //========================================================================= //JPR void GBoxModel::addColons(std::string &text) { printf("EED JPR >>>>>>>>>>>>>>> %s\n",text.c_str() ); std::string character("&&2P&&"); size_t pos; pos = text.find(character); while(pos != std::string::npos) { //We replace the character "&&2P&&" with ":" for all the string text.replace(pos, character.length(),":"); pos = text.find(character, pos); } } //========================================================================= //JPR void GBoxModel::removeColons(std::string &text) { std::string character(":"); size_t pos; pos = text.find(character); while(pos != std::string::npos) { //We replace the character ":" with "&&2P&&" for all the string text.replace(pos, character.length(),"&&2P&&"); pos = text.find(character, pos); } } //========================================================================= } // EO namespace bbtk // EOF