--- /dev/null
+/*=========================================================================
+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 )
+ : Interpreter("")
+ {
+ _factory = factory;
+ _sceneManager = sceneManager;
+
+ _xGeneral = 10;
+ _yGeneral = 10;
+ _zGeneral = 900; // ?????
+
+ }
+
+ //=========================================================================
+
+ InterpreterBBS::~InterpreterBBS()
+ {
+ }
+
+ //=========================================================================
+
+
+ /// Creates a new black box in current complex box
+ void InterpreterBBS::commandNew( const std::string& boxType, const std::string& boxName)
+ {
+ std::string packagename = _factory->GetPackageNameOfaBlackBox(boxType);
+ int idBox = _sceneManager->createGBlackBox( 0,0, packagename ,boxType);
+ _sceneManager->configGBlackBox(idBox, _xGeneral,_yGeneral,_zGeneral,boxName, false , _xGeneral+100, _yGeneral-10 , _zGeneral );
+ _yGeneral = _yGeneral + 30;
+ printf("EED InterpreterBBS::Create packagename=%s boxtype=%s boxname=%s \n", packagename.c_str(), boxType.c_str(), boxName.c_str() );
+ }
+
+ /// Connects the output boxOutput to the input boxInput
+ void InterpreterBBS::commandConnect (const std::string &boxfrom,
+ const std::string &output,
+ const std::string &boxto,
+ const std::string &input)
+ {
+ printf("EED InterpreterBBS::Connect\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)
+ {
+ printf("EED InterpreterBBS::Set\n");
+ }
+
+
+
+ /// Loads a package
+ void InterpreterBBS::commandLoad(const std::string &name )
+ {
+ }
+
+ /// Unloads a package
+ void InterpreterBBS::commandInclude(const std::string &name )
+ {
+ }
+
+
+/*
+//--EED
+ /// Sets the inputs of the workspace :
+ void InterpreterBBS::SetInputs(const std::map<std::string,std::string>& m)
+ {
+ }
+
+ /// Puts the executer in "no exec" mode,
+ /// which creates but does not execute pipelines
+ void InterpreterBBS::SetNoExecMode(bool b)
+ {
+ }
+
+ bool InterpreterBBS::GetNoExecMode() const
+ {
+ return true;
+ }
+
+ /// Sets the mode of dialog of the executer for Root inputs
+ void InterpreterBBS::SetDialogMode(DialogModeType t)
+ {
+ }
+
+ /// Puts the executer in "no error" mode,
+ /// Errors do not stop execution (but warnings are produced)
+ void InterpreterBBS::SetNoErrorMode(bool b)
+ {
+ }
+
+ bool InterpreterBBS::GetNoErrorMode() const
+ {
+ return true;
+ }
+
+ /// Loads a package
+ void InterpreterBBS::LoadPackage(const std::string &name )
+ {
+ }
+
+ /// Unloads a package
+ void InterpreterBBS::UnLoadPackage(const std::string &name )
+ {
+ }
+
+ /// Starts a package block
+ void InterpreterBBS::BeginPackage (const std::string &name )
+ {
+ }
+
+ /// Ends a package block
+ void InterpreterBBS::EndPackage ()
+ {
+ }
+
+ /// Starts the definition of a new ComplexBlackBox in package pack
+ /// scriptfilename is the file from which the def is read
+ void InterpreterBBS::Define (const std::string &name,
+ const std::string& pack,
+ const std::string &scriptfilename)
+ {
+ }
+
+ /// Sets the file name to use for the current definition
+ /// (Used to set it after the Define command)
+ void InterpreterBBS::SetCurrentFileName (const std::string &name )
+ {
+ }
+
+ /// End the definition of a ComplexBlackBox
+ void InterpreterBBS::EndDefine ()
+ {
+ }
+
+ /// Sets the kind of the currently defined ComplexBlackBox
+ void InterpreterBBS::Kind(const std::string& kind)
+ {
+ }
+
+ /// Creates a new black box in current complex box
+ void InterpreterBBS::Create ( const std::string& boxType, const std::string& boxName)
+ {
+ std::string packagename = _factory->GetPackageNameOfaBlackBox(boxType);
+// int idBox = _sceneManager->createGBlackBox( 0,0, packagename ,boxType);
+// _sceneManager->configGBlackBox(idBox, _xGeneral,_yGeneral,_zGeneral,boxName, false , _xGeneral+100, _yGeneral-10 , _zGeneral );
+ _yGeneral = _yGeneral + 30;
+ printf("EED InterpreterBBS::Create packagename=%s boxtype=%s boxname=%s \n", packagename.c_str(), boxType.c_str(), boxName.c_str() );
+ }
+
+ /// Destroys a black box
+ void InterpreterBBS::Destroy (const std::string &boxName)
+ {
+ }
+
+ /// Clears the currently defined ComplexBlackBox
+ void InterpreterBBS::Clear()
+ {
+ }
+
+ /// Connects the output boxOutput to the input boxInput
+ void InterpreterBBS::Connect (const std::string &boxfrom,
+ const std::string &output,
+ const std::string &boxto,
+ const std::string &input)
+ {
+ printf("EED InterpreterBBS::Connect\n");
+ }
+
+ /// Executes the box
+ void InterpreterBBS::Execute (const std::string &box)
+ {
+ }
+
+ /// Defines an input of the current complex box
+ void InterpreterBBS::DefineInput (const std::string &name,
+ const std::string &box,
+ const std::string &input,
+ const std::string &help)
+ {
+ }
+
+ /// Defines an output of the current complex box
+ void InterpreterBBS::DefineOutput (const std::string &name,
+ const std::string &box,
+ const std::string &output,
+ const std::string &help)
+ {
+ }
+
+ /// sets the input of the box with the value
+ void InterpreterBBS::Set (const std::string &box,
+ const std::string &input,
+ const std::string &value)
+ {
+ printf("EED InterpreterBBS::Set\n");
+ }
+
+ /// gets the output of the box
+ std::string InterpreterBBS::Get (const std::string &box,
+ const std::string &output)
+ {
+ return "";
+ }
+
+ /// changes the workspace name
+ void InterpreterBBS::SetWorkspaceName( const std::string& n )
+ {
+ }
+
+ ///Adds the authorName to the Box author list
+ void InterpreterBBS::Author(const std::string &authorName)
+ {
+ }
+
+ ///Adds the categories to the Box categoris list
+ void InterpreterBBS::Category(const std::string &categories)
+ {
+ }
+
+ /// The description string which explains what does the ComplexBox
+ void InterpreterBBS::Description(const std::string &d)
+ {
+ }
+
+ /// prints the list of the boxes of the current box
+ void InterpreterBBS::PrintHelpListBoxes()
+ {
+ }
+
+ /// Generate a HTML file with a gif file with the actual pipeline (Graphviz-dot needed). Returns the file path
+ std::string InterpreterBBS::ShowGraph(const std::string &nameblackbox,
+ const std::string &detailStr,
+ const std::string &levelStr,
+ const std::string &output_file,
+ const std::string &custom_header,
+ const std::string &custom_title,
+ bool system_display)
+ {
+ return "";
+ }
+
+ /// Generate a HTML with a gif file with the actual pipeline (Graphviz-dot needed). Returns the file path
+ std::string InterpreterBBS::ShowGraphInstances(const std::string &nameblackbox, int detail, int level, bool system_display)
+ {
+ return "";
+ }
+
+ /// Prints help on a black box
+ void InterpreterBBS::PrintHelpBlackBox(const std::string &nameblackbox, const std::string &detailStr, const std::string &levelStr)
+ {
+ }
+
+ void InterpreterBBS::Reset()
+ {
+ }
+
+ /// Sets the level of message for kind
+ void InterpreterBBS::SetMessageLevel(const std::string &kind, int level)
+ {
+ }
+
+ /// Prints help on the messages
+ void InterpreterBBS::HelpMessages()
+ {
+ }
+
+ /// Prints the string ... MORE : TO EXPLAIN
+ void InterpreterBBS::Print(const std::string & message)
+ {
+ }
+
+//--EED
+*/
+
+} // EO namespace bbtk
+
+// EOF
+
--- /dev/null
+/*=========================================================================
+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.
+* ------------------------------------------------------------------------ */
+
+
+/****
+* Design and Developpement of BBTK GEditor
+* Ricardo A Corredor J <eduardo.davila@creatis.insa-lyon.fr>
+* RaC - 2010
+****/
+
+#ifndef __ExecuterBBSG_h__
+#define __ExecuterBBSG_h__
+
+//Includes same project
+#include "wxVtkSceneManager.h"
+
+//Includes bbtk
+#include "bbtkInterpreter.h"
+
+//Includes std
+#include <iostream>
+
+
+//#include "bbtkSystem.h"
+//#include "bbtkComplexBlackBox.h"
+#include "bbtkFactory.h"
+
+
+
+namespace bbtk
+{
+
+ class InterpreterBBS : public Interpreter
+ {
+ public:
+ static Pointer New( wxVtkSceneManager* sceneManager, Factory::Pointer factory );
+ InterpreterBBS( wxVtkSceneManager* sceneManager, Factory::Pointer factory );
+ ~InterpreterBBS();
+
+ //Public methods
+
+
+ void InterpreterBBS::commandNew( const std::string& boxType, const std::string& boxName);
+ void InterpreterBBS::commandConnect (const std::string &boxfrom,
+ const std::string &output,
+ const std::string &boxto,
+ const std::string &input);
+ void InterpreterBBS::commandSet (const std::string &box,
+ const std::string &input,
+ const std::string &value);
+ void InterpreterBBS::commandLoad(const std::string &name );
+ void InterpreterBBS::commandInclude(const std::string &name );
+
+
+
+ /*
+//--EED
+
+ /// Sets the inputs of the workspace :
+ virtual void SetInputs(const std::map<std::string,std::string>& m);
+
+ /// Puts the executer in "no exec" mode,
+ /// which creates but does not execute pipelines
+ virtual void SetNoExecMode(bool b);
+
+ virtual bool GetNoExecMode() const;
+
+ /// Sets the mode of dialog of the executer for Root inputs
+ virtual void SetDialogMode(DialogModeType t);
+
+ /// Puts the executer in "no error" mode,
+ /// Errors do not stop execution (but warnings are produced)
+ virtual void SetNoErrorMode(bool b) ;
+ virtual bool GetNoErrorMode() const ;
+ //=================================================================
+ /// Loads a package
+ virtual void LoadPackage(const std::string &name ) ;
+
+ /// Unloads a package
+ virtual void UnLoadPackage(const std::string &name );
+
+ /// Starts a package block
+ virtual void BeginPackage (const std::string &name );
+
+ /// Ends a package block
+ virtual void EndPackage ();
+
+ /// Starts the definition of a new ComplexBlackBox in package pack
+ /// scriptfilename is the file from which the def is read
+ virtual void Define (const std::string &name,
+ const std::string& pack,
+ const std::string &scriptfilename);
+
+ /// Sets the file name to use for the current definition
+ /// (Used to set it after the Define command)
+ virtual void SetCurrentFileName (const std::string &name );
+
+ /// End the definition of a ComplexBlackBox
+ virtual void EndDefine () ;
+
+ /// Sets the kind of the currently defined ComplexBlackBox
+ virtual void Kind(const std::string& kind);
+
+ /// Creates a new black box in current complex box
+ virtual void Create ( const std::string& boxType, const std::string&
+ boxName);
+
+ /// Destroys a black box
+ virtual void Destroy (const std::string &boxName);
+
+ /// Clears the currently defined ComplexBlackBox
+ virtual void Clear() ;
+
+ /// Connects the output boxOutput to the input boxInput
+ virtual void Connect (const std::string &boxfrom,
+ const std::string &output,
+ const std::string &boxto,
+ const std::string &input) ;
+
+ /// Executes the box
+ virtual void Execute (const std::string &box) ;
+
+ /// Defines an input of the current complex box
+ virtual void DefineInput (const std::string &name,
+ const std::string &box,
+ const std::string &input,
+ const std::string &help) ;
+
+ /// Defines an output of the current complex box
+ virtual void DefineOutput (const std::string &name,
+ const std::string &box,
+ const std::string &output,
+ const std::string &help);
+
+ /// sets the input of the box with the value
+ virtual void Set (const std::string &box,
+ const std::string &input,
+ const std::string &value);
+
+ /// gets the output of the box
+ virtual std::string Get (const std::string &box,
+ const std::string &output) ;
+
+ /// changes the workspace name
+ virtual void SetWorkspaceName( const std::string& n );
+
+ ///Adds the authorName to the Box author list
+ virtual void Author(const std::string &authorName);
+
+ ///Adds the categories to the Box categoris list
+ virtual void Category(const std::string &categories);
+
+ /// The description string which explains what does the ComplexBox
+ virtual void Description(const std::string &d);
+
+ /// prints the list of the boxes of the current box
+ virtual void PrintHelpListBoxes();
+
+ /// Generate a HTML file with a gif file with the actual pipeline (Graphviz-dot needed). Returns the file path
+ virtual std::string ShowGraph(const std::string &nameblackbox,
+ const std::string &detailStr,
+ const std::string &levelStr,
+ const std::string &output_file,
+ const std::string &custom_header,
+ const std::string &custom_title,
+ bool system_display = true);
+
+ /// Generate a HTML with a gif file with the actual pipeline (Graphviz-dot needed). Returns the file path
+ virtual std::string ShowGraphInstances(const std::string &nameblackbox, int detail, int level, bool system_display=true) ;
+
+ /// Prints help on a black box
+ virtual void PrintHelpBlackBox(const std::string &nameblackbox, const std::string &detailStr, const std::string &levelStr);
+
+ virtual void Reset();
+
+ /// Sets the level of message for kind
+ virtual void SetMessageLevel(const std::string &kind, int level);
+
+ /// Prints help on the messages
+ virtual void HelpMessages();
+
+ /// Prints the string ... MORE : TO EXPLAIN
+ virtual void Print(const std::string & message);
+
+//--EED
+*/
+
+ double _xGeneral;
+ double _yGeneral;
+ double _zGeneral;
+ wxVtkSceneManager *_sceneManager;
+ Factory::Pointer _factory;
+
+ private:
+
+ //Private Attributes
+
+
+ //Private Methods
+
+ protected:
+
+ //Protected Attributes
+
+ //Protected methods
+
+ };
+
+
+}
+// namespace bbtk
+#endif
+