X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FmanualContour%2FmanualContourBaseControler.cpp;h=5b561fb3b15a4dd4b29f354821d28f41191a0c0d;hb=ca35b13e046343c8b50cbd6b833828b06c9d1608;hp=5b610808e24e1b2dec9c3ffdc92bb726488b699a;hpb=7dc7a00ebd0e9a30d2c992c0e439c2f7f7408e0f;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourBaseControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourBaseControler.cpp index 5b61080..5b561fb 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourBaseControler.cpp +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualContour/manualContourBaseControler.cpp @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# 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. +# ------------------------------------------------------------------------ */ + #include "manualContourBaseControler.h" @@ -10,7 +35,11 @@ manualContourBaseControler::manualContourBaseControler() _manViewBaseCont = NULL; _manContModel = NULL; _state = 0; - _z = 900; + +//EED 21 mars 2012 FLIP probleme ..PLOP.. +// _z = 900; + _z = -900; + _editable = true; _posibleToMove = true; _moving = false; @@ -58,7 +87,7 @@ bool manualContourBaseControler::OnChar() char keyCode = _vtkInteractorStyleBaseView->GetInteractor()-> GetKeyCode(); int X,Y; - wxVTKRenderWindowInteractor *_wxVTKiren; + crea::wxVTKRenderWindowInteractor *_wxVTKiren; _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); _wxVTKiren->GetEventPosition(X, Y); //int Z = GetZ(); // JPRx @@ -137,15 +166,13 @@ bool manualContourBaseControler::OnChar() // ---------------------------------------------------------------------------- bool manualContourBaseControler::OnMouseMove() { - if ( _vtkInteractorStyleBaseView!=NULL) { int X,Y; - wxVTKRenderWindowInteractor *_wxVTKiren; + crea::wxVTKRenderWindowInteractor *_wxVTKiren; _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); _wxVTKiren->GetEventPosition( X , Y ); - if ( (_vtkInteractorStyleBaseView->GetInteractor()->GetControlKey()==0) && (_vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey()==0) ) { MouseMove(X,Y); @@ -160,7 +187,7 @@ bool manualContourBaseControler::OnLeftButtonDown() if ( _vtkInteractorStyleBaseView!=NULL ) { int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; + crea::wxVTKRenderWindowInteractor *wxVTKiren; wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition(X,Y); @@ -174,7 +201,7 @@ bool manualContourBaseControler::OnLeftButtonUp() if ( _vtkInteractorStyleBaseView!=NULL ) { int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; + crea::wxVTKRenderWindowInteractor *wxVTKiren; wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition(X,Y); MouseReleaseLeft(X,Y); @@ -187,7 +214,7 @@ bool manualContourBaseControler::OnLeftDClick() if ( _vtkInteractorStyleBaseView!=NULL ) { int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; + crea::wxVTKRenderWindowInteractor *wxVTKiren; wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition(X,Y); @@ -202,7 +229,7 @@ bool manualContourBaseControler::OnMiddleButtonDown() if ( _vtkInteractorStyleBaseView!=NULL ) { int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; + crea::wxVTKRenderWindowInteractor *wxVTKiren; wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition(X,Y); GetManualViewBaseContour()->InitMove( X, Y,GetZ()); @@ -220,13 +247,10 @@ bool manualContourBaseControler::OnRightButtonDown() if( _vtkInteractorStyleBaseView!= NULL ) { int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; + crea::wxVTKRenderWindowInteractor *wxVTKiren; wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition(X, Y); - SetCompleteCreation( true ); - SetKeyBoardMoving( false ); - this->GetManualContourModel()->SetCloseContour(true); MouseClickRight(X,Y); } return true; @@ -237,13 +261,13 @@ bool manualContourBaseControler::OnRightButtonUp() return true; } // ---------------------------------------------------------------------------- -void manualContourBaseControler::SetModelView(manualContourModel *manContModel, manualViewBaseContour *manViewBaseCont){ +void manualContourBaseControler::SetModelView(manualBaseModel *manContModel, manualViewBaseContour *manViewBaseCont){ _manContModel = manContModel; _manViewBaseCont = manViewBaseCont; _manViewBaseCont->SetEditable( &_editable ); } // ---------------------------------------------------------------------------- -manualContourModel* manualContourBaseControler::GetManualContourModel() +manualBaseModel* manualContourBaseControler::GetManualContourModel() { return _manContModel; } @@ -260,6 +284,10 @@ void manualContourBaseControler::MouseClickLeft(int x, int y) // virtual // ---------------------------------------------------------------------------- void manualContourBaseControler::MouseClickRight(int x, int y) { + SetCompleteCreation( true ); + SetKeyBoardMoving( false ); + this->GetManualContourModel()->SetCloseContour(true); + // if (_state==1) // { // _state=0; @@ -289,10 +317,13 @@ void manualContourBaseControler::MouseDLeft(int x, int y ) { if (_state==0) { + int z=GetZ(); - GetManualViewBaseContour()->SelectPosibleContour(x,y,z); - GetManualViewBaseContour()->SelectPosiblePoint(x,y,z); - if ( GetManualViewBaseContour()->GetPosibleSelected() ) + /*bool temp = */ _manViewBaseCont->SelectPosibleContour(x,y,z); + + _manViewBaseCont->SelectPosiblePoint(x,y,z); + + if ( _manViewBaseCont->GetPosibleSelected() ) { _editable = true; } @@ -453,8 +484,9 @@ void manualContourBaseControler::AddPoint(int x, int y, int z) // virtual double xx = x; double yy = y; double zz = z; + GetManualViewBaseContour()->TransfromCoordViewWorld(xx,yy,zz); - /*int id =*/ GetManualContourModel()->AddPoint(xx,yy,zz); // JPRx + GetManualContourModel()->AddPoint(xx,yy,zz); GetManualViewBaseContour()->AddPoint(); // GetManualViewBaseContour()->UpdateViewPoint(id); } @@ -488,6 +520,7 @@ void manualContourBaseControler::SetPoint( int id ,int x , int y , int z){ // vi double xx = x; double yy = y; double zz = z; + GetManualViewBaseContour()->TransfromCoordViewWorld(xx,yy,zz); manualPoint *mp = _manContModel->GetManualPoint(id); mp->SetPoint(xx,yy,zz);