/*========================================================================= Program: bbtk Module: $RCSfile$ Language: C++ Date: $Date$ 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. * ------------------------------------------------------------------------ */ /** * \file * \brief Class bbtk::GObjectController */ #include "GObjectController.h" #ifdef _DEBUG #define new DEBUG_NEW #endif namespace bbtk { //========================================================================= GObjectController::GObjectController( ) { } //========================================================================= GObjectController::~GObjectController( ) { } //========================================================================= void GObjectController::setModelAndView( GObjectModel* model , vtkGObjectView* view ) { _model = model ; _view = view ; } //========================================================================= bool GObjectController::OnMouseMove( ) { int X , Y ; 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 // EOF