From: corredor <> Date: Fri, 12 Oct 2012 15:37:24 +0000 (+0000) Subject: Feature #1674 . RaC X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=bbtkGEditor.git;a=commitdiff_plain;h=de7c0454ab8fc1b0b97dcd7112dfdb4a55ac0215 Feature #1674 . RaC All basic functionality is working and has been tested. Important to define if it works the console command export. --- diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GlobalConstants.h b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GlobalConstants.h index add1719..b21d18e 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GlobalConstants.h +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GlobalConstants.h @@ -184,21 +184,22 @@ namespace bbtk { const int ID_BTNBOX = 1013; const int ID_HELP_BBEDITOR = 1014; const int ID_BTEXECUTABLEBOX = 1016; // EED + const int ID_EXPORT_CONSOLEAPP = 1017; // RaC - const int wxID_NOTEBOOK = 1017; // EED updated + const int wxID_NOTEBOOK = 1018; // EED updated - const int ID_bbEditor_Tool_Menu_CreatePackage = 1018; // EED - const int ID_bbEditor_Tool_Menu_CreateBlackBox = 1019; // EED - const int ID_bbEditor_Tool_Menu_PlugPackage = 1020; // EED - const int ID_bbEditor_Tool_Menu_EditConfig = 1021; // EED - const int ID_bbEditor_Tool_Menu_ShowHTMLDoc = 1022; // EED - const int ID_bbEditor_Tool_Menu_CreateIndex = 1023; // EED + const int ID_bbEditor_Tool_Menu_CreatePackage = 1019; // EED + const int ID_bbEditor_Tool_Menu_CreateBlackBox = 1020; // EED + const int ID_bbEditor_Tool_Menu_PlugPackage = 1021; // EED + const int ID_bbEditor_Tool_Menu_EditConfig = 1022; // EED + const int ID_bbEditor_Tool_Menu_ShowHTMLDoc = 1023; // EED + const int ID_bbEditor_Tool_Menu_CreateIndex = 1024; // EED - const int ID_UNDO = 1024; // FCY - const int ID_REDO = 1025; // FCY - const int ID_CHANGENAME = 1026; + const int ID_UNDO = 1025; // FCY + const int ID_REDO = 1026; // FCY + const int ID_CHANGENAME = 1027; - const int ID_EDITPROPERTIES = 1027; // RaC 2nd HackFest + const int ID_EDITPROPERTIES = 1028; // RaC 2nd HackFest } // namespace bbtk #endif diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx index 36014fa..af3e5ce 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx @@ -78,6 +78,11 @@ wxGUIEditorGraphicBBS::wxGUIEditorGraphicBBS(wxFrame *parent) : _actualPkgBrowserBoxName = ""; _actualPkgBrowserPkgName = ""; refreshGUIControls(); + + ///////////////////////////////// + /// IMPORTANT!! FOR SAVE&LOAD PROCESSES THE VERSION IS VERY IMPORTANT. + /// RaC 2012 2nd Hackfest + _currentBBGversion="1.4"; } //========================================================================= @@ -140,7 +145,8 @@ void wxGUIEditorGraphicBBS::initToolbar() { wxNullBitmap, wxITEM_NORMAL, _T("Complex box"), _T("Complex box")); toolbar->SetToggle(ID_BTNCOMPLEXBOX, true); - //toolbar->AddTool(ID_ADDCOMPLEXBOXINPUT, _T("Add input to Complex box"), + // RaC 2012 2nd HackFest - Now Complex inputs are any external input + // toolbar->AddTool(ID_ADDCOMPLEXBOXINPUT, _T("Add input to Complex box"), // bmp_complexinputport, wxNullBitmap, wxITEM_NORMAL, // _T("Add input to Complex box"), _T("Add input to Complex box")); toolbar->AddTool(ID_ADDCOMPLEXBOXINPUT, _T("Add external input (Complex box or console app)"), @@ -232,6 +238,8 @@ void wxGUIEditorGraphicBBS::initMenu() { fileMenu->Append(ID_SAVE_AS_BBS, _T("Save BBS"), _T("Save BBS")); fileMenu->Append(ID_SAVE_AS_COMPLEXBOX, _T("Save complex box"), _T("Save complex box")); + fileMenu->Append(ID_EXPORT_CONSOLEAPP, _T("Export console commands"), + _T("Export console execution commands")); fileMenu->Append(wxID_EXIT, _T("E&xit"), _T("Exit")); Connect(ID_NEW, wxEVT_COMMAND_MENU_SELECTED, @@ -248,6 +256,10 @@ void wxGUIEditorGraphicBBS::initMenu() { ID_SAVE_AS_COMPLEXBOX, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualComplexBox)); + Connect( + ID_EXPORT_CONSOLEAPP, + wxEVT_COMMAND_MENU_SELECTED, + wxCommandEventHandler(wxGUIEditorGraphicBBS::OnExportConsoleExecCommand)); Connect(wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxGUIEditorGraphicBBS::OnExit)); @@ -606,7 +618,9 @@ void wxGUIEditorGraphicBBS::SaveActualBBS(std::string filename) { std::string content = ""; // writing file header content += "# ----------------------------------\n"; - content += "# - BBTKGEditor v 1.3 BBS BlackBox Script\n"; + content += "# - BBTKGEditor v "; + content += _currentBBGversion; //VERSION + content += " BBS BlackBox Script\n"; content += "# - "; content += filename; content += "\n"; @@ -666,7 +680,9 @@ void wxGUIEditorGraphicBBS::SaveActualComplexBox(std::string filename) { // writing file header content += "# ----------------------------------\n"; - content += "# - BBTKGEditor v 1.3 BBS BlackBox Script (Complex Box)\n"; + content += "# - BBTKGEditor v "; + content += _currentBBGversion;//VERSION + content += " BBS BlackBox Script (Complex Box)\n"; content += "# - "; content += filename; content += "\n"; @@ -701,7 +717,9 @@ void wxGUIEditorGraphicBBS::SaveActualDiagram(std::string filename) { // writing file header content += "# ----------------------------------\n"; - content += "# - BBTKGEditor v 1.3 BBG BlackBox Diagram file\n"; + content += "# - BBTKGEditor v "; + content += _currentBBGversion; //VERSION + content += " BBG BlackBox Diagram file\n"; content += "# - "; content += filename; @@ -795,6 +813,100 @@ void wxGUIEditorGraphicBBS::OnSaveActualDiagram(wxCommandEvent& event) { void wxGUIEditorGraphicBBS::OnSaveAsActualDiagram(wxCommandEvent& event) { SaveCurrentDiagramAs(); } + +//========================================================================= +void wxGUIEditorGraphicBBS::OnExportConsoleExecCommand(wxCommandEvent& event) +{ + wxFileDialog * saveFileDialog = new wxFileDialog(this, + wxT("Export console command"), wxEmptyString, wxT("ConsoleApp.txt"), + wxT("*.txt;*.bbs;*.bbg;*.sh;*.bat"), wxSAVE | wxOVERWRITE_PROMPT); + + if (saveFileDialog->ShowModal() == wxID_OK) + { + wxString fileName = saveFileDialog->GetPath(); + std::string filename = (const char*) (fileName.mb_str()); + filename=CheckExtension (filename, ".txt"); + + ofstream file; + file.open(filename.c_str()); + + std::vector extInputs = _tabsMgr->getActualTabPanel()->getSceneManager()->GetExternalInputsNames(); + + //TODO PUT IN A METHOD OF A FILES AND TEXT MANAGER CLASS !!! + //std::string inputsInCommentsWin=""; + //std::string inputsInCommentsUnix=""; + //std::string inputsInOneLineWin=""; + std::string inputsInOneLineUnix=""; + for (unsigned int i = 0; i < extInputs.size(); ++i) + { + /* No gusto la idea al jefe pero por si acaso ... + * RaC 2012 2nd HackFest + * + inputsInCommentsWin+="REM "; + inputsInCommentsWin+=extInputs[i]; + inputsInCommentsWin+="=\"value\"\n"; + inputsInCommentsUnix+="# "; + inputsInCommentsUnix+=extInputs[i]; + inputsInCommentsUnix+="=\"value\"\n"; + + char buffer [50]; + sprintf (buffer, "%d", (i+1)); + inputsInOneLineWin+=extInputs[i]; + inputsInOneLineWin+="=\"%"; + inputsInOneLineWin+=buffer; + inputsInOneLineWin+="\" "; + */ + inputsInOneLineUnix+=extInputs[i]; + inputsInOneLineUnix+="=\"\" "; + + } + + + std::string content = ""; + // writing file header + content += "# ----------------------------------\n"; + content += "# - BBTKGEditor v "; + content += _currentBBGversion; //VERSION + content += " Console Commands to execute BBS application\n"; + content += "# - "; + content += filename; + content += "\n"; + content += "# ----------------------------------\n"; + content += "\n"; + content += "\n"; + content += "# Command to execute bbi\n"; + content += "bbi "; + content += inputsInOneLineUnix; + + /* No gusto la idea al jefe pero por si acaso ... + * RaC 2012 2nd HackFest + content += "# For Windows (copy the following lines to a .bat file)\n"; + content += "REM BBS application\n"; + content += "REM Inputs:\n"; + content += inputsInCommentsWin; + content += "REM To use previous inputs, put %$inputName% in the corresponding input of the execution bbi line\n"; + content += "bbi applicationBBS.bbs "; + content += inputsInOneLineWin; + content += "\n"; + content += "\n"; + content += "# For Linux or Mac (copy the following lines to a .sh file)\n"; + content += "#!/bin/bash\n"; + content += "# BBS application\n"; + content += "# Inputs:\n"; + content += inputsInCommentsUnix; + content += "# To use previous inputs, put $inputName in the corresponding input of the execution bbi line\n"; + content += "bbi applicationBBS.bbs "; + content += inputsInOneLineUnix; + content += "\n"; + */ + + file << content; + file.close(); + } + + +} + //========================================================================= void wxGUIEditorGraphicBBS::refreshGUIControls() { @@ -804,18 +916,20 @@ void wxGUIEditorGraphicBBS::refreshGUIControls() { wxToolBar* toolbar = GetToolBar(); if (_tabsMgr->isActualDiagramComplexBox()) { toolbar->ToggleTool(ID_BTNCOMPLEXBOX, true); - toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT, true); + //toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT, true); RaC2012 2nd HackFest toolbar->EnableTool(ID_ADDCOMPLEXBOXOUTPUT, true); GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_COMPLEXBOX, true); GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_BBS, false); + GetMenuBar()->GetMenu(0)->Enable(ID_EXPORT_CONSOLEAPP, false); } else { toolbar->ToggleTool(ID_BTNCOMPLEXBOX, false); - toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT, false); + //toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT, false); RaC2012 2nd HackFest toolbar->EnableTool(ID_ADDCOMPLEXBOXOUTPUT, false); GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_COMPLEXBOX, false); GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_BBS, true); + GetMenuBar()->GetMenu(0)->Enable(ID_EXPORT_CONSOLEAPP, true); } //RaC2012 2ndHackFest diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h index 35d2f56..54a604c 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h @@ -148,11 +148,13 @@ namespace bbtk void SaveTempActualDiagram(const std::string &);//FCY + // File menu and toolbar events void OnCreateNewTab(wxCommandEvent& event); void OnOpenDiagram(wxCommandEvent& event); void OnSaveActualDiagram(wxCommandEvent& event); //DFCH void OnSaveAsActualDiagram(wxCommandEvent& event); //DFCH + void OnExportConsoleExecCommand(wxCommandEvent& event); //RaC void OnOpenBBS(wxCommandEvent& event); void OnSaveActualBBS(wxCommandEvent& event); void OnSaveActualComplexBox(wxCommandEvent& event); @@ -219,6 +221,10 @@ namespace bbtk std::string _actualPkgBrowserBoxName; std::string _actualPkgBrowserPkgName; + // VERY IMPORTANT FOR SAVE&LOAD PROCESSES + // RaC 2012 2nd HackFest + std::string _currentBBGversion; + protected: diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx index 3a411d8..62ecce3 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx @@ -1416,32 +1416,66 @@ std::string wxVtkSceneManager::getDiagramBBS(bool wln) { script += LineNumber(wln, lnNmbr); script += "\n"; + + std::string complexInputs=""; + for (i = 0; i < (int) connections.size(); i++) { - script += LineNumber(wln, lnNmbr); - script += "connect "; + //script += LineNumber(wln, lnNmbr); + //script += "connect "; int id = connections[i]; GObjectController *control = _controllers[id]; GConnectorModel *model = (GConnectorModel*) control->getModel(); - //Start Connection info - GPortModel *start = model->getStartPort(); - script += start->getParentBox()->getBBTKName(); - script += "."; - script += start->getBBTKName(); - script += " "; + //Connection info + GPortModel *start = model->getStartPort(); + GBoxModel *startBox = start->getParentBox(); - //End Connection info GPortModel *end = model->getEndPort(); - script += end->getParentBox()->getBBTKName(); - script += "."; - script += end->getBBTKName(); + GBoxModel *endBox = end->getParentBox(); + + if (startBox->getGObjectType() == GCOMPLEXINPUTPORT) + { + complexInputs += "input "; + complexInputs += startBox->getBBTKName(); + + complexInputs += " "; + complexInputs += endBox->getBBTKName(); + complexInputs += "."; + complexInputs += end->getBBTKName(); + + complexInputs += " "; + complexInputs += "\" \""; + + complexInputs += "\n"; + } + else + { + script += "connect "; + script += startBox->getBBTKName(); + script += "."; + script += start->getBBTKName(); + + script += " "; + + //End Connection info + script += endBox->getBBTKName(); + script += "."; + script += end->getBBTKName(); + + script += "\n"; + } script += "\n"; } script += LineNumber(wln, lnNmbr); script += "\n"; + + script += "\n"; + script += "# Complex input ports\n"; + script += complexInputs; + for (i = 0; i < (int) execBoxes.size(); i++) { script += LineNumber(wln, lnNmbr); script += "exec "; @@ -1617,6 +1651,14 @@ std::string wxVtkSceneManager::saveComplexBoxBBS() { } } + script += "\n"; + script += "# Complex input ports\n"; + script += complexInputs; + + script += "\n"; + script += "# Complex output ports\n"; + script += complexOutputs; + script += "\n"; for (i = 0; i < (int) execBoxes.size(); i++) { @@ -1629,14 +1671,6 @@ std::string wxVtkSceneManager::saveComplexBoxBBS() { script += "\n"; } - script += "\n"; - script += "# Complex input ports\n"; - script += complexInputs; - - script += "\n"; - script += "# Complex output ports\n"; - script += complexOutputs; - script += "\n"; script += "endefine"; script += "\n"; @@ -1709,6 +1743,8 @@ void wxVtkSceneManager::saveDiagram(std::string &content) { content += GetCbPackageName(); content += "\n"; + /* CHANGE TO THE VERSION 1.4 RaC2012 2nd HackFest + * External inputs are possible for applications and complex boxes //Print info complex input ports std::vector inputs = getComplexInputPorts(); int insize = inputs.size(); @@ -1722,6 +1758,7 @@ void wxVtkSceneManager::saveDiagram(std::string &content) { GObjectController *cont = _controllers[id]; cont->getModel()->save(content); } + */ //Print info complex output ports std::vector outputs = getComplexOutputPorts(); @@ -1741,6 +1778,21 @@ void wxVtkSceneManager::saveDiagram(std::string &content) { content += "FALSE\n"; } + // CHANGE TO THE VERSION 1.4 RaC2012 2nd HackFest + // External inputs are possible for applications and complex boxes + std::vector inputs = getComplexInputPorts(); + int insize = inputs.size(); + content += "COMPLEXINPUTS:"; + sprintf(buffer, "%d", insize); + content += buffer; + content += "\n"; + + for (int i = 0; i < insize; i++) { + int id = inputs[i]; + GObjectController *cont = _controllers[id]; + cont->getModel()->save(content); + } + //Print boxes std::vector boxes = getBlackBoxes(); int bsize = boxes.size(); @@ -1814,6 +1866,9 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream) if (line == "# - BBTKGEditor v 1.3 BBG BlackBox Diagram file") { version = line.substr(18, 3); } + if (line == "# - BBTKGEditor v 1.4 BBG BlackBox Diagram file") { + version = line.substr(18, 3); + } } else if (line == "APP_START") { start = true; break; @@ -1873,24 +1928,78 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream) SetCbPackageName(result); } + if(version < "1.4") + { + //----------------------- + //- COMPLEX INPUT PORTS + //----------------------- + getCleanLine(inputStream, line);//COMPLEXINPUTS:num + char inputs[30]; + strcpy(inputs, line.c_str()); + result = strtok(inputs, delims); + result = strtok(NULL, delims); + + int numInputs; + std::istringstream inps(result); + inps >> numInputs; + + for (int i = 0; i < numInputs; i++) { + //---------- + getCleanLine(inputStream, line);//COMPLEX_PORT + getCleanLine(inputStream, line);//name + std::string inputPortName(line); + + //---------- + getCleanLine(inputStream, line);//xInic:yInic:zInic + char coord[80]; + strcpy(coord, line.c_str()); + result = strtok(coord, delims);//xInic + std::string xInic(result); + result = strtok(NULL, delims);//yInic + std::string yInic(result); + result = strtok(NULL, delims);//zInic + std::string zInic(result); + + double xIn, yIn, zIn; + std::istringstream xSt(xInic); + xSt >> xIn; + std::istringstream ySt(yInic); + ySt >> yIn; + std::istringstream zSt(zInic); + zSt >> zIn; + + if (version<="1.2") + { + if (zIn==900) zIn=GPOSITION_Z; + } + + getCleanLine(inputStream, line);//FIN_COMPLEX_PORT + + configGComBoxInputOutputPort(true, inputPortName, xIn, yIn, zIn); + + } // for input complex box + } + + //----------------------- - //- COMPLEX INPUT PORTS + //- COMPLEX OUTPUT PORTS //----------------------- - getCleanLine(inputStream, line);//COMPLEXINPUTS:num - char inputs[30]; - strcpy(inputs, line.c_str()); - result = strtok(inputs, delims); + + getCleanLine(inputStream, line);//COMPLEXOUTPUTS:num + char outputs[30]; + strcpy(outputs, line.c_str()); + result = strtok(outputs, delims); result = strtok(NULL, delims); - int numInputs; - std::istringstream inps(result); - inps >> numInputs; + int numOutputs; + std::istringstream outps(result); + outps >> numOutputs; - for (int i = 0; i < numInputs; i++) { + for (int i = 0; i < numOutputs; i++) { //---------- getCleanLine(inputStream, line);//COMPLEX_PORT getCleanLine(inputStream, line);//name - std::string inputPortName(line); + std::string outputPortName(line); //---------- getCleanLine(inputStream, line);//xInic:yInic:zInic @@ -1918,30 +2027,33 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream) getCleanLine(inputStream, line);//FIN_COMPLEX_PORT - configGComBoxInputOutputPort(true, inputPortName, xIn, yIn, zIn); + configGComBoxInputOutputPort(false, outputPortName, xIn, yIn, zIn); - } // for input complex box + } // for output complex box + } // complex box + // RaC2012 2nd Hackfest + if(version >= "1.4") + { //----------------------- - //- COMPLEX OUTPUT PORTS + //- EXTERNAL INPUT PORTS //----------------------- - - getCleanLine(inputStream, line);//COMPLEXOUTPUTS:num - char outputs[30]; - strcpy(outputs, line.c_str()); - result = strtok(outputs, delims); + getCleanLine(inputStream, line);//COMPLEXINPUTS:num + char inputs[30]; + strcpy(inputs, line.c_str()); + result = strtok(inputs, delims); result = strtok(NULL, delims); - int numOutputs; - std::istringstream outps(result); - outps >> numOutputs; + int numInputs; + std::istringstream inps(result); + inps >> numInputs; - for (int i = 0; i < numOutputs; i++) { + for (int i = 0; i < numInputs; i++) { //---------- getCleanLine(inputStream, line);//COMPLEX_PORT getCleanLine(inputStream, line);//name - std::string outputPortName(line); + std::string inputPortName(line); //---------- getCleanLine(inputStream, line);//xInic:yInic:zInic @@ -1968,12 +2080,11 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream) } getCleanLine(inputStream, line);//FIN_COMPLEX_PORT + configGComBoxInputOutputPort(true, inputPortName, xIn, yIn, zIn); - configGComBoxInputOutputPort(false, outputPortName, xIn, yIn, zIn); - - } // for output complex box + } // for external input + } - } // complex box //---------- getCleanLine(inputStream, line);//BOXES:num @@ -2199,7 +2310,9 @@ GBoxModel* wxVtkSceneManager::findGBox(std::string boxname) { } } // for - if ((_isComplexBox) && (boxModel == NULL)) { + + + if (boxModel == NULL) { std::vector lstInputs = getComplexInputPorts(); for (j = 0; j < (int) lstInputs.size(); j++) { idB = lstInputs[j]; @@ -2209,6 +2322,8 @@ GBoxModel* wxVtkSceneManager::findGBox(std::string boxname) { } } // for + if(_isComplexBox) + { std::vector lstOutputs = getComplexOutputPorts(); for (j = 0; j < (int) lstOutputs.size(); j++) { int idB = lstOutputs[j]; @@ -2217,8 +2332,9 @@ GBoxModel* wxVtkSceneManager::findGBox(std::string boxname) { boxModel = bMod; } } // for + } - } // complex box + } // inputs/outputs return boxModel; } @@ -2235,6 +2351,10 @@ int wxVtkSceneManager::configGConnetion(std::string nameStartBox, GPortModel *endP = NULL; boxModel = findGBox(nameStartBox); + if(boxModel == NULL) + { + printf("RaC: ERROR in wxVtkSceneManager::configGConnetion A box to connect start port %s is null. Box name is probably wrong.\n", nameStartPort.c_str()); + } if (boxModel != NULL) { startP = boxModel->getOutputPort(nameStartPort); if(startP == NULL){ @@ -2243,6 +2363,10 @@ int wxVtkSceneManager::configGConnetion(std::string nameStartBox, } boxModel = findGBox(nameEndBox); + if(boxModel == NULL) + { + printf("RaC: ERROR in wxVtkSceneManager::configGConnetion A box to connect start port %s is null. Box name is probably wrong.\n", nameStartPort.c_str()); + } if (boxModel != NULL) { endP = boxModel->getInputPort(nameEndPort); if(endP == NULL){ @@ -2252,6 +2376,7 @@ int wxVtkSceneManager::configGConnetion(std::string nameStartBox, //ups2 int idCon = createGConnector(startP); + _worldState = NOTHING_HAPPENS; GConnectorController *tempp = (GConnectorController*) _controllers[idCon]; @@ -2727,7 +2852,6 @@ std::string wxVtkSceneManager::GetCategory() { //========================================================================= void wxVtkSceneManager::SetDescription(std::string description) { _Description = description; - std::cout<<"Description:"<<_Description< wxVtkSceneManager::GetExternalInputsNames() +{ + + std::vector< std::string> extInputs; + std::map::iterator it; + for (it = _controllers.begin(); it != _controllers.end(); ++it) + { + GObjectController *cont = it->second; + if (cont->getGObjectType() == GCOMPLEXINPUTPORT) + { + extInputs.push_back(cont->getModel()->getBBTKName()); + } + } + return extInputs; +} + +//========================================================================= + + void wxVtkSceneManager::printAll(int com , int sta ){ diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.h b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.h index 9203963..f92b906 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.h +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.h @@ -209,6 +209,10 @@ namespace bbtk std::string GetCategory(); std::string GetDescription(); + // RaC2012 2nd HackFest + // External Inputs was the complex inputs in previous versions + // Get names of all external inputs + std::vector< std::string> GetExternalInputsNames(); void getCleanLine(std::stringstream &inputStream, std::string &line); // JGRR & CM