Moka kernel
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
gmg-fictive-edge.hh
Go to the documentation of this file.
1 /*
2  * lib-gmapkernel : Un noyau de 3-G-cartes et des opérations.
3  * Copyright (C) 2004, Moka Team, Université de Poitiers, Laboratoire SIC
4  * http://www.sic.sp2mi.univ-poitiers.fr/
5  * Copyright (C) 2009, Guillaume Damiand, CNRS, LIRIS,
6  * guillaume.damiand@liris.cnrs.fr, http://liris.cnrs.fr/
7  *
8  * This file is part of lib-gmapkernel
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU Lesser General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 //******************************************************************************
25 // Ce fichier fait partie de "g-map-generic.hh".
26 //******************************************************************************
27 
28 public:
29 
30 // Décale l'arête fictive incidente à ADart entre l'arete incidente
31 // à ADart2 et celle incidente à alpha1(ADart2)
32 virtual void shiftOneFictiveEdge (CDart* ADart, CDart* ADart2);
33 
34 // ADart est un brin d'une arête.
35 // Décale toute les arête incidente au sommet incident à ADart,
36 // exepté l'arête incidente à ADart.
37 // (marche uniquement en 2D)
38 // @return le nombre d'arêtes décalées
39 unsigned int shiftAllEdgesIncidentToVertex(CDart* ADart);
40 
41 // ADart est un brin d'une arête réelle.
42 // Décale toute les arête fictive adjacentes trouvées en partant de
43 // alpha12(ADart) et en tournant autour du sommet par alpha12(d)
44 // (marche uniquement en 2D)
45 void shiftAllAdjacentFictiveEdges(CDart* ADart, int AMark);
46 
47 // ADart est un brin d'une arête réelle incident à un sommet de degré réel 2.
48 // Décale toute les arête fictive incidente à ce sommet.
49 // (marche uniquement en 2D)
50 void shiftAllFictiveEdges(CDart* ADart, int AMark);
51 
52 // Décalle toute les arêtes fictives incidentes au sommet désigné par ADart.
53 // Marche en 3D.
54 void shiftAllFictiveEdgesAroundEdge(CDart* ADart, int AMark);
55 
56 // Est-ce qu'il existe une arête fictive incidente au sommet incident à ADart ?
57 bool existFictiveEdgeIncidentTo(CDart*ADart, int AMark);
58 
72 int findVertexType(CDart* ADart, CDart** AResDart, int AMark);
73 
80 CDart* findIncidentEdgeNonLoop(CDart* ADart);
81 
91 int markRealFace(CDart* ADart, int AMark, int AMark2);
92 
102 int unmarkRealFace(CDart* ADart, int AMark, int AMark2);
103 
104 //******************************************************************************