/*========================================================================= 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::InterpreterBBS */ #include "InterpreterBBS.h" #include "bbtkExecuter.h" #include "bbtkMessageManager.h" #include "bbtkFactory.h" #include "bbtkUtilities.h" namespace bbtk { //========================================================================= InterpreterBBS::Pointer InterpreterBBS::New( wxVtkSceneManager* sceneManager, Factory::Pointer factory ) { return MakePointer( new InterpreterBBS( sceneManager, factory) ); } //========================================================================= //========================================================================= InterpreterBBS::InterpreterBBS( wxVtkSceneManager* sceneManager, Factory::Pointer factory ) { _factory = factory; _sceneManager = sceneManager; _xGeneral = -100; _yGeneral = 100; _zGeneral = 900; // ????? printf("EED InterpreterBBS::createGBlackBox 900-450\n"); _countBoxes = 0; _countInputs = 0; _countOutputs = 0; bbtk::InterpreterVirtual::Init(); } //========================================================================= //========================================================================= InterpreterBBS::~InterpreterBBS() { } //========================================================================= //========================================================================= /// Creates a new black box in current complex box void InterpreterBBS::commandNew( const std::string& boxType, const std::string& boxName) // virtual { _yGeneral = _yGeneral - 30; std::string packagename = _factory->GetPackageNameOfaBlackBox(boxType); int idBox = _sceneManager->createGBlackBox( 0,0, packagename ,boxType); _countBoxes++; double px = _xGeneral + (_countBoxes%2)*100; double py = _yGeneral; _sceneManager->configGBlackBox(idBox, px,py,_zGeneral,boxName, false , px+100, py-10 , _zGeneral ); } //========================================================================= //========================================================================= /// Connects the output boxOutput to the input boxInput void InterpreterBBS::commandConnection (const std::string &boxfrom, const std::string &output, const std::string &boxto, const std::string &input) // virtual { _sceneManager->configGConnetion( boxfrom,output,boxto,input); } //========================================================================= //========================================================================= void InterpreterBBS::commandInput(const std::string &name,const std::string &box,const std::string &input,const std::string &help) { double xIn = -100+50+_countInputs*50; double yIn = 100; double zIn = 900; _sceneManager->configGComBoxInputOutputPort(true,name,xIn,yIn,zIn); _sceneManager->configGConnetion( name,name,box,input); _countInputs++; printf("EED InterpreterBBS::commandInput what to do with help information ..???? \n "); } //========================================================================= //========================================================================= void InterpreterBBS::commandOutput(const std::string &name,const std::string &box,const std::string &output,const std::string &help) { _yGeneral = _yGeneral - 30; double xIn = -100+_countOutputs*30; double yIn = _yGeneral; double zIn = 900; _sceneManager->configGComBoxInputOutputPort(false,name,xIn,yIn,zIn); _sceneManager->configGConnetion( box,output,name,name); _countOutputs++; printf("EED InterpreterBBS::commandInput what to do with help information ..???? \n "); } //========================================================================= //========================================================================= /// sets the input of the box with the value void InterpreterBBS::commandSet(const std::string &box,const std::string &input,const std::string &value) // virtual { GBlackBoxModel *bbMod = (GBlackBoxModel *)_sceneManager->findGBox(box); bbMod->setValueToInput(input,"\""+value+"\""); } //========================================================================= //========================================================================= void InterpreterBBS::commandDefine(const std::string &name,const std::string &pack,const std::string &scriptfilename) // virtual { _sceneManager->setComplexBox(true); } //========================================================================= //========================================================================= void InterpreterBBS::commandEndDefine() // virtual { } //========================================================================= //========================================================================= void InterpreterBBS::commandExec(const std::string &word) // virtual { GBlackBoxModel *bbMod = (GBlackBoxModel *)_sceneManager->findGBox(word); bbMod->setExecutable(true); } //========================================================================= //========================================================================= void InterpreterBBS::commandAuthor(const std::string &author) // virtual { printf("EED InterpreterBBS::commandAuthor Warning !!!!! method not implemented.. \n"); } //========================================================================= //========================================================================= void InterpreterBBS::commandCategory(const std::string &categorytype) // virtual { printf("EED InterpreterBBS::commandCategory Warning !!!!! method not implemented.. \n"); } //========================================================================= //========================================================================= void InterpreterBBS::commandDescription(const std::string &description) // virtual { printf("EED InterpreterBBS::commandDescription Warning !!!!! method not implemented.. \n"); } //========================================================================= } // EO namespace bbtk // EOF