Moka kernel
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
g-map.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
#ifndef G_MAP_HH
26
#define G_MAP_HH
27
//******************************************************************************
28
#include "
g-map-basic.hh
"
29
#include "
inline-macro.hh
"
30
// Includes facultatifs :
31
#include "
dart.hh
"
32
#include "
attribute.hh
"
33
#include "
embedding.hh
"
34
#include "
coverage.hh
"
35
#include "
dynamic-coverage.hh
"
36
#include "
static-coverage.hh
"
37
//******************************************************************************
38
namespace
GMap3d
39
{
49
class
CGMap
:
public
CGMapBasic
50
{
51
public
:
52
// @name Constructeur et destructeur
53
// @{
54
56
CGMap
();
57
59
virtual
~CGMap
();
60
61
// @}
62
63
// @name Méthodes "sûres" pour la couture et décousure.
64
70
// @{
71
bool
canSew0
(
CDart
* ADart1,
CDart
* ADart2);
72
bool
canSew1
(
CDart
* ADart1,
CDart
* ADart2);
73
bool
canSew2
(
CDart
* ADart1,
CDart
* ADart2);
74
bool
canSew3
(
CDart
* ADart1,
CDart
* ADart2);
75
// @}
76
82
bool
canSew
(
CDart
* ADart1,
CDart
* ADart2,
int
ADimension);
83
93
// @{
94
void
sew0
(
CDart
* ADart1,
CDart
* ADart2);
95
void
sew1
(
CDart
* ADart1,
CDart
* ADart2);
96
void
sew2
(
CDart
* ADart1,
CDart
* ADart2);
97
void
sew3
(
CDart
* ADart1,
CDart
* ADart2);
98
// @}
99
107
void
sew
(
CDart
* ADart1,
CDart
* ADart2,
int
ADimension);
108
117
// @{
118
void
unsew0
(
CDart
* ADart);
119
void
unsew1
(
CDart
* ADart);
120
void
unsew2
(
CDart
* ADart);
121
void
unsew3
(
CDart
* ADart);
122
// @}
123
130
void
unsew
(
CDart
* ADart,
int
ADimension);
131
137
// @{
138
139
CCoverage
*
getDynamicCoverage
(
const
CDart
* ADart,
TOrbit
AOrbit);
140
CCoverage
*
getStaticCoverage
(
const
CDart
* ADart,
TOrbit
AOrbit);
141
CCoverage
*
getMultiDynamicCoverage
(
const
CDart
* ADart,
TOrbit
AOrbit);
142
CCoverage
*
getBasicDynamicCoverage
(
const
CDart
* ADart,
TOrbit
AOrbit,
143
int
AMarkNumber);
144
145
// @}
146
// @name Méthodes de gestion des attributs.
147
// @{
148
153
CAttribute
*
getAttribute
(
const
CDart
* ADart,
TOrbit
,
TAttributeId
);
154
161
void
addAttribute
(
CDart
* ADart,
TOrbit
,
CAttribute
*);
162
168
CAttribute
*
removeAttribute
(
CDart
* ADart,
TOrbit
,
TAttributeId
);
169
175
void
deleteAttribute
(
CDart
* ADart,
TOrbit
,
TAttributeId
);
176
184
bool
isSameOrbit
(
CDart
* ADart1,
CDart
* ADart2,
TOrbit
AOrbit);
185
194
CDart
*
getEmbeddingOwner
(
const
CDart
* ADart,
TOrbit
AOrbit);
195
196
// @}
214
// @{
215
void
dartSew0
(
CDart
*,
CDart
* ADart2);
216
void
dartSew1
(
CDart
*,
CDart
* ADart2);
217
void
dartSew2
(
CDart
*,
CDart
* ADart2);
218
void
dartSew3
(
CDart
*,
CDart
* ADart2);
219
void
dartSew
(
CDart
*,
CDart
* ADart2,
int
ADimension);
220
// @}
221
229
// @{
230
void
dartUnsew0
(
CDart
* ADart);
231
void
dartUnsew1
(
CDart
* ADart);
232
void
dartUnsew2
(
CDart
* ADart);
233
void
dartUnsew3
(
CDart
* ADart);
234
void
dartUnsew
(
CDart
* ADart,
int
ADimension);
235
// @}
236
245
// @{
246
void
topoSew0
(
CDart
* ADart1,
CDart
* ADart2);
247
void
topoSew1
(
CDart
* ADart1,
CDart
* ADart2);
248
void
topoSew2
(
CDart
* ADart1,
CDart
* ADart2);
249
void
topoSew3
(
CDart
* ADart1,
CDart
* ADart2);
250
void
topoSew
(
CDart
* ADart1,
CDart
* ADart2,
int
ADimension);
251
// @}
252
260
// @{
261
void
topoUnsew0
(
CDart
* ADart);
262
void
topoUnsew1
(
CDart
* ADart);
263
void
topoUnsew2
(
CDart
* ADart);
264
void
topoUnsew3
(
CDart
* ADart);
265
void
topoUnsew
(
CDart
* ADart,
int
ADimension);
266
// @}
267
268
private
:
269
// @name Méthodes utilisées par sew et unsew pour gérer les attributs.
270
// @{
271
282
bool
isValidOrbit(
CDart
* ADart,
TOrbit
AOrbit);
283
296
void
groupAttributes(
CDart
* ADart1,
CDart
* ADart2,
TMask16
);
297
309
void
duplicateAttributes(
CDart
* ADart1,
CDart
* ADart2,
TMask16
);
310
322
bool
isSameOrbit
(
CDart
* ADart1,
CDart
* ADart2,
TOrbit
AOrbit,
323
CDart
*& ADartEmbeddingOwner1);
324
};
325
326
}
// namespace GMap3d
327
//******************************************************************************
328
#include INCLUDE_INLINE("g-map.icc")
329
//******************************************************************************
330
#endif // G_MAP_HH
331
//******************************************************************************
lib-gmapkernel
g-map
g-map.hh
Generated on Tue Apr 9 2013 09:51:35 for Moka kernel by
1.8.2