00001 /* 00002 * lib-controler : Un contrôleur générique de scène 3D. 00003 * Copyright (C) 2004, Moka Team, Université de Poitiers, Laboratoire SIC 00004 * http://www.sic.sp2mi.univ-poitiers.fr/ 00005 * Copyright (C) 2009, Guillaume Damiand, CNRS, LIRIS, 00006 * guillaume.damiand@liris.cnrs.fr, http://liris.cnrs.fr/ 00007 * 00008 * This file is part of lib-controler 00009 * 00010 * This program is free software: you can redistribute it and/or modify 00011 * it under the terms of the GNU Lesser General Public License as published by 00012 * the Free Software Foundation, either version 3 of the License, or 00013 * (at your option) any later version. 00014 * 00015 * This program is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 * GNU Lesser General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU Lesser General Public License 00021 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00022 */ 00023 00024 //****************************************************************************** 00025 // Ce fichier est une partie de "controler.hh". 00026 //****************************************************************************** 00027 public: 00029 TMode getMode() const; 00030 void setMode(TMode AMode); 00031 void toggleMode(TMode AMode); 00032 00033 void operationModeStart(TViewId AViewId, int Ax, int Ay); 00034 void operationModeMove (int Ax, int Ay); 00035 void operationModeStop (int Ax, int Ay); 00037 00040 00041 00042 void operationModeIndependentStart( TModeOperation AOperation, 00043 TViewId AViewId, 00044 int Ax, int Ay ); 00046 00047 // Positionne le point de vue au coordonnees (x,y) de la souris. 00048 00049 void setClickAimedPosition(TViewId AViewId, int x, int y); 00050 00051 //****************************************************************************** 00052 protected: 00053 00054 virtual void onEnterMode(); 00055 virtual void onExitMode (); 00056 00057 virtual void onOperationModeStart(); 00058 virtual void onOperationModeMove (); 00059 virtual void onOperationModeStop (); 00060 00061 void exitMode(); 00063 00064 //****************************************************************************** 00065 protected: 00067 00068 TMode FCurrentMode; 00069 TModeOperation FCurrentModeOperation; 00070 00071 int FFirstX, FLastX, FDeltaX; 00072 int FFirstY, FLastY, FDeltaY; 00073 int FCurrentViewId; 00074 00076 GLfloat FFirst3D[3]; 00077 00078 CParameterEyePosition FMemoEyePosition; 00079 CParameterAimedPosition FMemoAimedPosition; 00080 00082 00083 //******************************************************************************