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 #include "controler-gmap-types.hh" 00026 #include "parameter-object-rotation.hh" 00027 #include "transformation-matrix.hh" 00028 #include "geometry.hh" 00029 using namespace std; 00030 using namespace GMap3d; 00031 //****************************************************************************** 00032 CParameterObjectRotation::CParameterObjectRotation(int ANbRef) : 00033 CParameter (ANbRef), 00034 FAxeVertex (ORIGIN), 00035 FAxeVector (OZ), 00036 FAngle (0.0), 00037 FPonderation(false) 00038 {} 00039 //****************************************************************************** 00040 CParameterObjectRotation:: 00041 CParameterObjectRotation(const CParameterObjectRotation & AParam) : 00042 CParameter (AParam), 00043 FAxeVertex (AParam.FAxeVertex), 00044 FAxeVector (AParam.FAxeVector), 00045 FAngle (AParam.FAngle), 00046 FPonderation(AParam.FPonderation) 00047 {} 00048 //****************************************************************************** 00049 CParameterObjectRotation::~CParameterObjectRotation() 00050 {} 00051 //****************************************************************************** 00052 CParameter * CParameterObjectRotation::copy() const 00053 { return new CParameterObjectRotation(*this); } 00054 //****************************************************************************** 00055 void CParameterObjectRotation::load(istream& /*AStream*/) 00056 {} 00057 //------------------------------------------------------------------------------ 00058 void CParameterObjectRotation::save(ostream& /*AStream*/) 00059 {} 00060 //------------------------------------------------------------------------------ 00061 void CParameterObjectRotation::reinit() 00062 {} 00063 //****************************************************************************** 00064 int CParameterObjectRotation::getType() const 00065 { 00066 return PARAMETER_OBJECT_ROTATION; 00067 } 00068 //****************************************************************************** 00069 void CParameterObjectRotation::setAxeVertex(const CVertex & AAxeVertex) 00070 { 00071 if (FAxeVertex != AAxeVertex) 00072 { 00073 putAllNeedToUpdate(); 00074 FAxeVertex = AAxeVertex; 00075 } 00076 } 00077 00078 CVertex CParameterObjectRotation::getAxeVertex() const 00079 { 00080 return FAxeVertex; 00081 } 00082 //****************************************************************************** 00083 void CParameterObjectRotation::setAxeVector(const CVertex & AAxeVector) 00084 { 00085 if (FAxeVector != AAxeVector && !AAxeVector.isNull()) 00086 { 00087 putAllNeedToUpdate(); 00088 FAxeVector = AAxeVector; 00089 } 00090 } 00091 00092 CVertex CParameterObjectRotation::getAxeVector() const 00093 { 00094 return FAxeVector; 00095 } 00096 //****************************************************************************** 00097 void CParameterObjectRotation::setAngle(float AAngle) 00098 { 00099 FAngle = AAngle; 00100 } 00101 00102 float CParameterObjectRotation::getAngle() const 00103 { 00104 return FAngle; 00105 } 00106 //****************************************************************************** 00107 void CParameterObjectRotation::setPonderation(bool AActive) 00108 { 00109 if (FPonderation != AActive) 00110 { 00111 putAllNeedToUpdate(); 00112 FPonderation = AActive; 00113 } 00114 } 00115 00116 bool CParameterObjectRotation::getPonderation() const 00117 { 00118 return FPonderation; 00119 } 00120 //******************************************************************************
1.5.8