]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx
Bug #1355 The complete tab is not erased from memory. Only the objects are deleted...
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsWxGUIEditorGraphic / wxVtkSceneManager.cxx
index b27c724c5da02616bba5127a61f1fb27a31cb2fe..cba9e89e5d37646d8d8481675f96038135bb42a7 100644 (file)
 
 #include "wxVtkSceneManager.h"
 
-
 #include <vtkPolygon.h>
 #include <vtkUnstructuredGrid.h>
 
-
 namespace bbtk {
 
-cvs 
 //=========================================================================
 wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent,
                wxVtk3DBaseView *baseView, int idManager) {
@@ -62,13 +59,11 @@ wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent,
        if (_baseView != NULL) {
                //EED02JUIN2010
                printf(
-               "RaC-EED 21-06-2010 %p wxVtkSceneManager::wxVtkSceneManager If you comment this line, the drag and drop functionnality is not initialized.\n", this);
-
-               #ifdef __APPLE__
-
+                               "RaC-EED 21-06-2010 %p wxVtkSceneManager::wxVtkSceneManager If you comment this line, the drag and drop functionnality is not initialized.\n",
+                               this);
+#ifdef __APPLE__
                _baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget((wxDropTarget*)parent);
-
-               #endif
+#endif
 
                configureBaseView();
                _worldState = NOTHING_HAPPENS;
@@ -92,9 +87,10 @@ void wxVtkSceneManager::disconnectDrop() {
 
 wxVtkSceneManager::~wxVtkSceneManager() {
        //FCY memory leaks
-       printf("EED %p ~wxVtkSceneManager()\n", this);
+       printf("EED %p ~wxVtkSceneManager() START\n", this);
        disconnectDrop();
        delete _baseView;
+       printf("EED %p ~wxVtkSceneManager() END\n", this);
 }
 
 //=========================================================================
@@ -535,17 +531,13 @@ int wxVtkSceneManager::createGConnector(GPortModel* startPort) {
        manContourView->SetColorNormalContour(0, 0, 1);
        manContourView->SetColorEditContour(0.5, 0.5, 0.5);
        manContourView->SetColorSelectContour(1, 0.8, 0);
-       
-       
-      /**
+        
+        /**
          * JGRR AND CM
          * Width increased from 2 to 5, it simplifies line handling and spline control :P
          * @param WidthLine  
-         */
-        
-        manContourView->SetWidthLine( 5 ) ;
-
-
+         */ 
+        manContourView->SetWidthLine( 3 ) ;
        manContourView->SetShowText(false);
 
        manContourControl->SetModelView(manContourModel, manContourView);
@@ -663,9 +655,8 @@ void wxVtkSceneManager::update(int idController, int command) {
                                _selectedObjects.erase(_selectedObjects.begin() + index);
                        }
                } else if (command == INIT_CREATION_CONTOUR) {
-               
-               
-               // JGRR & CM WH
+
+                // JGRR & CM WH
                 typedef std::map<int , GObjectController*>::iterator TIterator ;
                 TIterator iter ;
                 TIterator iter_end ;
@@ -695,10 +686,9 @@ void wxVtkSceneManager::update(int idController, int command) {
                     }
                 }
 
-                // EO JGRR & CM WH
-               
-               
-                       _worldState = INIT_CREATION_CONTOUR;
+                // EO JGRR & CM WH  
+                     
+                        _worldState = INIT_CREATION_CONTOUR;
                        GObjectController* cont = _controllers[idController];
                        GPortModel* startOutputPort = (GPortModel*) cont->getModel();
 
@@ -735,32 +725,31 @@ void wxVtkSceneManager::update(int idController, int command) {
                        if (finPort->getGObjectType() == GPORT) {
                                GPortModel* modelPort = (GPortModel*) finPort->getModel();
                                modelContour->setEndPort(modelPort);
-                               
-                               
-                               // JGRR CM                     
-                    typedef std::map<int , GObjectController*>::iterator TIterator ;
-                    TIterator c_it = _controllers.begin( ) ;
-                    TIterator iter_end   = _controllers.end( ) ;                    
-                    // Go through all componets 
-                    for ( c_it ; c_it != iter_end ; c_it++ ) {
-                        GObjectController* obc = c_it->second ;
-                        int obc_type = obc->getModel( )->getGObjectType( ) ;
-                        int obc_state = obc->getView( )->getState( ) ;
-                        // if the component is a port and the type is the same of that selected
-                        if ( ( obc_type == GPORT ) && ( obc_state == POSSIBLE_CONNECTION )) {
-                            // Return element to neutral state if not selected
-                            obc->getView( )->setState( NOTHING_HAPPENS ) ;                            
-                        }
-                        if ( ( obc_type == GPORT ) &&  (obc_state == SELECTED_POSSIBLE_CONNECTION )) {
-                            // Change element to connected state
-                            obc->getView( )->setState( HIGHLIGHTED ) ;
-                           
-                        }                 
-                        
-                    }
-                    // EO JGRR CM
-                               
-                               _parent->saveTempDiagram();
+
+                                // JGRR CM                     
+                                typedef std::map<int, GObjectController*>::iterator TIterator;
+                                TIterator c_it = _controllers.begin();
+                                TIterator iter_end = _controllers.end();
+                                // Go through all componets 
+                                for (c_it; c_it != iter_end; c_it++) {
+                                    GObjectController* obc = c_it->second;
+                                    int obc_type = obc->getModel()->getGObjectType();
+                                    int obc_state = obc->getView()->getState();
+                                    // if the component is a port and the type is the same of that selected
+                                    if ((obc_type == GPORT) && (obc_state == POSSIBLE_CONNECTION)) {
+                                        // Return element to neutral state if not selected
+                                        obc->getView()->setState(NOTHING_HAPPENS);
+                                    }
+                                    if ((obc_type == GPORT) && (obc_state == SELECTED_POSSIBLE_CONNECTION)) {
+                                        // Change element to connected state
+                                        obc->getView()->setState(HIGHLIGHTED);
+
+                                    }
+
+                                }
+                                // EO JGRR CM                                
+                    
+                                _parent->saveTempDiagram();
                        }
 
                        manualConnectorContourController
@@ -832,7 +821,9 @@ bool wxVtkSceneManager::OnMouseMove() {
                        int state = desc->getView()->getState();
                        desc->getModel()->getCenter(px, py, pz);
 
-                       if (state == HIGHLIGHTED) {
+                        // JGRR & CM
+                       if ((state == HIGHLIGHTED) || (state == SELECTED_POSSIBLE_CONNECTION )) {
+                        // EO JGRR & CM    
                                okStatusMessage = true;
                                updateStatusBar(desc->getStatusText());
                                if (type == GBLACKBOX) {
@@ -887,16 +878,15 @@ bool wxVtkSceneManager::OnLeftButtonDown() {
                                if (portmod->getPortType() == GINPUTPORT
                                                && portView->getState() == HIGHLIGHTED) {
                                        isOverPort = true;
-                               } // if
-                               
-                               // JGRR & CM                    
-                    if ( portmod->getPortType( ) == GINPUTPORT &&  portView->getState( ) == SELECTED_POSSIBLE_CONNECTION   ) {
-                        isOverPort = true ;
-                        portView->setState( HIGHLIGHTED);
-                    }                    
-                    // EO JGRR & CM 
-                    
-                       } // if
+                                 } // if
+                                // JGRR & CM                    
+                                if ( portmod->getPortType( ) == GINPUTPORT &&  portView->getState( ) == SELECTED_POSSIBLE_CONNECTION   ) {
+                                    isOverPort = true ;
+                                    portView->setState( HIGHLIGHTED);
+                                }                    
+                                // EO JGRR & CM 
+
+                        } // if
                } // for
 
                if (isOverPort == false) {
@@ -1112,7 +1102,7 @@ bool wxVtkSceneManager::OnChar() {
                        _selectedObjects.clear();
                }
        }
-        
+        ctrlkey+=keyCode;
         /// Duplicate 
              if(ctrlkey==5){                
                 if(_selectedObjects.size()){
@@ -2029,6 +2019,7 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream) {
                                std::string value(result);
 
                                bbmod->setValueToInput(name, value);
+
                                getline(inputStream, line);//PORT o FIN_BOX
                                port = line.substr(0, 4);
                        } // while
@@ -2296,9 +2287,7 @@ int wxVtkSceneManager::addObjectController(GObjectController* objController) {
        int newId = _contLastId;//_controllers.size();
        objController->setId(newId);
        _controllers[newId] = objController;
-       std::cout
-                       << "DFCH: int wxVtkSceneManager::addObjectController(GObjectController* objController) ---- _contLastId = "
-                       << _contLastId << std::endl;
+       //std::cout << "DFCH: int wxVtkSceneManager::addObjectController(GObjectController* objController) ---- _contLastId = " << _contLastId << std::endl;
        _contLastId++;
        return newId;
 }
@@ -2638,7 +2627,6 @@ void wxVtkSceneManager::SetCbPackageName(std::string packagename) {
        }
 }
 
-
 //=========================================================================
 std::string wxVtkSceneManager::GetCbPackageName() {
        return _cbPackageName;
@@ -2678,14 +2666,14 @@ void wxVtkSceneManager::SetDescription(std::string description) {
        }
 }
 
-
 //=========================================================================
 std::string wxVtkSceneManager::GetDescription() {
        return _Description;
 }
 
 //=========================================================================
-// JGRR & CM
+
+
 void wxVtkSceneManager::printAll(int com , int sta ){
         
          int tmpState = sta ;
@@ -2741,4 +2729,5 @@ void wxVtkSceneManager::printAll(int com , int sta ){
 
 } // EO namespace bbtk
 
-// EOF 
+// EOF
+