X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsVtkGUIEditorGraphic%2FGObjectController.cxx;h=19994d9505abc1818699ae6ac202687ed80861d8;hb=952979ff2fe394f9d781d92c23c919fdda854b8e;hp=8fc721c2b78c87082e5ac8b529349562a2e58a4e;hpb=cef73d418644dcb545c7731df11c54146fe82174;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.cxx index 8fc721c..19994d9 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.cxx @@ -1,4 +1,29 @@ -/*========================================================================= +/* +# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Santé) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# +# 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. +# +# 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. +# ------------------------------------------------------------------------ +*/ + +/*========================================================================= Program: bbtk Module: $RCSfile$ Language: C++ @@ -8,185 +33,189 @@ 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 -* 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. -* -* 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. -* ------------------------------------------------------------------------ */ + * 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 + * 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. + * + * 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 + */ #include "GObjectController.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif namespace bbtk { + //========================================================================= + GObjectController::GObjectController( ) { - //========================================================================= - GObjectController::GObjectController() - { - - } + } - //========================================================================= - GObjectController::~GObjectController() - { - } - //========================================================================= + //========================================================================= - void GObjectController::setModelAndView(GObjectModel* model, vtkGObjectView* view) - { - _model = model; - _view = view; - } - //========================================================================= + GObjectController::~GObjectController( ) { + } -bool GObjectController::OnMouseMove() -{ - cout<<"RaC GObjectController::OnMouseMove "<GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); - _wxVTKiren->GetEventPosition( X , Y ); - - int state = _model->getState(); - - //Evaluate new state - if(state == CLICKED) - { - _model->setState(DRAG); - //MoveObject(X,Y); - - } - if(state == DRAG) - { - //MoveObject(X,Y); - - } - if(state == NOTHING_HAPPENS) - { - if(_view->isPointInside(X,Y)) - { - _model->setState(HIGHLIGHTED); - } - } - if(state==HIGHLIGHTED) - { - if(!_view->isPointInside(X,Y)) - { - _model->setState(NOTHING_HAPPENS); - } - } - - _view->update(); - } - return true; -} -//========================================================================= -bool GObjectController::OnLeftButtonDown() -{ - - if ( _vtkInteractorStyleBaseView!=NULL ) - { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - - //MouseClickLeft(X,Y); - } - return true; -} -//========================================================================= -bool GObjectController::OnLeftButtonUp() -{ - if ( _vtkInteractorStyleBaseView!=NULL ) - { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - //MouseReleaseLeft(X,Y); - } - return true; -} -//========================================================================= -bool GObjectController::OnLeftDClick() -{ - if ( _vtkInteractorStyleBaseView!=NULL ) - { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - - //this->MouseDLeft(X,Y); - } - return true; -} -//========================================================================= -bool GObjectController::OnMiddleButtonDown() -{ - if ( _vtkInteractorStyleBaseView!=NULL ) - { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - //GetManualViewBaseContour()->InitMove( X, Y,GetZ()); - } - return true; -} -//========================================================================= -bool GObjectController::OnMiddleButtonUp() -{ - return true; -} -//========================================================================= -bool GObjectController::OnRightButtonDown() -{ - if( _vtkInteractorStyleBaseView!= NULL ) - { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X, Y); - - //SetCompleteCreation( true ); - //SetKeyBoardMoving( false ); - //this->GetManualContourModel()->SetCloseContour(true); - //MouseClickRight(X,Y); - } - return true; -} -//========================================================================= -bool GObjectController::OnRightButtonUp() -{ - return true; -} -//========================================================================= + //========================================================================= + + void GObjectController::setModelAndView( GObjectModel* model , vtkGObjectView* view ) { + _model = model ; + _view = view ; + } + + //========================================================================= + + bool GObjectController::OnMouseMove( ) { + int X , Y ; + crea::wxVTKRenderWindowInteractor *_wxVTKiren ; + _wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView( )->GetWxVTKRenderWindowInteractor( ) ; + _wxVTKiren->GetEventPosition( X , Y ) ; + int state = _view->getState( ) ; + + + //Evaluate new state + if ( state == NOTHING_HAPPENS ) { + if ( _view->isPointInside( X , Y ) ) { + _view->setState( HIGHLIGHTED ) ; + } + } + if ( state == HIGHLIGHTED ) { + if ( !_view->isPointInside( X , Y ) ) { + _view->setState( NOTHING_HAPPENS ) ; + } + } + + // JGRR & CM WH + + if ( state == POSSIBLE_CONNECTION ) { + if ( _view->isPointInside( X , Y ) ) { + _view->setState( SELECTED_POSSIBLE_CONNECTION ) ; + } + } + + if ( state == SELECTED_POSSIBLE_CONNECTION ) { + if ( !_view->isPointInside( X , Y ) ) { + _view->setState( POSSIBLE_CONNECTION ) ; + } + } + + // EO JGRR & CM WH + + _model->notifyObservers( getId( ) ) ; + + + return true ; + } + + //========================================================================= + + bool GObjectController::OnLeftButtonDown( )//virtual + { + int state = _view->getState( ) ; + + //Evaluate new state + if ( state == HIGHLIGHTED ) { + _isLeftClickDown = true ; + _view->setState( SELECTED ) ; + } + return true ; + } + + //========================================================================= + + bool GObjectController::OnLeftButtonUp( )//virtual + { + return true ; + } + + //========================================================================= + + bool GObjectController::OnLeftDClick( )//virtual + { + + return true ; + } + + //========================================================================= + + bool GObjectController::OnMiddleButtonDown( )//virtual + { + return true ; + } + + //========================================================================= + + void GObjectController::moveObject( int X , int Y ) { + _view->moveObject( X , Y ) ; + } + + //========================================================================= + + int GObjectController::getGObjectType( ) { + return _model->getGObjectType( ) ; + } + + //========================================================================= + + GObjectModel* GObjectController::getModel( ) { + return _model ; + } + + //========================================================================= + + vtkGObjectView* GObjectController::getView( ) { + return _view ; + } + + //========================================================================= + + int GObjectController::getId( ) { + return _model->getObjectId( ) ; + } + + //========================================================================= + + void GObjectController::setId( int id ) { + _model->setObjectId( id ) ; + } + + //========================================================================= + + std::string GObjectController::getStatusText( ) { + return _model->getStatusText( ) ; + } + + //========================================================================= + + void GObjectController::removeFromScene( ) { + _view->removeFromScene( ) ; + } + + //========================================================================= -} // EO namespace bbtk +} // EO namespace bbtk // EOF