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 // Ce fichier fait partie de "g-map-generic.hh". 00026 //****************************************************************************** 00027 00028 public: 00029 00030 // Décale l'arête fictive incidente à ADart entre l'arete incidente 00031 // à ADart2 et celle incidente à alpha1(ADart2) 00032 virtual void shiftOneFictiveEdge (CDart* ADart, CDart* ADart2); 00033 00034 // ADart est un brin d'une arête. 00035 // Décale toute les arête incidente au sommet incident à ADart, 00036 // exepté l'arête incidente à ADart. 00037 // (marche uniquement en 2D) 00038 // @return le nombre d'arêtes décalées 00039 unsigned int shiftAllEdgesIncidentToVertex(CDart* ADart); 00040 00041 // ADart est un brin d'une arête réelle. 00042 // Décale toute les arête fictive adjacentes trouvées en partant de 00043 // alpha12(ADart) et en tournant autour du sommet par alpha12(d) 00044 // (marche uniquement en 2D) 00045 void shiftAllAdjacentFictiveEdges(CDart* ADart, int AMark); 00046 00047 // ADart est un brin d'une arête réelle incident à un sommet de degré réel 2. 00048 // Décale toute les arête fictive incidente à ce sommet. 00049 // (marche uniquement en 2D) 00050 void shiftAllFictiveEdges(CDart* ADart, int AMark); 00051 00052 // Décalle toute les arêtes fictives incidentes au sommet désigné par ADart. 00053 // Marche en 3D. 00054 void shiftAllFictiveEdgesAroundEdge(CDart* ADart, int AMark); 00055 00056 // Est-ce qu'il existe une arête fictive incidente au sommet incident à ADart ? 00057 bool existFictiveEdgeIncidentTo(CDart*ADart, int AMark); 00058 00072 int findVertexType(CDart* ADart, CDart** AResDart, int AMark); 00073 00080 CDart* findIncidentEdgeNonLoop(CDart* ADart); 00081 00091 int markRealFace(CDart* ADart, int AMark, int AMark2); 00092 00102 int unmarkRealFace(CDart* ADart, int AMark, int AMark2); 00103 00104 //******************************************************************************