/* ---------------------------------------------------------------------
* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
-* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
+* Authors : Ricardo A Corredor, 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,
* knowledge of the CeCILL-B license and that you accept its terms.
* ------------------------------------------------------------------------ */
-
-
-/**
-* \file
-* \brief Class bbtk::GBlackBox : abstract black-box interface.
-*/
-
-/**
-* \class bbtk::GBlackBox
-* \brief
-*/
+/****
+* Design and Developpement of BBTK GEditor
+* Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
+* RaC - 2010
+****/
#ifndef __GBlackBoxModel_h__
#define __GBlackBoxModel_h__
//Includes same project
#include "GlobalConstants.h"
-#include "GObjectModel.h"
-#include "GPortModel.h"
+#include "GBoxModel.h"
//Includes creaMaracasVisu
namespace bbtk
{
- class GPortModel;
-
- class GBlackBoxModel : public GObjectModel
- {
+ class GBlackBoxModel : public GBoxModel
+ {
public:
GBlackBoxModel();
~GBlackBoxModel();
- //Public methods
- virtual void setInicPoint(double& x, double& y, double& z);
- void addInputPort(GPortModel *inputport);
- void addOutputPort(GPortModel *outputport);
- int getNumInputPorts();
- int getNumOutputPorts();
- virtual void move(double xx,double yy,double zz);
- GPortModel* getStartOutputPort();
+ //Public methods
+ // The black box has an specific package (important to search in the list with the BBTK Interpreter)
std::string getBBTKPackage();
void setBBTKPackage(std::string obpackage);
+ // Text in the status bar
virtual std::string getStatusText();
+
+ // Method to write the information of the black box to be saved in the parameter string
virtual void save(std::string &content);
+ // Is the black box executable or not
bool isExecutable();
void setExecutable(bool executable);
- std::vector<GPortModel*> getInputPorts();
- std::vector<GPortModel*> getOutputPorts();
-
+ // Set 'value' to the port in position 'pos'
void setValueToInputPort(int pos,std::string value);
+
+ // Set 'value' to the port with name 'name'
void setValueToInput(std::string name,std::string value);
- GPortModel* getInputPort(std::string name);
- GPortModel* getOutputPort(std::string name);
+ // Get the value of the port in position 'pos'
+ std::string getValueInputPort(int pos);
+
+ // Get the value of the port with name 'name'
+ std::string getValueInput(std::string name);
- void updatePorts();
+ // Get id's of the connected inputs
+ std::vector<int> getConnectedInputs();
+ // Get id's of the connected outputs
+ std::vector<int> getConnectedOutputs();
private:
//Private Attributes
- std::vector<GPortModel*> _inputs;
- std::vector<GPortModel*> _outputs;
bool _isExecutable;
//Private Methods