]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx
no message
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsWxGUIEditorGraphic / wxVtkSceneManager.cxx
index 1d3d1078e87b58048394ce7243525539baca6127..26deb1419775f151635a9fbe12aef97804854c84 100644 (file)
@@ -371,9 +371,9 @@ namespace bbtk
                int type = GPORT;
 
                //Create the MVC Objects
-               GPortModel *model = (GPortModel*)GObjectsMVCFactory::getInstance()->createGObjectModel(type);
-               vtkGObjectView *view = GObjectsMVCFactory::getInstance()->createGObjectView(type);
-               GObjectController* controller = GObjectsMVCFactory::getInstance()->createGObjectController(type);
+               GPortModel *model                               = (GPortModel*)GObjectsMVCFactory::getInstance()->createGObjectModel(type);
+               vtkGObjectView *view                    = GObjectsMVCFactory::getInstance()->createGObjectView(type);
+               GObjectController* controller   = GObjectsMVCFactory::getInstance()->createGObjectController(type);
 
                model->registerInBox(blackBox,portType, posInBox);
                
@@ -406,12 +406,12 @@ namespace bbtk
                int type = GCONNECTOR;
 
                manualConnectorContourController* manContourControl     = new manualConnectorContourController();
-               manualConnectorContourView* manContourView      = new manualConnectorContourView();
-               manualContourModel* manContourModel     = new manualContourModel();
+               manualConnectorContourView* manContourView                      = new manualConnectorContourView();
+               manualContourModel* manContourModel                                     = new manualContourModel();
 
-               GConnectorController* connectorcontroller = new GConnectorController();                         
-               GConnectorModel* connectorModel = new GConnectorModel();
-               vtkGConnectorView* connectorView = new vtkGConnectorView();
+               GConnectorController* connectorcontroller                       = new GConnectorController();                           
+               GConnectorModel* connectorModel                                         = new GConnectorModel();
+               vtkGConnectorView* connectorView                                        = new vtkGConnectorView();
                connectorModel->setGObjectType(type);
 
                manContourModel->SetCloseContour(false);
@@ -1639,9 +1639,10 @@ namespace bbtk
                                }
                                
                                int idBox                               = createGBlackBox(xIn,yIn,package,type);
+                               configGBlackBox(idBox, xIn,yIn,zIn,name, boxExecutable,xEn,yEn,zEn);
+                               
                                GObjectController *cont = _controllers[idBox];
                                GBlackBoxModel *bbmod   = (GBlackBoxModel*)cont->getModel();
-                               configGBlackBox(idBox, xIn,yIn,zIn,name, boxExecutable,xEn,yEn,zEn);
                                
                                
 //ups2 eed                             
@@ -1704,11 +1705,14 @@ namespace bbtk
                                result = strtok( NULL, delims );
                                std::string nameEndPort(result);
 
-                               std::vector<int> lstB = getBlackBoxes();
-                               
-                               GPortModel *startP=NULL;
-                               GPortModel *endP=NULL;                          
-                               for(int j = 0;j<lstB.size();j++)
+                               configGConnetion(_isComplexBox, nameStartBox, nameStartPort, nameEndBox, nameEndPort);
+//ups 3 EED Borrame
+/*                             
+                               std::vector<int> lstB   = getBlackBoxes();                              
+                               GPortModel *startP              = NULL;
+                               GPortModel *endP                = NULL;
+                               int j;
+                               for(j = 0;j<lstB.size();j++)
                                {
                                        int idB = lstB[j];
                                        GBlackBoxModel *bbMod = (GBlackBoxModel*)_controllers[idB]->getModel();
@@ -1727,30 +1731,30 @@ namespace bbtk
                                        if(startP==NULL)
                                        {
                                                std::vector<int> lstInputs = getComplexInputPorts();
-                                               for(int j = 0;j<lstInputs.size();j++)
+                                               for(j = 0;j<lstInputs.size();j++)
                                                {
                                                        int idB = lstInputs[j];
                                                        GBoxModel *cbMod = (GBoxModel*)_controllers[idB]->getModel();
                                                        if(_controllers[idB]->getModel()->getBBTKName()==nameStartBox)
                                                        {                                               
                                                                startP = cbMod->getOutputPort(nameStartPort);
-                                                       }
-                                               }
-                                       }
+                                                       } // if 
+                                               } // for
+                                       } // if 
 
                                        if(endP==NULL)
                                        {
                                                std::vector<int> lstOutputs = getComplexOutputPorts();
-                                               for(int j = 0;j<lstOutputs.size();j++)
+                                               for(j = 0;j<lstOutputs.size();j++)
                                                {
                                                        int idB = lstOutputs[j];
                                                        GBoxModel *cbMod = (GBoxModel*)_controllers[idB]->getModel();
                                                        if(_controllers[idB]->getModel()->getBBTKName()==nameEndBox)
                                                        {                                               
                                                                endP = cbMod->getInputPort(nameEndPort);
-                                                       }
-                                               }
-                                       }
+                                                       } // if
+                                               } // for
+                                       } // if endP
                                } // complex box
                                                                
                                int idCon = createGConnector(startP);
@@ -1762,12 +1766,104 @@ namespace bbtk
                                tempp->endContourCreation();
                                conMod->setEndPort(endP);                                       
                                conView->updateStartEndPoints();
-
+ */
                        } // for numConns
