X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsWxGUIEditorGraphic%2FwxVtkSceneManager.cxx;h=d334129e967a9914b7ba8011441538ad2a30d7bf;hb=a3c95f8a4a71a532a46804e8c4f213aa2188d73b;hp=62ecce36189b7f9a345cafd7db5e67e2cd59bbbc;hpb=de7c0454ab8fc1b0b97dcd7112dfdb4a55ac0215;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx index 62ecce3..d334129 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx @@ -1,3 +1,28 @@ +/* +# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Santé) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# +# 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. +# ------------------------------------------------------------------------ +*/ + /*========================================================================= Program: bbtk Module: $RCSfile$ @@ -40,21 +65,33 @@ namespace bbtk { -//========================================================================= -wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent, - wxVtk3DBaseView *baseView, int idManager) { - _cbName = "ComplexBoxName"; - _cbPackageName = "PackageName"; - _Author = "Author ??"; - _Category = ""; - _Description = "Description ??"; +#define POORT_MAX_LINE_SIZE_INTERPRETER 1500 - _parent = parent; - _numBoxes = 0; - _idManager = idManager; - _baseView = baseView; - _startDragging = false; - _isComplexBox = false; +//========================================================================= + +// EED 15 oct 2012 wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent, wxVtk3DBaseView *baseView, int idManager,Factory::Pointer bbtkfactory) + +wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent, wxVtk3DBaseView *baseView, int idManager,Factory::Pointer bbtkfactory) +{ + _cbName = "ComplexBoxName"; + _cbPackageName = "PackageName"; + _Author = "Author ??"; + _Category = ""; + _Description = "Description ??"; + _MessageKind = " "; + _MessageLevel = " "; + + _bugTextActor_text = "void"; + _bugTextActor_status = 0; + + _parent = parent; + _numBoxes = 0; + _idManager = idManager; + _baseView = baseView; + _bbtkfactory = bbtkfactory; + + _startDragging = false; + _isComplexBox = false; if (_baseView != NULL) { //EED02JUIN2010 @@ -70,14 +107,15 @@ wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent, registerController(this); } - _idConnectionInCreation = -1; - _contLastId = 0; + _idConnectionInCreation = -1; + _contLastId = 0; } //========================================================================= -void wxVtkSceneManager::disconnectDrop() { +void wxVtkSceneManager::disconnectDrop() +{ printf("EED %p ~wxVtkSceneManager::disconnectDrop()\n", this); //EED02JUIN2010 _baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget(NULL); // _baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget( new tmpClasswxTextDropTarget() ); @@ -85,7 +123,8 @@ void wxVtkSceneManager::disconnectDrop() { //========================================================================= -wxVtkSceneManager::~wxVtkSceneManager() { +wxVtkSceneManager::~wxVtkSceneManager() +{ //FCY memory leaks printf("EED %p ~wxVtkSceneManager() START\n", this); disconnectDrop(); @@ -95,16 +134,14 @@ wxVtkSceneManager::~wxVtkSceneManager() { //========================================================================= -void wxVtkSceneManager::configureBaseView() { - printf("EED wxVtkSceneManager::configureBaseView 0\n"); - vtkInteractorStyleBaseView2D *interactorstylebaseview = - vtkInteractorStyleBaseView2D::New(); +void wxVtkSceneManager::configureBaseView() +{ + vtkInteractorStyleBaseView2D *interactorstylebaseview = vtkInteractorStyleBaseView2D::New(); _baseView->SetInteractorStyleBaseView(interactorstylebaseview); // Important to activate the 2D interaction system - wxVTKRenderWindowInteractor *iren = - _baseView->GetWxVTKRenderWindowInteractor(); + wxVTKRenderWindowInteractor *iren = _baseView->GetWxVTKRenderWindowInteractor(); interactorstylebaseview->SetInteractor(iren); iren->SetInteractorStyle(interactorstylebaseview); interactorstylebaseview->SetwxVtkBaseView(_baseView); @@ -119,12 +156,12 @@ void wxVtkSceneManager::configureBaseView() { // Actos Port_Text _textActor = vtkTextActor3D::New(); +// _textActor = vtkTextActor::New(); _textActor->SetPosition(-9999, -9999, GPOSITION_Z); _textActor->SetInput(""); _textActor->GetTextProperty()->SetFontSize(60); _textActor->GetTextProperty()->BoldOn(); - _textActor->GetTextProperty()->SetColor(PORTTEXT_NH_R, PORTTEXT_NH_G, - PORTTEXT_NH_B); + _textActor->GetTextProperty()->SetColor(PORTTEXT_NH_R, PORTTEXT_NH_G,PORTTEXT_NH_B); _baseView->GetRenderer()->AddActor(_textActor); @@ -187,7 +224,6 @@ void wxVtkSceneManager::configureBaseView() { _aPolygonMapper->Modified(); _baseView->GetRenderer()->AddActor(_fillObjectActor); - printf("EED wxVtkSceneManager::configureBaseView 1\n"); } //========================================================================= @@ -232,31 +268,39 @@ void wxVtkSceneManager::configGBlackBox(int idBox, double xIn, double yIn, //========================================================================= -int wxVtkSceneManager::createGBlackBox(int x, int y, std::string packageName, - std::string boxType) { - _worldState = NOTHING_HAPPENS; - //EED int windowWidth = _baseView->GetRenWin()->GetSize()[0]; - int windowHeight = _baseView->GetRenWin()->GetSize()[1]; - - int type = GBLACKBOX; - +int wxVtkSceneManager::createGBlackBox(int x, int y, std::string packageName,std::string boxType) +{ + _worldState = NOTHING_HAPPENS; + int windowHeight = _baseView->GetRenWin()->GetSize()[1]; + int type = GBLACKBOX; //Create the MVC Objects + GBlackBoxModel *model = (GBlackBoxModel*) GObjectsMVCFactory::getInstance()->createGObjectModel(type); + vtkGObjectView *view = GObjectsMVCFactory::getInstance()->createGObjectView(type); + GObjectController *controller = GObjectsMVCFactory::getInstance()->createGObjectController(type); - GBlackBoxModel - *model = - (GBlackBoxModel*) GObjectsMVCFactory::getInstance()->createGObjectModel( - type); - vtkGObjectView *view = - GObjectsMVCFactory::getInstance()->createGObjectView(type); - GObjectController* controller = - GObjectsMVCFactory::getInstance()->createGObjectController(type); +//EED 15 oct 2012 BlackBoxDescriptor::Pointer descriptor = GObjectsMVCFactory::getInstance()->getBlackBoxDescriptor(packageName, boxType); + + Package::Pointer k; + std::map< std::string, BlackBoxDescriptor::Pointer> mapDesc; + try{ + k = _bbtkfactory->GetPackage(packageName); + mapDesc = k->GetDescriptorMap(); + }catch(Exception e){ + printf("EED. ERROR!: Exception in wxVtkSceneManager::createGBlackBox for package %s, NOT EXIST\n", packageName.c_str()); + } - BlackBoxDescriptor::Pointer descriptor = - GObjectsMVCFactory::getInstance()->getBlackBoxDescriptor( - packageName, boxType); - if (descriptor == NULL){ + BlackBoxDescriptor::Pointer descriptor; + try{ + descriptor = mapDesc[boxType]; + }catch(Exception e){ + printf("EED. ERROR!: Exception in wxVtkSceneManager::createGBlackBox for box %s of package %s, NOT EXIST\n", boxType.c_str(),packageName.c_str()); + } + + if (descriptor == NULL) + { printf("SCP: ERROR in wxVtkSceneManager::createGBlackBox, box %s probably does not exist.\n", boxType.c_str()); - } + } + //Prepares the initial model //The coordinates obtained are the following. Top-Left:x=0,y=0 Bottom-Right:x=width,y=height @@ -337,14 +381,9 @@ int wxVtkSceneManager::createGComplexBoxInputPort(std::string inputName) { //Create the MVC Objects - GComplexBoxPortModel - *model = - (GComplexBoxPortModel*) GObjectsMVCFactory::getInstance()->createGObjectModel( - type); - vtkGObjectView *view = - GObjectsMVCFactory::getInstance()->createGObjectView(type); - GObjectController* controller = - GObjectsMVCFactory::getInstance()->createGObjectController(type); + GComplexBoxPortModel *model = (GComplexBoxPortModel*) GObjectsMVCFactory::getInstance()->createGObjectModel(type); + vtkGObjectView *view = GObjectsMVCFactory::getInstance()->createGObjectView(type); + GObjectController *controller = GObjectsMVCFactory::getInstance()->createGObjectController(type); //Prepares the initial model @@ -395,14 +434,9 @@ int wxVtkSceneManager::createGComplexBoxOutputPort(std::string outputName) { //Create the MVC Objects - GComplexBoxPortModel - *model = - (GComplexBoxPortModel*) GObjectsMVCFactory::getInstance()->createGObjectModel( - type); - vtkGObjectView *view = - GObjectsMVCFactory::getInstance()->createGObjectView(type); - GObjectController *controller = - GObjectsMVCFactory::getInstance()->createGObjectController(type); + GComplexBoxPortModel *model = (GComplexBoxPortModel*) GObjectsMVCFactory::getInstance()->createGObjectModel(type); + vtkGObjectView *view = GObjectsMVCFactory::getInstance()->createGObjectView(type); + GObjectController *controller = GObjectsMVCFactory::getInstance()->createGObjectController(type); //Prepares the initial model @@ -445,8 +479,8 @@ int wxVtkSceneManager::createGComplexBoxOutputPort(std::string outputName) { //========================================================================= -int wxVtkSceneManager::createGInputPort(int portType, int posinBox, - GBoxModel *blackBox, BlackBoxInputDescriptor *desc) { +int wxVtkSceneManager::createGInputPort(int portType, int posinBox, GBoxModel *blackBox, BlackBoxInputDescriptor *desc) +{ GPortController* portController = createGPort(portType, desc->GetName(), desc->GetTypeName(), desc->GetDescription(), posinBox, blackBox); blackBox->addInputPort((GPortModel*) portController->getModel()); @@ -455,8 +489,8 @@ int wxVtkSceneManager::createGInputPort(int portType, int posinBox, //========================================================================= -int wxVtkSceneManager::createGOutputPort(int portType, int posinBox, - GBoxModel *blackBox, BlackBoxOutputDescriptor *desc) { +int wxVtkSceneManager::createGOutputPort(int portType, int posinBox,GBoxModel *blackBox, BlackBoxOutputDescriptor *desc) + { GPortController* portController = createGPort(portType, desc->GetName(), desc->GetTypeName(),desc->GetDescription(), posinBox, blackBox); blackBox->addOutputPort((GPortModel*) portController->getModel()); @@ -465,9 +499,8 @@ int wxVtkSceneManager::createGOutputPort(int portType, int posinBox, //========================================================================= -GPortController* wxVtkSceneManager::createGPort(int portType, - std::string bbtkName, std::string bbtkType, std::string bbtkDescription, int posInBox, - GBoxModel *blackBox) { +GPortController* wxVtkSceneManager::createGPort(int portType,std::string bbtkName, std::string bbtkType, std::string bbtkDescription, int posInBox,GBoxModel *blackBox) +{ int type = GPORT; //Create the MVC Objects @@ -509,9 +542,6 @@ GPortController* wxVtkSceneManager::createGPort(int portType, int wxVtkSceneManager::createGConnector(GPortModel* startPort) { - - - int type = GCONNECTOR; manualConnectorContourController *manContourControl = new manualConnectorContourController(); @@ -587,41 +617,44 @@ int wxVtkSceneManager::createGConnector(GPortModel* startPort) //========================================================================= -void wxVtkSceneManager::registerController(InteractorStyleMaracas *param) { - vtkInteractorStyleBaseView - * baseViewControlManager = - (vtkInteractorStyleBaseView*) _baseView->GetInteractorStyleBaseView(); +void wxVtkSceneManager::registerController(InteractorStyleMaracas *param) +{ + vtkInteractorStyleBaseView * baseViewControlManager = (vtkInteractorStyleBaseView*) _baseView->GetInteractorStyleBaseView(); baseViewControlManager->AddInteractorStyleMaracas(param); } //========================================================================= -void wxVtkSceneManager::unregisterController(InteractorStyleMaracas *param) { - vtkInteractorStyleBaseView - * baseViewControlManager = - (vtkInteractorStyleBaseView*) _baseView->GetInteractorStyleBaseView(); +void wxVtkSceneManager::unregisterController(InteractorStyleMaracas *param) +{ + vtkInteractorStyleBaseView *baseViewControlManager = (vtkInteractorStyleBaseView*) _baseView->GetInteractorStyleBaseView(); baseViewControlManager->RemoveInteractorStyleMaracas(param); } //========================================================================= -vtkRenderer* wxVtkSceneManager::getRenderer() { +vtkRenderer* wxVtkSceneManager::getRenderer() +{ return _baseView->GetRenderer(); } //========================================================================= -vtkRenderWindow* wxVtkSceneManager::getRenderWindow() { +vtkRenderWindow* wxVtkSceneManager::getRenderWindow() +{ return _baseView->GetRenWin(); } //========================================================================= //========================================================================= -int wxVtkSceneManager::GetIndexInSelected(int idControler) { +int wxVtkSceneManager::GetIndexInSelected(int idControler) +{ int index = -1; - for (int i = 0; i < (int) _selectedObjects.size(); i++) { - if (_selectedObjects[i] == idControler) { + for (int i = 0; i < (int) _selectedObjects.size(); i++) + { + if (_selectedObjects[i] == idControler) + { index = i; break; } @@ -632,18 +665,21 @@ int wxVtkSceneManager::GetIndexInSelected(int idControler) { void wxVtkSceneManager::update(int idController, int command) { - if (command != NO_COMMAND) { - if (command == ADD_TO_SELECTED) { - if (GetIndexInSelected(idController) == -1) { + if (command != NO_COMMAND) + { + if (command == ADD_TO_SELECTED) + { + if (GetIndexInSelected(idController) == -1) + { _selectedObjects.push_back(idController); } } else if (command == REMOVE_FROM_SELECTED) { int index = GetIndexInSelected(idController); - if (index >= 0) { + if (index >= 0) + { _selectedObjects.erase(_selectedObjects.begin() + index); } } else if (command == INIT_CREATION_CONTOUR) { - // JGRR & CM WH typedef std::map::iterator TIterator ; TIterator iter ; @@ -683,12 +719,14 @@ void wxVtkSceneManager::update(int idController, int command) { // The last one is the controller of the connector std::map::iterator it2; - - for (it2 = _controllers.begin(); it2 != _controllers.end(); ++it2) { + for (it2 = _controllers.begin(); it2 != _controllers.end(); ++it2) + { GObjectController *cont = it2->second; - if (cont->getGObjectType() == GPORT) { + if (cont->getGObjectType() == GPORT) + { GPortModel* port = (GPortModel*) cont->getModel(); - if (port->getPortType() == GINPUTPORT) { + if (port->getPortType() == GINPUTPORT) + { cont->SetActive(true); } else { cont->getView()->setState(NOTHING_HAPPENS); @@ -710,7 +748,8 @@ void wxVtkSceneManager::update(int idController, int command) { GConnectorModel *modelContour = (GConnectorModel*) cont->getModel(); GObjectController *finPort = _controllers[idController]; - if (finPort->getGObjectType() == GPORT) { + if (finPort->getGObjectType() == GPORT) + { GPortModel* modelPort = (GPortModel*) finPort->getModel(); modelContour->setEndPort(modelPort); @@ -745,7 +784,8 @@ void wxVtkSceneManager::update(int idController, int command) { std::map::iterator it2; - for (it2 = _controllers.begin(); it2 != _controllers.end(); ++it2) { + for (it2 = _controllers.begin(); it2 != _controllers.end(); ++it2) + { GObjectController *cont = it2->second; if (cont->getView() != NULL) { cont->getView()->setState(NOTHING_HAPPENS); @@ -766,7 +806,7 @@ bool wxVtkSceneManager::OnMouseMove() { int X, Y; bool okStatusMessage = false; - bool okPortMessage = false; + bool okPortMessage = false; wxVTKRenderWindowInteractor *wxVTKiren; wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition(X, Y); @@ -808,7 +848,7 @@ bool wxVtkSceneManager::OnMouseMove() if ((state == HIGHLIGHTED) || (state == SELECTED_POSSIBLE_CONNECTION )) { // EO JGRR & CM - okStatusMessage = true; + okStatusMessage = true; updateStatusBar(desc->getStatusText()); if (type == GBLACKBOX) { @@ -818,32 +858,43 @@ bool wxVtkSceneManager::OnMouseMove() if (type == GPORT) { // PortText - okPortMessage = true; - py = py + 5; - _textActor->SetInput(desc->getStatusText().c_str()); - _textActor->SetScale(0.1); - _textActor->SetPosition(px - 25, py + 1, pz + 2); - - // FillPortText - px = px - 33; - //py = py; - _fillObjectActor->SetScale(1); - _fillObjectActor->GetProperty()->SetOpacity(0.50); - _fillObjectActor->SetPosition(px, py, 1); - _aPolygonMapper->Modified(); - } // if GPORT + if ( ( _bugTextActor_text==desc->getStatusText() ) || (_bugTextActor_status==0) ) + { + _bugTextActor_status = 1; + okPortMessage = true; + py = py + 5; + _textActor->SetScale(0.1); + std::string tmp = desc->getStatusText()+"\n"; + _textActor->SetInput( tmp.c_str() ); + _textActor->SetPosition(px - 25, py + 1, pz + 2); + _textActor->Modified(); + // FillPortText + px = px - 33; + //py = py; + _fillObjectActor->SetScale(1); + _fillObjectActor->GetProperty()->SetOpacity(0.50); + _fillObjectActor->SetPosition(px, py, 1); + _aPolygonMapper->Modified(); + } else { + _bugTextActor_status = 2; + } // _bugTextActor_tex + _bugTextActor_text = desc->getStatusText(); - } // for controllers it - } + } // if GPORT + } //if state + } // for controllers it } if (okStatusMessage == false) { updateStatusBar(""); } - if (okPortMessage == false) + if ((okPortMessage == false) || (_bugTextActor_status== 2 ) ) { + _bugTextActor_status = 0; _textActor->SetScale(0.0001); + _textActor->SetInput("a\n"); + _textActor->Modified(); _fillObjectActor->SetScale(0.0001); } return true; @@ -1303,6 +1354,7 @@ bool wxVtkSceneManager::MakeBoxExecutable() { //========================================================================= std::string wxVtkSceneManager::getDiagramBBS(bool wln) { + std::cout << "wxVtkSceneManager::getDiagramBBS" << std::endl; bool existsExec = false; std::vector packages; @@ -1360,7 +1412,7 @@ std::string wxVtkSceneManager::getDiagramBBS(bool wln) { script += "\n"; //ups2 - + script += LineNumber(wln, lnNmbr); script += "author \""; script += _Author; @@ -1385,9 +1437,10 @@ std::string wxVtkSceneManager::getDiagramBBS(bool wln) { script += LineNumber(wln, lnNmbr); script += "new "; int id = boxes[i]; - GObjectController *control = _controllers[id]; - GBlackBoxModel *model = (GBlackBoxModel*) control->getModel(); + GObjectController *control = _controllers[id]; + GBlackBoxModel *model = (GBlackBoxModel*) control->getModel(); + script += model->getBBTKPackage()+":"; script += model->getBBTKType(); script += " "; script += model->getBBTKName(); @@ -1476,6 +1529,15 @@ std::string wxVtkSceneManager::getDiagramBBS(bool wln) { script += "# Complex input ports\n"; script += complexInputs; + if((_MessageKind!=" ")&&(_MessageLevel!=" ")){ + script += LineNumber(wln, lnNmbr); + script += "message "; + script += _MessageKind; + script += " "; + script += _MessageLevel; + script += "\n"; + } + for (i = 0; i < (int) execBoxes.size(); i++) { script += LineNumber(wln, lnNmbr); script += "exec "; @@ -1495,6 +1557,7 @@ std::string wxVtkSceneManager::getDiagramBBS(bool wln) { //========================================================================= std::string wxVtkSceneManager::saveComplexBoxBBS() { + std::cout<<"wxVtkSceneManager::saveComplexBoxBBS"< packages; std::vector boxes; std::vector connections; @@ -1661,6 +1724,12 @@ std::string wxVtkSceneManager::saveComplexBoxBBS() { script += "\n"; + script += "message "; + script += _MessageKind; + script += " "; + script += _MessageLevel; + script += "\n"; + for (i = 0; i < (int) execBoxes.size(); i++) { script += "exec "; int id = execBoxes[i]; @@ -1800,10 +1869,17 @@ void wxVtkSceneManager::saveDiagram(std::string &content) { sprintf(buffer, "%d", bsize); content += buffer; content += "\n"; - + for (int i = 0; i < bsize; i++) { int id = boxes[i]; + std::cout<<"id "<getStatusText()<getModel()->getBBTKType()<getModel()->getBBTKType();//CFT + std::cout<<"nname: "<getModel()->getBBTKName()<getModel()->getGObjectType()<getModel()->save(content); } @@ -1840,11 +1916,13 @@ void wxVtkSceneManager::getCleanLine(stringstream &inputStream, std::string &lin //========================================================================= void wxVtkSceneManager::loadDiagram(stringstream &inputStream) { + int size; std::string version = ""; std::string line = ""; char delims[] = ":"; char *result = NULL; + char poort[POORT_MAX_LINE_SIZE_INTERPRETER]; getCleanLine(inputStream, line); @@ -1981,6 +2059,7 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream) } + //----------------------- //- COMPLEX OUTPUT PORTS //----------------------- @@ -2110,6 +2189,7 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream) result = strtok(NULL, delims);//name std::string name(result); + getCleanLine(inputStream, line);//ISEXEC:TRUE|FALSE char exec[15]; strcpy(exec, line.c_str()); @@ -2181,13 +2261,26 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream) //---------- getCleanLine(inputStream, line);//PORT o FIN_BOX std::string port = line.substr(0, 4); - while (port == "PORT") { + while (port == "PORT") + { getCleanLine(inputStream, line);//name:value - char poort[150]; + if (line.length()>=POORT_MAX_LINE_SIZE_INTERPRETER-1) + { + line=line.substr(0, POORT_MAX_LINE_SIZE_INTERPRETER-1); + } + strcpy(poort, line.c_str()); result = strtok(poort, delims);//name std::string name(result); + + //EED 16 oct 2012 Adding at the end character " if necesary in the value definition result = strtok(NULL, delims);//value + if (( result[0]=='"' ) && ( result[ strlen(result)-1 ]!='"' ) ) + { + std::string tmpString=" "; + tmpString[0]=34; // character " + strcat(result,tmpString.c_str()); + } std::string value(result); bbmod->setValueToInput(name, value); @@ -2228,6 +2321,7 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream) result = strtok(NULL, delims); std::string nameEndPort(result); + int idCon = configGConnetion(nameStartBox, nameStartPort,nameEndBox, nameEndPort); if (version != "1.0") { @@ -2269,18 +2363,16 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream) conView->getManualContourView()->AddPoint(); } }// version !=1.0 - } // for numConns - - } // start - + } // start } //========================================================================= //========================================================================= void wxVtkSceneManager::configGComBoxInputOutputPort(bool inputoutput, - std::string portName, double xIn, double yIn, double zIn) { + std::string portName, double xIn, double yIn, double zIn) +{ int idPort; if (inputoutput == true) { idPort = createGComplexBoxInputPort(portName); @@ -2296,7 +2388,8 @@ void wxVtkSceneManager::configGComBoxInputOutputPort(bool inputoutput, //========================================================================= -GBoxModel* wxVtkSceneManager::findGBox(std::string boxname) { +GBoxModel* wxVtkSceneManager::findGBox(std::string boxname) +{ int j; int idB; GBoxModel *bMod; @@ -2305,7 +2398,8 @@ GBoxModel* wxVtkSceneManager::findGBox(std::string boxname) { for (j = 0; j < (int) lstB.size(); j++) { idB = lstB[j]; bMod = (GBoxModel*) _controllers[idB]->getModel(); - if (_controllers[idB]->getModel()->getBBTKName() == boxname) { + if (_controllers[idB]->getModel()->getBBTKName() == boxname) + { boxModel = bMod; } } // for @@ -2317,7 +2411,8 @@ GBoxModel* wxVtkSceneManager::findGBox(std::string boxname) { for (j = 0; j < (int) lstInputs.size(); j++) { idB = lstInputs[j]; bMod = (GBoxModel*) _controllers[idB]->getModel(); - if (_controllers[idB]->getModel()->getBBTKName() == boxname) { + if (_controllers[idB]->getModel()->getBBTKName() == boxname) + { boxModel = bMod; } } // for @@ -2328,7 +2423,8 @@ GBoxModel* wxVtkSceneManager::findGBox(std::string boxname) { for (j = 0; j < (int) lstOutputs.size(); j++) { int idB = lstOutputs[j]; bMod = (GBoxModel*) _controllers[idB]->getModel(); - if (_controllers[idB]->getModel()->getBBTKName() == boxname) { + if (_controllers[idB]->getModel()->getBBTKName() == boxname) + { boxModel = bMod; } } // for @@ -2358,7 +2454,7 @@ int wxVtkSceneManager::configGConnetion(std::string nameStartBox, if (boxModel != NULL) { startP = boxModel->getOutputPort(nameStartPort); if(startP == NULL){ - printf("SCP: ERROR in wxVtkSceneManager::configGConnetion start port %s is null. Port name is probably wrong.\n", nameStartPort.c_str()); + printf("SCP: ERROR in wxVtkSceneManager::configGConnetion start port is null. Port name is probably wrong. Start>%s::%s End>%s::%s\n", nameStartBox.c_str(), nameStartPort.c_str(), nameEndBox.c_str(), nameEndPort.c_str() ); } } @@ -2370,7 +2466,7 @@ int wxVtkSceneManager::configGConnetion(std::string nameStartBox, if (boxModel != NULL) { endP = boxModel->getInputPort(nameEndPort); if(endP == NULL){ - printf("SCP: ERROR in wxVtkSceneManager::configGConnetion end port %s is null. Port name is probably wrong\n", nameStartPort.c_str(), nameEndPort.c_str()); + printf("SCP: ERROR in wxVtkSceneManager::configGConnetion end port is null. Port name is probably wrong. Start>%s::%s End>%s::%s \n", nameStartBox.c_str(), nameStartPort.c_str(), nameEndBox.c_str(), nameEndPort.c_str()); } } @@ -2641,8 +2737,7 @@ void wxVtkSceneManager::addObjects(std::map objectsMap) double xInic, yInic, zInic; GBlackBoxModel* copyBox = (GBlackBoxModel*) cont->getModel(); copyBox->getInicPoint(xInic, yInic, zInic); - int idBox = createGBlackBox(0, 0, copyBox->getBBTKPackage(), - copyBox->getBBTKType()); + int idBox = createGBlackBox(0, 0, copyBox->getBBTKPackage(),copyBox->getBBTKType()); int idcB = copyBox->getObjectId(); oldIdNewIdBoxes[idcB] = idBox; @@ -2650,9 +2745,10 @@ void wxVtkSceneManager::addObjects(std::map objectsMap) GBlackBoxModel* newbox = (GBlackBoxModel*) cont->getModel(); newbox->setInicPoint(xInic, yInic, zInic); int num = newbox->getNumInputPorts(); - for (int j = 0; j < num; j++) { + for (int j = 0; j < num; j++) + { newbox->setValueToInputPort(j, copyBox->getValueInputPort(j)); - } + }// for j newbox->notifyObservers(_idManager); } else if (type == GCONNECTOR) { int idCon = cont->getId(); @@ -2864,6 +2960,31 @@ std::string wxVtkSceneManager::GetDescription() { //========================================================================= +void wxVtkSceneManager::SetMessageKind(std::string kind) { + _MessageKind = kind; + +} + +//========================================================================= + +std::string wxVtkSceneManager::GetMessageKind(){ + return _MessageKind; +} + +//========================================================================= + +void wxVtkSceneManager::SetMessageLevel(std::string Level){ + _MessageLevel = Level; +} + +//========================================================================= + +std::string wxVtkSceneManager::GetMessageLevel(){ + return _MessageLevel; +} + +//========================================================================= + std::vector< std::string> wxVtkSceneManager::GetExternalInputsNames() {