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_OPERATIONS_HH 00026 #define PARAMETER_OPERATIONS_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 CParameterOperations : public CParameter 00036 { 00037 public: 00039 CParameterOperations(int ANbRef = 0); 00040 CParameterOperations(const CParameterOperations &); 00041 virtual ~CParameterOperations(); 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 plaquage 00057 */ 00059 void setRotateCells(bool ABool); 00060 bool getRotateCells() const; 00061 00062 void setScaleCells(bool ABool); 00063 bool getScaleCells() const; 00064 00065 void setTranslateCells(bool ABool); 00066 bool getTranslateCells() const; 00068 00069 /*@name Paramètres de maillage 00070 */ 00072 int getMeshNbSubdivisionsX() const; 00073 int getMeshNbSubdivisionsY() const; 00074 int getMeshNbSubdivisionsZ() const; 00075 00076 void setMeshNbSubdivisionsX(int ASx); 00077 void setMeshNbSubdivisionsY(int ASy); 00078 void setMeshNbSubdivisionsZ(int ASz); 00079 00080 int getMeshSubdivisionDimensionFrom() const; 00081 void setMeshSubdivisionDimensionFrom(int ADim); 00082 00083 int getMeshSubdivisionDimensionTo () const; 00084 void setMeshSubdivisionDimensionTo (int ADim); 00085 00086 bool getInterpolationMerges() const; 00087 void setInterpolationMerges(bool ABool); 00088 00089 bool getInterpolationSews() const; 00090 void setInterpolationSews(bool ABool); 00091 00092 bool isActiveInterpolationSews() const; 00094 00095 /*@name Paramètres de lissage 00096 */ 00098 bool getSmoothMerges() const; 00099 void setSmoothMerges(bool ABool); 00100 00101 bool getSmoothSews() const; 00102 void setSmoothSews(bool ABool); 00103 00104 TSmoothType getSmoothMethod() const; 00105 void setSmoothMethod(TSmoothType AValue); 00106 const CTransformationMatrix & getMeshMatrix() const; 00107 00108 bool isActiveSmoothMerges() const; 00109 bool isActiveSmoothSews () const; 00111 00112 /*@name Paramètres d'extrusion 00113 */ 00115 float getExtrusionCoef() const; 00116 void setExtrusionCoef(float ACoef); 00117 00118 float getExtrusionRevolutionAngle() const; 00119 void setExtrusionRevolutionAngle(float AAngle); 00120 00121 bool getExtrusionAdjacentSews() const; 00122 void setExtrusionAdjacentSews(bool ABool); 00123 00124 int getExtrusionInitialPositionMode() const; 00125 void setExtrusionInitialPositionMode(int AValue); 00126 00127 int getExtrusionInitialDirectionMode() const; 00128 void setExtrusionInitialDirectionMode(int AValue); 00129 00130 bool getExtrusionDirection() const; 00131 void setExtrusionDirection(bool ABool); 00132 00133 bool getExtrusionScale() const; 00134 void setExtrusionScale(bool ABool); 00135 00136 bool getExtrusionPonderateSection() const; 00137 void setExtrusionPonderateSection(bool ABool); 00138 00139 int getExtrusionRevolutionNbEdges() const; 00140 void setExtrusionRevolutionNbEdges(int AValue); 00142 00143 /*@name Paramètres d'arrondi 00144 */ 00146 float getDefaultRoundingCoefForVertices() const; 00147 void setDefaultRoundingCoefForVertices(float ACoef); 00148 00149 float getDefaultRoundingCoefForEdges() const; 00150 void setDefaultRoundingCoefForEdges(float ACoef); 00151 00152 float getDefaultRoundingCoefForFaces() const; 00153 void setDefaultRoundingCoefForFaces(float ACoef); 00155 00156 private: 00157 // Paramètres de plaquage : 00158 bool FRotateCells; 00159 bool FScaleCells; 00160 bool FTranslateCells; 00161 00162 // Paramètres de maillage : 00163 int FMeshNbSubdivisions[3]; 00164 bool FInterpolationMerges; 00165 bool FInterpolationSews ; 00166 00167 // Paramètres de lissage : 00168 bool FSmoothMerges; 00169 bool FSmoothSews; 00170 TSmoothType FSmoothMethod; 00171 00172 // Paramètres d'extrusion : 00173 float FExtrusionCoef; 00174 float FExtrusionRevolutionAngle; 00175 bool FExtrusionAdjacentSews; 00176 int FExtrusionInitialPositionMode; 00177 int FExtrusionInitialDirectionMode; 00178 bool FExtrusionDirection; 00179 bool FExtrusionScale; 00180 bool FExtrusionPonderateSection; 00181 int FExtrusionRevolutionNbEdges; 00182 00183 // Paramètres de chanfreinage : 00184 float FRoundingDefaultCoefs[3]; 00185 }; 00186 00187 } // namespace GMap3d 00188 //****************************************************************************** 00189 #endif // PARAMETER_OPERATIONS_HH 00190 //******************************************************************************
1.5.8