]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsKernelEditorGraphic/wxVtkSceneManager.cxx
Setting values in a blackbox and almost setting values in the scene properties
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsKernelEditorGraphic / wxVtkSceneManager.cxx
index 8107b8ec6bd48d4e10e30b8e3325b7953b9c9864..7419d39cdb0bd93c334ab3c3297d0242e703ffc2 100644 (file)
@@ -440,22 +440,7 @@ namespace bbtk
                                        cont->SetActive(true);                                                          
                                }
                        }
-                       else if(command == EDIT_BLACKBOX)
-                       {
-                               GObjectController* cont = _controllers[idController];
-
-                               for (int i=0; i<_selectedObjects.size(); i++)
-                               {
-                                       int id = _selectedObjects[i];
-                                       GObjectController* cont = _controllers[id];
-                                       cont->getView()->setState(NOTHING_HAPPENS);
-                               }
-                               _selectedObjects.clear();
-
-                               GBlackBoxModel *bbmodel = (GBlackBoxModel*)cont->getModel();
-                               _parent->editBlackBox(bbmodel);
-
-                       }
+                       
                }
        }
 
@@ -590,6 +575,51 @@ namespace bbtk
 
        //=========================================================================
 
+       bool wxVtkSceneManager::OnLeftDClick()
+       {
+               int X,Y;
+               wxVTKRenderWindowInteractor *wxVTKiren;
+               wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor();
+               wxVTKiren->GetEventPosition(X,Y);
+
+               std::map<int, GObjectController*>::iterator it;
+
+               bool clickOnObject = false;
+
+               for(it = _controllers.begin(); it != _controllers.end() && clickOnObject==false; ++it)
+               {
+                       GObjectController *cont = it->second;
+                       int type = cont->getGObjectType();
+                       
+                       if(cont->getView()->isPointInside(X,Y))
+                       {
+                               if(type==GBLACKBOX)
+                               {
+                                       for (int i=0; i<_selectedObjects.size(); i++)
+                                       {
+                                               int id = _selectedObjects[i];
+                                               GObjectController* control = _controllers[id];
+                                               control->getView()->setState(NOTHING_HAPPENS);
+                                       }
+                                       _selectedObjects.clear();
+
+                                       GBlackBoxModel *bbmodel = (GBlackBoxModel*)cont->getModel();
+                                       _parent->editBlackBox(bbmodel);
+                               }
+                               clickOnObject = true;                   
+                       }
+               }
+
+               if(clickOnObject==false)
+               {
+                       _parent->editDiagramParameters(this);
+               }
+
+               return true;
+       }
+       
+       //=========================================================================
+
        bool wxVtkSceneManager::OnChar()
        {       
                char keyCode = _vtkInteractorStyleBaseView->GetInteractor()-> GetKeyCode();