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
dart.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 DART_HH
26
#define DART_HH
27
//******************************************************************************
28
#include "
kernel-types.hh
"
29
#include "
inline-macro.hh
"
30
31
#include <bitset>
32
//******************************************************************************
33
class
CAttribute
;
34
class
CEmbedding
;
35
36
namespace
GMap3d
37
{
50
class
CDart
51
{
52
public
:
53
// @name Constructeurs et destructeur
54
// @{
55
65
CDart
();
66
76
CDart
(
const
CDart
& ADart);
77
90
CDart
(
const
std::bitset<NB_MARKS>& AMarks);
91
99
~CDart
();
100
101
// @}
111
// @{
112
122
void
*
getDirectInfo
(
int
ADirectIndex)
const
;
123
130
void
setDirectInfo
(
int
ADirectIndex,
void
* AValue);
131
132
// @}
133
// @name Gestion des plongements
134
// @{
135
148
CEmbedding
*
getFirstEmbedding
()
const
;
149
160
void
setFirstEmbedding
(
CEmbedding
* AEmbedding);
161
171
CEmbedding
*
getEmbedding
(
TOrbit
AOrbit)
const
;
172
183
void
addEmbedding
(
CEmbedding
* AEmbedding);
184
196
CEmbedding
*
removeEmbedding
(
CEmbedding
* AEmbedding);
197
208
CEmbedding
*
removeEmbedding
(
TOrbit
AOrbit);
209
220
void
deleteEmbedding
(
CEmbedding
* AEmbedding);
221
231
void
deleteEmbedding
(
TOrbit
AOrbit);
232
243
void
mergeEmbedding
(
CEmbedding
* AEmbedding);
244
256
CAttribute
*
getAttribute
(
TOrbit
AOrbit,
TAttributeId
AAttribType)
const
;
257
270
void
addAttribute
(
TOrbit
AOrbit,
CAttribute
* AAttribute);
271
284
CAttribute
*
removeAttribute
(
TOrbit
AOrbit,
TAttributeId
AAttribType);
285
295
void
deleteAttribute
(
TOrbit
AOrbit,
TAttributeId
AAttribType);
296
308
void
setOrbitUsed
(
TOrbit
AOrbit);
309
316
bool
isOrbitUsed
(
TOrbit
AOrbit)
const
;
317
326
void
unsetOrbitUsed
(
TOrbit
AOrbit);
327
328
// @}
329
// @name Chaînage des brins dans la carte généralisée
330
// @{
331
343
CDart
*
getNext
()
const
;
344
352
CDart
*
getPrev
()
const
;
353
364
void
setNext
(
CDart
* ADart);
365
373
void
setPrev
(
CDart
* ADart);
374
375
// @}
376
// @name Accès aux involutions
377
// @{
378
389
CDart
*
getAlpha0
()
const
;
390
398
CDart
*
getAlpha1
()
const
;
399
407
CDart
*
getAlpha2
()
const
;
408
416
CDart
*
getAlpha3
()
const
;
417
427
CDart
*
getAlpha
(
int
ADimension)
const
;
428
439
void
setAlpha0
(
CDart
* ADart);
440
448
void
setAlpha1
(
CDart
* ADart);
449
457
void
setAlpha2
(
CDart
* ADart);
458
466
void
setAlpha3
(
CDart
* ADart);
467
477
void
setAlpha
(
CDart
* ADart,
int
ADimension);
478
488
bool
isFree0
()
const
;
489
497
bool
isFree1
()
const
;
498
506
bool
isFree2
()
const
;
507
515
bool
isFree3
()
const
;
516
527
bool
isFree
(
int
ADimension)
const
;
528
538
void
setFree0
();
539
545
void
setFree1
();
546
552
void
setFree2
();
553
559
void
setFree3
();
560
572
void
setFree
(
int
ADimension);
573
574
// @}
575
// @name Gestion des marques
576
// @{
577
589
bool
getMark
(
int
AMarkNumber)
const
;
590
601
void
setMark
(
int
AMarkNumber,
bool
AValue);
602
610
std::bitset<NB_MARKS>
getMarks
()
const
;
611
620
void
setMarks
(
const
std::bitset<NB_MARKS> & AMarks);
621
622
// @}
623
624
private
:
625
// @name Champs privés
626
// @{
627
629
CDart
* FAlpha[4];
630
632
CEmbedding
* FFirstEmbedding;
633
635
std::bitset<NB_MARKS> FMarks;
636
642
std::bitset<16> FUsedOrbits;
643
645
void
* FDirectInfo[
NB_DIRECT_INFO
];
646
651
CDart
* FPrev;
652
CDart
* FNext;
653
654
// @}
655
};
656
657
}
// namespace GMap3d
658
//******************************************************************************
659
#include INCLUDE_INLINE("dart.icc")
660
//******************************************************************************
661
#endif // DART_HH
662
//******************************************************************************
lib-gmapkernel
g-map
dart.hh
Generated on Tue Apr 9 2013 09:51:35 for Moka kernel by
1.8.2