+                       
         } // start
 
        }
 
+       //=========================================================================
+       
+       GBlackBoxModel* wxVtkSceneManager::findGBox(std::string boxname)
+       {       
+               GBlackBoxModel *boxModel        = NULL;
+               GBlackBoxModel *bbMod;
+               std::vector<int> lstB           = getBlackBoxes();                              
+               int idB;
+               int j;
+               for(j = 0;j<(int)lstB.size();j++)
+               {
+                       idB = lstB[j];
+                       bbMod = (GBlackBoxModel*)_controllers[idB]->getModel();
+                       if(_controllers[idB]->getModel()->getBBTKName()==boxname)
+                       {                                               
+                               boxModel = bbMod;
+                       }
+               } // for
+               return boxModel;
+       }
+       
+       //=========================================================================
+
+
+       void wxVtkSceneManager::configGConnetion(bool _isComplexBox, 
+                                                                                        std::string nameStartBox, std::string  nameStartPort, std::string  
+                                                                                        nameEndBox, std::string  nameEndPort)
+       {
+               GPortModel *startP              = findGBox(nameStartBox)->getOutputPort(nameStartPort);
+               GPortModel *endP                = findGBox(nameEndBox)->getInputPort(nameEndPort);
+
+/*ups5 EED Borrame
+               std::vector<int> lstB   = getBlackBoxes();                              
+               int j;
+               for(j = 0;j<(int)lstB.size();j++)
+               {
+                       int idB = lstB[j];
+                       GBlackBoxModel *bbMod = (GBlackBoxModel*)_controllers[idB]->getModel();
+                       if(_controllers[idB]->getModel()->getBBTKName()==nameStartBox)
+                       {                                               
+                               startP = bbMod->getOutputPort(nameStartPort);
+                       }
+                       else if(_controllers[idB]->getModel()->getBBTKName()==nameEndBox)
+                       {
+                               endP = bbMod->getInputPort(nameEndPort);
+                       }
+               } // for
+*/             
+               int j;
+               if(_isComplexBox)
+               {
+                       if(startP==NULL)
+                       {
+                               std::vector<int> lstInputs = getComplexInputPorts();
+                               for(j = 0;j<(int)lstInputs.size();j++)
+                               {
+                                       int idB = lstInputs[j];
+                                       GBoxModel *cbMod = (GBoxModel*)_controllers[idB]->getModel();
+                                       if(_controllers[idB]->getModel()->getBBTKName()==nameStartBox)
+                                       {                                               
+                                               startP = cbMod->getOutputPort(nameStartPort);
+                                       } // if 
+                               } // for
+                       } // if 
+                       
+                       if(endP==NULL)
+                       {
+                               std::vector<int> lstOutputs = getComplexOutputPorts();
+                               for(j = 0;j<(int)lstOutputs.size();j++)
+                               {
+                                       int idB = lstOutputs[j];
+                                       GBoxModel *cbMod = (GBoxModel*)_controllers[idB]->getModel();
+                                       if(_controllers[idB]->getModel()->getBBTKName()==nameEndBox)
+                                       {                                               
+                                               endP = cbMod->getInputPort(nameEndPort);
+                                       } // if
+                               } // for
+                       } // if endP
+               } // complex box
+               
+               int idCon = createGConnector(startP);
+               _worldState = NOTHING_HAPPENS;
+               GConnectorController *tempp = (GConnectorController*)_controllers[idCon]; 
+               
+               GConnectorModel *conMod = (GConnectorModel*)tempp->getModel();
+               vtkGConnectorView *conView = (vtkGConnectorView*)tempp->getView();
+               tempp->endContourCreation();
+               conMod->setEndPort(endP);                                       
+               conView->updateStartEndPoints();                
+       }
+
        //=========================================================================
 
        bool wxVtkSceneManager::boxExist(std::string boxname)