]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsKernelEditorGraphic/GBlackBoxModel.h
Feature #1674 . RaC
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsKernelEditorGraphic / GBlackBoxModel.h
index 5536e00a5104b1e37b9a6e8a3bd3295c3f3dd893..f6ad73bd883d053a4a6a45edebdbbcc6fd8317ee 100644 (file)
@@ -9,7 +9,7 @@ Version:   $Revision$
 /* ---------------------------------------------------------------------
 
 * 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, 
@@ -28,24 +28,18 @@ Version:   $Revision$
 *  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 "GBoxModel.h"
 
 //Includes creaMaracasVisu
 
@@ -56,10 +50,8 @@ Version:   $Revision$
 namespace bbtk
 {
 
-       class GPortModel;
-
-       class GBlackBoxModel : public GObjectModel 
-       {
+       class GBlackBoxModel : public GBoxModel
+       {
 
        public: 
 
@@ -67,23 +59,50 @@ namespace bbtk
                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();
+               //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);
+
+               // 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);
+
+               // 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);
+
+               // Get id's of the connected inputs 
+               std::vector<int> getConnectedInputs();
+               // Get id's of the connected outputs
+               std::vector<int> getConnectedOutputs();
 
        private:
 
-               //Attributes
-               std::vector<GPortModel*> _inputs;
-               std::vector<GPortModel*> _outputs;
+               //Private Attributes
+               bool _isExecutable;
 
                //Private Methods
 
        protected:
+               //Protected Attributes
+               std::string _bbtkPackage;
+
                //Protected methods
                
        };