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 PARAMETER_OBJECT_SCALE_HH 00026 #define PARAMETER_OBJECT_SCALE_HH 00027 //****************************************************************************** 00028 #include "controler-gmap-types.hh" 00029 #include "parameter.hh" 00030 #include "vertex.hh" 00031 #include "transformation-matrix.hh" 00032 //****************************************************************************** 00033 namespace GMap3d 00034 { 00035 class CParameterObjectScale : public CParameter 00036 { 00037 public: 00039 CParameterObjectScale(int ANbRef = 0); 00040 CParameterObjectScale(const CParameterObjectScale &); 00041 virtual ~CParameterObjectScale(); 00042 virtual CParameter * copy() const; 00044 00046 00047 virtual void save(std::ostream &); 00048 virtual void load(std::istream &); 00049 virtual void reinit(); 00050 00052 00054 virtual int getType() const; 00055 00056 /*@name Paramètres de l'homothétie 00057 */ 00059 00061 void setScaleType(TScaleType AScaleType); 00062 TScaleType getScaleType() const; 00063 00065 void setCenter(const CVertex & ACenter); 00066 CVertex getCenter() const; 00067 00068 /* Vecteur directeur de l'axe d'homothétie, ou vecteur normal du plan 00069 * d'homothétie (inutilisé pour l'homothétie centrale) : 00070 */ 00071 void setVector(const CVertex & AVector); 00072 CVertex getVector() const; 00073 00074 00075 /* Pour gerer le mode iso-scale 00076 */ 00077 bool getIsoScale(); 00078 void setIsoScale(bool AValue); 00079 00080 /* Coefficients d'homothétie 00081 */ 00082 void setIsoCoef(float AValue); 00083 float getIsoCoef() const; 00084 00085 void setCoef(const CVertex & AValue); 00086 CVertex getCoef() const; 00087 00088 void setCoef(int ADim, float AValue); 00089 float getCoef(int ADim) const; 00090 00092 void setPonderation(bool AActive); 00093 bool getPonderation() const; 00094 00096 00097 private: 00098 // Paramètres d'homothétie : 00099 TScaleType FScaleType; 00100 CVertex FCenter; 00101 CVertex FVector; 00102 CVertex FCoef; 00103 bool FPonderation; 00104 bool FIsoScale; 00105 }; 00106 00107 } // namespace GMap3d 00108 //****************************************************************************** 00109 #endif // PARAMETER_OBJECT_SCALE_HH 00110 //******************************************************************************
1.5.8