00001 /* 00002 * lib-controler-gmap : Le contrôleur de 3-G-cartes, surcouche de lib-controler. 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-gmap 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 #ifndef PRECOMPILE_OBJECT_TRANSFORMATION_HH 00026 #define PRECOMPILE_OBJECT_TRANSFORMATION_HH 00027 //****************************************************************************** 00030 //****************************************************************************** 00031 #include "precompile.hh" 00032 //****************************************************************************** 00033 class CVertex; 00034 00035 namespace GMap3d 00036 { 00037 class CParameterObjectTransformation; 00038 class CParameterObjectTranslation; 00039 class CParameterObjectRotation; 00040 class CParameterObjectScale; 00041 class CParameterObjectPonderation; 00042 00045 class CPrecompileObjectTransformation : public CPrecompile 00046 { 00047 public: 00048 //@name Constructeurs et destructeur. 00050 00059 CPrecompileObjectTransformation(CParameterObjectTransformation*, 00060 CParameterObjectTranslation*, 00061 CParameterObjectRotation*, 00062 CParameterObjectScale*, 00063 CParameterObjectPonderation*); 00064 00065 CPrecompileObjectTransformation(const CPrecompileObjectTransformation &); 00066 CPrecompile* copy() const; 00067 00069 virtual ~CPrecompileObjectTransformation(); 00071 00073 void setParameter(CParameter* AParameter); 00074 CParameter* getParameter() const; 00075 00077 virtual TPrecompile getType() const; 00078 00081 void setObjectTransformation(CParameterObjectTransformation* 00082 AObjectTransformation); 00083 00085 void setObjectTranslation(CParameterObjectTranslation* AObjectTranslation); 00086 00088 void setObjectRotation(CParameterObjectRotation* AObjectRotation); 00089 00091 void setObjectScale(CParameterObjectScale* AObjectScale); 00092 00094 void setObjectPonderation(CParameterObjectPonderation* AObjectPonderation); 00096 00098 void setCurrentMode(TMode AMode); 00100 00101 protected: 00102 00104 virtual void drawModel(); 00105 00110 void drawInteractivePonderation(); 00111 00116 void drawInteractiveAxe(const CVertex & C, 00117 const CVertex & V, 00118 int circleNbEdges, 00119 bool ponderation=false); 00120 00121 00122 private: 00124 CParameterObjectTransformation * FParameterObjectTransformation; 00125 CParameterObjectTranslation * FParameterObjectTranslation; 00126 CParameterObjectRotation * FParameterObjectRotation; 00127 CParameterObjectScale * FParameterObjectScale; 00128 CParameterObjectPonderation * FParameterObjectPonderation; 00129 00130 // Le mode courant pour différencier 00131 // MODE_SCENE_TRANSLATION, MODE_SCENE_ROTATION ou MODE_SCENE_SCALE 00132 TMode FCurrentMode; 00133 }; 00134 00135 } // namespace GMap3d 00136 //****************************************************************************** 00137 #endif // PRECOMPILE_OBJECT_TRANSFORMATION_HH 00138 //******************************************************************************
1.5.8