Moka kernel
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
gmv-geometry.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-vertex.hh".
26 //******************************************************************************
27 
28 public:
29 
52 CVertex basicBarycenter(CDart* ADart, TOrbit AOrbit,
53  int AOrbitMark, int ATreatedMark,
54  int ADirectInfoVertex = -1);
55 
68 CVertex barycenter(CDart* ADart, TOrbit AOrbit, int ADirectInfoVertex = -1);
69 
76 CVertex barycenter(int AMarkNumber);
77 
86 CVertex directInfoBarycenter(int ADirectInfoVertex);
87 
96 void boundingBox(int AMarkNumber, CVertex & AMin, CVertex & AMax);
97 
106 CVertex centerOfBoundingBox(int AMarkNumber);
107 
117 void boundingBox(CDart* ADart, TOrbit AOrbit, CVertex & AMin, CVertex & AMax);
118 
127 CVertex centerOfBoundingBox(CDart* ADart, TOrbit AOrbit);
128 
135 TCoordinate edgeLength(CDart* ADart);
136 
143 TCoordinate facePerimeter(CDart* ADart);
144 
152 TCoordinate border1Length(CDart* ADart);
153 
161 TCoordinate border2Length(CDart* ADart);
162 
169 CVertex edgeVector(CDart* ADart);
170 
179 CVertex edgeNormalVector(CDart* ADart);
180 
189 CVertex faceNormalVector(CDart* ADart);
190 
199 CVertex cellNormalVector(int ADim, CDart* ADart);
200 
209 CVertex border2NormalVector(CDart* ADart);
210 
222 CVertex regionNormalVector(CDart* ADart, int ADim);
223 
236 CVertex regionNormalVector(CDart* ADart, int ADim, int AMarkNumber);
237 
247 CVertex cellDimensionNormalVector(CDart* ADart, int ADim);
248 
249 protected:
250 
262 TCoordinate orbitLength(CDart* ADart, TOrbit AOrbit);
263 
273 CVertex orbitNormalVector(CDart* ADart, TOrbit AOrbit);
274 
275 //******************************************************************************