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 CONTROLER_GMAP_HH 00026 #define CONTROLER_GMAP_HH 00027 //****************************************************************************** 00028 #include "kernel-types.hh" 00029 #include "g-map-vertex.hh" 00030 #include "vertex.hh" 00031 #include "controler.hh" 00032 #include "controler-types.hh" 00033 #include "operations.hh" 00034 00035 #include "parameters-gmap-default-values.hh" 00036 #include "parameter-gmap-vertex.hh" 00037 #include "parameter-creation.hh" 00038 #include "parameter-object-ponderation.hh" 00039 #include "parameter-object-position.hh" 00040 #include "parameter-object-rotation.hh" 00041 #include "parameter-object-scale.hh" 00042 #include "parameter-object-translation.hh" 00043 #include "parameter-operations.hh" 00044 #include "parameter-polyline-position.hh" 00045 #include "parameter-selection.hh" 00046 00047 #include "parameter-aimed-position.hh" 00048 #include "parameter-axis.hh" 00049 #include "parameter-dart.hh" 00050 #include "parameter-face.hh" 00051 #include "parameter-grid.hh" 00052 #include "parameter-preview.hh" 00053 #include "parameter-normal-vector.hh" 00054 #include "parameter-object-transformation.hh" 00055 #include "parameter-sew.hh" 00056 #include "parameter-vertex.hh" 00057 00058 #ifdef MODULE_SPAMOD 00059 #include "parameter-spamod.hh" 00060 #include "spamod-api.hh" 00061 #endif // MODULE_SPAMOD 00062 00063 #ifdef MODULE_ROUNDING 00064 #include "rounding-interface.hh" 00065 #endif // MODULE_ROUNDING 00066 00067 #include <GL/gl.h> 00068 #include <cstdio> 00069 #include <list> 00070 #include <vector> 00071 #include <iostream> 00072 #include <fstream> 00073 #include <sstream> 00074 00075 //****************************************************************************** 00076 #define NB_SELECTION_LEVELS (3) 00077 //****************************************************************************** 00078 00079 //****************************************************************************** 00080 class CTransformationMatrix; 00081 00082 class CViewPrecompile; 00083 00084 namespace GMap3d 00085 { 00086 class CDart; 00087 class CGMapVertex; 00088 00089 #ifdef MODULE_SPAMOD 00090 class CParameterSpamod; 00091 #endif // MODULE_SPAMOD 00092 00093 class CControlerGMap : public CControler 00094 { 00095 public: 00096 /* @name Constructeur et destructeur 00097 */ 00098 00100 00101 CControlerGMap(CGMapVertex* AGMapVertex = NULL, 00102 const std::string & ADirectory = ""); 00103 virtual ~CControlerGMap(); 00104 00105 CGMapVertex* getMap(); 00107 00109 00110 #include "controler-gmap-creations.hh" 00112 00114 00115 #include "controler-gmap-object-transformation.hh" 00117 00119 00120 #include "controler-gmap-rounding.hh" 00122 00124 00125 #include "controler-gmap-parameter.hh" 00127 00129 00130 #include "controler-gmap-operations.hh" 00132 00134 00135 #include "controler-gmap-input-events.hh" 00137 00138 /* @name Méthodes de paramétrage et d'accès aux vues 00139 */ 00141 #include "controler-gmap-views.hh" 00143 00144 /* @name Méthodes pour l'export Xfig 00145 */ 00147 #include "controler-gmap-export-xfig.hh" 00149 00151 00152 #include "controler-gmap-undo-redo.hh" 00154 00155 /* @name Sélection de brins 00156 */ 00158 #include "controler-gmap-selection.hh" 00160 00162 00163 #include "controler-gmap-protected-methods.hh" 00165 00167 00168 00169 protected: 00170 CGMapVertex* FMap; 00171 00172 private: 00174 CParameterGMapVertex * FParameterGMapVertex; 00175 00176 CParameterSelection * FParameterSelection; 00177 CParameterCreation * FParameterCreation; 00178 CParameterPolylinePosition * FParameterPolylinePosition; 00179 CParameterOperations * FParameterOperations; 00180 CParameterObjectPosition * FParameterObjectPosition[NB_PREDEFINED_OBJECTS]; 00181 CParameterObjectTranslation* FParameterTranslation; 00182 CParameterObjectRotation * FParameterRotation; 00183 CParameterObjectScale * FParameterScale; 00184 CParameterObjectPonderation* FParameterPonderation; 00185 00187 }; 00188 00189 } // namespace GMap3d 00190 //****************************************************************************** 00191 #endif // CONTROLER_HH 00192 //******************************************************************************