X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=inline;f=lib%2FEditorGraphicBBS%2FbbsVtkGUIEditorGraphic%2FGPortController.cxx;h=b2f863be11d9c522f89e343c1e2a4b70b3e138f4;hb=e628a3dc4645cb347ebf060b145e626cc31a65f4;hp=33794ce4468e1b054701803e7ec7ee2ea7cd9e5a;hpb=098558ac7780900858114a8ae01fe93847d67043;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GPortController.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GPortController.cxx index 33794ce..b2f863b 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GPortController.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GPortController.cxx @@ -52,6 +52,66 @@ namespace bbtk } //========================================================================= + bool GPortController::OnLeftButtonDown() + { + + if ( _vtkInteractorStyleBaseView!=NULL ) + { + int X,Y; + wxVTKRenderWindowInteractor *wxVTKiren; + wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); + wxVTKiren->GetEventPosition(X,Y); + + int state = _view->getState(); + + int portType = ((GPortModel*)_model)->getPortType(); + + //Evaluate new state + if(!_model->hasChanged() && state==HIGHLIGHTED && portType==GOUTPUTPORT ) + { + _view->setState(CREATING_CONTOUR); + _model->setChanged(); + } + + _model->notifyObservers(_id); + + } + return true; + } + //========================================================================= + bool GPortController::OnLeftButtonUp() + { + if ( _vtkInteractorStyleBaseView!=NULL ) + { + int X,Y; + wxVTKRenderWindowInteractor *wxVTKiren; + wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); + wxVTKiren->GetEventPosition(X,Y); + + int state = _view->getState(); + + //Evaluate new state + if(!_model->hasChanged() && state==CREATING_CONTOUR) + { + if(_view->isPointInside(X,Y)) + { + _view->setState(CREATING_CONTOUR); + _model->setChanged(); + _model->notifyObservers(_id,INIT_CREATION_CONTOUR); + } + else + { + _view->setState(NOTHING_HAPPENS); + _model->setChanged(); + _model->notifyObservers(_id); + } + } + + + + } + return true; + } //=========================================================================