Moka kernel
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
Moka kernel
Todo List
Namespaces
Classes
Files
File List
lib-gmapkernel
g-map
attribute.cc
attribute.hh
attribute.icc
coverage.cc
coverage.hh
coverage.icc
dart.cc
dart.hh
dart.icc
dynamic-coverage.cc
dynamic-coverage.hh
embedding.cc
embedding.hh
embedding.icc
g-map-basic.cc
g-map-basic.hh
g-map-basic.icc
g-map.cc
g-map.hh
g-map.icc
kernel-types.hh
static-coverage.cc
static-coverage.hh
g-map-generic
g-map-vertex
tools
alt-stdint.hh
attributes-id.hh
chrono.hh
inline-macro.hh
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