00001 /* 00002 * lib-gmapkernel : Un noyau de 3-G-cartes et des opérations. 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-gmapkernel 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 G_MAP_VERTEX_HH 00026 #define G_MAP_VERTEX_HH 00027 //****************************************************************************** 00028 #include <cmath> 00029 #include <cstdio> 00030 #include <fstream> 00031 #include <set> // pour les méthodes auxiliaires de co-raffinement. 00032 00033 #include "g-map-generic.hh" 00034 #include "dart-vertex.hh" 00035 #include "geometry.hh" 00036 #include "vertex.hh" 00037 #include "vector.hh" 00038 #include "transformation-matrix.hh" 00039 #include "mesh-diver.hh" 00040 00041 #include "alt-stdint.hh" 00042 #include "inline-macro.hh" 00043 //****************************************************************************** 00044 namespace GMap3d 00045 { 00051 class CGMapVertex : public CGMapGeneric 00052 { 00053 public: 00054 // @name Constructeur, destructeur et méthode d'initialisation 00055 // @{ 00056 #include "gmv-instance.hh" 00057 // @} 00058 00059 // @name Accesseurs 00060 // @{ 00061 #include "gmv-inline.hh" 00062 // @} 00063 00064 // @name Méthodes permettant de créer et plonger des maillages 00065 // @{ 00066 #include "gmv-primitive-mesh.hh" 00067 // @} 00068 00069 // @name Méthodes permettant la manipulation de polylignes 00070 // @{ 00071 #include "gmv-polyline.hh" 00072 // @} 00073 00074 // @name Méthodes de création des objets de base 00075 // @{ 00076 #include "gmv-primitive.hh" 00077 // @} 00078 00079 // @name Méthodes basiques pour les opérations géométriques 00080 // @{ 00081 #include "gmv-geometry.hh" 00082 // @} 00083 00084 // @name Méthodes de calcul d'une droite ou d'un plan de régression 00085 // @{ 00086 #include "gmv-regression.hh" 00087 // @} 00088 00089 // @name Méthodes de placage 00090 // @{ 00091 #include "gmv-plating.hh" 00092 // @} 00093 00094 // @name Coutures avec placages 00095 // @{ 00096 #include "gmv-geo-sew.hh" 00097 // @} 00098 00099 // @name Méthode d'insertion 00100 // @{ 00101 #include "gmv-insertion.hh" 00102 // @} 00103 00104 // @name Méthode de suppression des arêtes de longueur nulle 00105 // @{ 00106 #include "gmv-null-length-edge.hh" 00107 // @} 00108 00109 // @name Matérialisations 00110 // @{ 00111 #include "gmv-materialization.hh" 00112 // @} 00113 00114 // @name Chargement et sauvegarde 00115 // @{ 00116 #include "gmv-save.hh" 00117 // @} 00118 00119 // @name Import et export au format off 00120 // @{ 00121 #include "gmv-off.hh" 00122 // @} 00123 00124 // Calcul du dual d'une carte, en dimension 2 ou 3. 00125 // @{ 00126 #include "gmv-dual.hh" 00127 // @} 00128 00129 // @name Méthodes de mise à jour des plongements éclatés 00130 // @{ 00131 #include "gmv-burstview.hh" 00132 // @} 00133 00134 // @name Bouchage 00135 // @{ 00136 #include "gmv-stop-up.hh" 00137 // @} 00138 00139 // @name Triangulations et quadrangulations barycentriques 00140 // @{ 00141 #include "gmv-triangulation.hh" 00142 #include "gmv-quadrangulation.hh" 00143 // @} 00144 00145 // @name Méthodes permettant l'allocation et la libération d'un paramètre de 00146 // pondération pour les déformations 00147 // @{ 00148 #include "gmv-direct-info.hh" 00149 // @} 00150 00151 // @name Méthodes permettant de déformer les objets 00152 // @{ 00153 #include "gmv-deformation.hh" 00154 // @} 00155 00156 // @name Épaississement 00157 // @{ 00158 #include "gmv-thickening.hh" 00159 // @} 00160 00161 // @name Extrusions 00162 // @{ 00163 #include "gmv-extrusion.hh" 00164 // @} 00165 00166 // @name Fusion de cellules alignées 00167 // @{ 00168 #include "gmv-merge.hh" 00169 // @} 00170 00171 // Différents exports dans des formats plus ou moins exotiques 00172 // @{ 00173 #include "gmv-export-pov.hh" 00174 // @} 00175 00176 // Test d'isomorphismes de cartes 00177 // @{ 00178 #include "gmv-isomorphisme.hh" 00179 // @} 00180 00181 private: 00182 // @name Champs privés 00183 // @{ 00184 00186 TCoordinate FBurstCoef[4]; 00187 00189 TBurstMethod FBurstMethod; 00190 00191 // @} 00192 }; 00193 00194 } // namespace GMap3d 00195 //****************************************************************************** 00196 #include INCLUDE_INLINE("gmv-inline.icc") 00197 //****************************************************************************** 00198 #endif // G_MAP_VERTEX_HH 00199 //******************************************************************************