X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=lib%2FEditorGraphicBBS%2FbbsVtkGUIEditorGraphic%2FGObjectController.cxx;h=43f57c75ea11d870fe8944a63e31c7e7ca9aeb29;hb=d80f7d5db196e72294b6fb40cfe2738b5218675b;hp=0dffa0ec1a4d4d929ca092bde21663c4445e8e50;hpb=878ac6ad472bc459f4e364c16890e5026c401944;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.cxx index 0dffa0e..43f57c7 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.cxx @@ -1,4 +1,4 @@ -/*========================================================================= +/*========================================================================= Program: bbtk Module: $RCSfile$ Language: C++ @@ -11,26 +11,26 @@ Version: $Revision$ * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux * -* 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 +* 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. +* 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. -* ------------------------------------------------------------------------ */ +* ------------------------------------------------------------------------ */ /** -* \file -* \brief Class bbtk::GObjectController +* \file +* \brief Class bbtk::GObjectController */ @@ -43,11 +43,11 @@ namespace bbtk //========================================================================= GObjectController::GObjectController() { - + } //========================================================================= - + GObjectController::~GObjectController() { } @@ -64,185 +64,76 @@ namespace bbtk bool GObjectController::OnMouseMove() { - - /********************** VIRTUAL *************************/ - - if ( _vtkInteractorStyleBaseView!=NULL) + int X,Y; + wxVTKRenderWindowInteractor *_wxVTKiren; + _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); + _wxVTKiren->GetEventPosition( X , Y ); + int state = _view->getState(); + + //Evaluate new state + if( state == NOTHING_HAPPENS) { - int X,Y; - wxVTKRenderWindowInteractor *_wxVTKiren; - _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); - _wxVTKiren->GetEventPosition( X , Y ); - - int state = _view->getState(); - - //Evaluate new state - if(!_model->hasChanged() && state == DRAG) - { - moveObject(X,Y); - _model->setChanged(); - } - - if(!_model->hasChanged() && state == NOTHING_HAPPENS) - { - if(_view->isPointInside(X,Y)) - { - _view->setState(HIGHLIGHTED); - _model->setChanged(); - } - } - if(!_model->hasChanged() && state==HIGHLIGHTED) + if(_view->isPointInside(X,Y)) { - if(!_view->isPointInside(X,Y)) - { - _view->setState(NOTHING_HAPPENS); - _model->setChanged(); - } + _view->setState(HIGHLIGHTED); } - - _model->notifyObservers(_id); - } - - /**/ - - return true; - } - - //========================================================================= - - bool GObjectController::OnLeftButtonDown() - { - /********************** VIRTUAL ************************* - - if ( _vtkInteractorStyleBaseView!=NULL ) + if( state==HIGHLIGHTED) { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - - int state = _model->getState(); - - //Evaluate new state - if(!_model->hasChanged() && state==HIGHLIGHTED) + if(!_view->isPointInside(X,Y)) { - _view->isStartDragging(true); - _model->setState(DRAG); - _model->setChanged(); - } - - if( !_model->hasChanged() && state == SELECTED) - { - if(_view->isPointInside(X,Y)) - { - _view->isStartDragging(true); - _model->setState(DRAG); - _model->setChanged(); - } + _view->setState(NOTHING_HAPPENS); } - - _model->notifyObservers(); } - */ + _model->notifyObservers(getId()); + return true; } //========================================================================= - - bool GObjectController::OnLeftButtonUp() - { - /********************** VIRTUAL ************************* + bool GObjectController::OnLeftButtonDown()//virtual + { + int state = _view->getState(); - if ( _vtkInteractorStyleBaseView!=NULL ) + //Evaluate new state + if(state == HIGHLIGHTED) { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - - int state = _model->getState(); - - //Evaluate new state - if(!_model->hasChanged() && state==CLICKED) - { - _model->setState(SELECTED); - _model->setChanged(); - } - - if( !_model->hasChanged() && state == DRAG) - { - _model->setState(SELECTED); - _model->setChanged(); - } - - _model->notifyObservers(); - + _isLeftClickDown=true; + _view->setState(SELECTED); } - - */ return true; } //========================================================================= - - bool GObjectController::OnLeftDClick() - { - /********************** VIRTUAL ************************* - - if ( _vtkInteractorStyleBaseView!=NULL ) - { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - _model->notifyObservers(); - } - - */ + bool GObjectController::OnLeftButtonUp()//virtual + { return true; } //========================================================================= - bool GObjectController::OnRightButtonDown() + bool GObjectController::OnLeftDClick()//virtual { - /********************** VIRTUAL *************************/ - 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 == SELECTED) - { - _view->setState(NOTHING_HAPPENS); - _model->setChanged(); - } + return true; + } - _model->notifyObservers(_id); - } - - /**/ + //========================================================================= + bool GObjectController::OnMiddleButtonDown()//virtual + { return true; - } //========================================================================= void GObjectController::moveObject(int X,int Y) { - _view->moveObject(X,Y); + _view->moveObject(X,Y); } //========================================================================= @@ -253,7 +144,7 @@ namespace bbtk } //========================================================================= - + GObjectModel* GObjectController::getModel() { return _model; @@ -270,14 +161,28 @@ namespace bbtk int GObjectController::getId() { - return _id; + return _model->getObjectId(); } //========================================================================= - + void GObjectController::setId(int id) { - _id = id; + _model->setObjectId(id); + } + + //========================================================================= + + std::string GObjectController::getStatusText() + { + return _model->getStatusText(); + } + + //========================================================================= + + void GObjectController::removeFromScene() + { + _view->removeFromScene(); } //=========================================================================