1 /*=========================================================================
7 =========================================================================*/
9 /* ---------------------------------------------------------------------
11 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
12 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
14 * This software is governed by the CeCILL-B license under French law and
15 * abiding by the rules of distribution of free software. You can use,
16 * modify and/ or redistribute the software under the terms of the CeCILL-B
17 * license as circulated by CEA, CNRS and INRIA at the following URL
18 * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
19 * or in the file LICENSE.txt.
21 * As a counterpart to the access to the source code and rights to copy,
22 * modify and redistribute granted by the license, users are provided only
23 * with a limited warranty and the software's author, the holder of the
24 * economic rights, and the successive licensors have only limited
27 * The fact that you are presently reading this means that you have had
28 * knowledge of the CeCILL-B license and that you accept its terms.
29 * ------------------------------------------------------------------------ */
33 * \brief Class bbtk::GObjectController
37 #include "GObjectController.h"
45 //=========================================================================
47 GObjectController::GObjectController( ) {
51 //=========================================================================
53 GObjectController::~GObjectController( ) {
56 //=========================================================================
58 void GObjectController::setModelAndView( GObjectModel* model , vtkGObjectView* view ) {
63 //=========================================================================
65 bool GObjectController::OnMouseMove( ) {
67 wxVTKRenderWindowInteractor *_wxVTKiren ;
68 _wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView( )->GetWxVTKRenderWindowInteractor( ) ;
69 _wxVTKiren->GetEventPosition( X , Y ) ;
70 int state = _view->getState( ) ;
74 if ( state == NOTHING_HAPPENS ) {
75 if ( _view->isPointInside( X , Y ) ) {
76 _view->setState( HIGHLIGHTED ) ;
79 if ( state == HIGHLIGHTED ) {
80 if ( !_view->isPointInside( X , Y ) ) {
81 _view->setState( NOTHING_HAPPENS ) ;
87 if ( state == POSSIBLE_CONNECTION ) {
88 if ( _view->isPointInside( X , Y ) ) {
89 _view->setState( SELECTED_POSSIBLE_CONNECTION ) ;
93 if ( state == SELECTED_POSSIBLE_CONNECTION ) {
94 if ( !_view->isPointInside( X , Y ) ) {
95 _view->setState( POSSIBLE_CONNECTION ) ;
101 _model->notifyObservers( getId( ) ) ;
107 //=========================================================================
109 bool GObjectController::OnLeftButtonDown( )//virtual
111 int state = _view->getState( ) ;
114 if ( state == HIGHLIGHTED ) {
115 _isLeftClickDown = true ;
116 _view->setState( SELECTED ) ;
121 //=========================================================================
123 bool GObjectController::OnLeftButtonUp( )//virtual
128 //=========================================================================
130 bool GObjectController::OnLeftDClick( )//virtual
136 //=========================================================================
138 bool GObjectController::OnMiddleButtonDown( )//virtual
143 //=========================================================================
145 void GObjectController::moveObject( int X , int Y ) {
146 _view->moveObject( X , Y ) ;
149 //=========================================================================
151 int GObjectController::getGObjectType( ) {
152 return _model->getGObjectType( ) ;
155 //=========================================================================
157 GObjectModel* GObjectController::getModel( ) {
161 //=========================================================================
163 vtkGObjectView* GObjectController::getView( ) {
167 //=========================================================================
169 int GObjectController::getId( ) {
170 return _model->getObjectId( ) ;
173 //=========================================================================
175 void GObjectController::setId( int id ) {
176 _model->setObjectId( id ) ;
179 //=========================================================================
181 std::string GObjectController::getStatusText( ) {
182 return _model->getStatusText( ) ;
185 //=========================================================================
187 void GObjectController::removeFromScene( ) {
188 _view->removeFromScene( ) ;
191 //=========================================================================
193 } // EO namespace bbtk