Moka kernel
|
#include <g-map-basic.hh>
Public Member Functions | |
bool | isFree (const CDart *ADart, int ADimension) const |
CDart * | alpha (const CDart *ADart, int ADimension) const |
void | linkAlpha (CDart *ADart1, CDart *ADart2, int ADimension) |
void | unlinkAlpha (CDart *ADart, int ADimension) |
CGMapBasic () | |
Constructeur. | |
virtual | ~CGMapBasic () |
Destructeur. | |
void | randomizeDarts () |
void | removeAllDarts () |
virtual void | empty () |
int | getNewDirectInfo () |
void | freeDirectInfo (int ADirectIndex) |
void * | getDirectInfo (CDart *ADart, int ADirectIndex) const |
void | setDirectInfo (CDart *ADart, int ADirectIndex, void *APointer) |
CDart * | getFirstDart () const |
void | setFirstDart (CDart *ADart) |
int | getNewMark () |
bool | getMaskMark (int AMarkNumber) const |
void | freeMark (int AMarkNumber) |
void | negateMaskMark (int AMarkNumber) |
bool | isWholeMapUnmarked (int AMarkNumber) |
int | getNbUsedMarks () const |
bool | isMarked (const CDart *ADart, int AMarkNumber) const |
void | setMarkTo (CDart *ADart, int AMarkNumber, bool AState) |
void | setMark (CDart *ADart, int AMarkNumber) |
void | unsetMark (CDart *ADart, int AMarkNumber) |
void | setMarks (CDart *ADart, const std::bitset< NB_MARKS > &AMarks) const |
std::bitset< NB_MARKS > | getMarks (CDart *ADart) const |
bool | isOrbitUsed (TOrbit AOrbit) const |
void | setOrbitUsed (TOrbit AOrbit) |
void | unsetOrbitUsed (TOrbit AOrbit) |
bool | isOrbitUsed (CDart *ADart, TOrbit AOrbit) const |
virtual CDart * | newDart () |
virtual void | delDart (CDart *ADart) |
CDart * | addMapDart () |
void | delMapDart (CDart *ADart) |
Accès aux involutions | |
Attention, les méthodes d'accès en écritures qui suivent ne sont pas sûres car elles ne préservent pas forcément les contraintes des cartes. Elles ne mettent pas non plus à jour les éventuels plongements. | |
bool | isFree0 (const CDart *ADart) const |
bool | isFree1 (const CDart *ADart) const |
bool | isFree2 (const CDart *ADart) const |
bool | isFree3 (const CDart *ADart) const |
CDart * | alpha0 (const CDart *ADart) const |
CDart * | alpha1 (const CDart *ADart) const |
CDart * | alpha2 (const CDart *ADart) const |
CDart * | alpha3 (const CDart *ADart) const |
void | linkAlpha0 (CDart *ADart1, CDart *ADart2) |
void | linkAlpha1 (CDart *ADart1, CDart *ADart2) |
void | linkAlpha2 (CDart *ADart1, CDart *ADart2) |
void | linkAlpha3 (CDart *ADart1, CDart *ADart2) |
void | unlinkAlpha0 (CDart *ADart) |
void | unlinkAlpha1 (CDart *ADart) |
void | unlinkAlpha2 (CDart *ADart) |
void | unlinkAlpha3 (CDart *ADart) |
Protected Member Functions | |
void | addDartInList (CDart *ADart) |
void | removeDartInList (CDart *ADart) |
Protected Attributes | |
CDart * | FFirstDart |
Premier brin de la liste des brins de la carte. | |
std::bitset< NB_MARKS > | FUsedMarks |
Tableau indiquant quelles sont les marques prises. | |
std::bitset< NB_MARKS > | FMaskMarks |
Masque des marques (modifié par la méthode negateMaskMark()) | |
int | FMarks [NB_MARKS] |
Liste des marques libres. | |
std::bitset< 16 > | FUsedOrbits |
Tableau indiquant quelles sont les orbites utilisées. | |
std::bitset< NB_DIRECT_INFO > | FUsedDirectInfo |
Tableau indiquant quels sont les champs direct-info utilisés. | |
int | FDirectInfos [NB_DIRECT_INFO] |
Liste des champs directInfo libres. | |
Cette classe regroupe uniquement des méthodes de base :
Les méthodes permettant d'explorer la carte et de gérer les plongements sont définies dans la classe CGMap.
Definition at line 49 of file g-map-basic.hh.
INLINE GMap3d::CGMapBasic::CGMapBasic | ( | ) |
Constructeur.
Definition at line 191 of file g-map-basic.icc.
|
virtual |
Destructeur.
Definition at line 29 of file g-map-basic.cc.
Definition at line 57 of file g-map-basic.icc.
Permet de créer un nouveau brin (avec la méthode addDart()) et de l'insérer dans la carte.
Definition at line 88 of file g-map-basic.icc.
ADart | Un brin de la carte |
ADimension | Une dimension comprise entre 0 et 3 inclus |
Definition at line 228 of file g-map-basic.icc.
ADart | Un brin de la carte |
Definition at line 234 of file g-map-basic.icc.
Definition at line 240 of file g-map-basic.icc.
Definition at line 246 of file g-map-basic.icc.
Definition at line 252 of file g-map-basic.icc.
Permet de détruire un brin. Cette méthode doit être surchargée dans les classes qui dérivent de CGMapBasic. N'utilisez pas cette méthode mais la méthode delMapDart() pour supprimer un brin de la carte.
ADart | Un brin de la carte |
Reimplemented in GMap3d::CGMapVertex.
Definition at line 51 of file g-map-basic.icc.
Ote un brin de la liste des brins de la carte, puis le supprime avec la méthode delDart().
ADart | Le brin à supprimer |
Definition at line 97 of file g-map-basic.icc.
|
virtual |
Réinitialise la carte. La méthode removeAllDarts est appelée, puis toutes les marques, champs direct-info, etc, sont réinitialisés.
Reimplemented in GMap3d::CGMapVertex.
Definition at line 163 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::freeDirectInfo | ( | int | ADirectIndex | ) |
Libère un champ direct-info préalablement réservé avec la méthode getNewDirectInfo.
ADirectIndex | Un indice de champ direct-info. |
Definition at line 275 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::freeMark | ( | int | AMarkNumber | ) |
Libère la marque AMarkNumber préalablement réservée avec la méthode getNewMark().
AMarkNumber |
Definition at line 388 of file g-map-basic.icc.
Retourne la valeur du champ direct-info[ADirectIndex] du brin ADart.
ADart | Un brin de la carte |
ADirectIndex | Un indice de champ direct-info |
Definition at line 285 of file g-map-basic.icc.
Retourne le brin situé en tête de la liste des brins de la carte.
Definition at line 33 of file g-map-basic.icc.
Retourne l'état des marques du brin, en tenant compte du masque des marques.
ADart | Un brin de la carte |
Definition at line 319 of file g-map-basic.icc.
INLINE bool GMap3d::CGMapBasic::getMaskMark | ( | int | AMarkNumber | ) | const |
Retourne l'état de la marque. Initialement, cette valeur vaut false. Elle est modifiée à chaque appel à la méthode negateMaskMark().
AMarkNumber | Un numéro de marque |
Definition at line 301 of file g-map-basic.icc.
INLINE int GMap3d::CGMapBasic::getNbUsedMarks | ( | ) | const |
Cette méthode permet de savoir à tout moment combien de marques sont utilisées simultanément. Sert au debugging.
Definition at line 307 of file g-map-basic.icc.
INLINE int GMap3d::CGMapBasic::getNewDirectInfo | ( | ) |
Réserve un champ direct info libre.
Definition at line 258 of file g-map-basic.icc.
INLINE int GMap3d::CGMapBasic::getNewMark | ( | ) |
Réserve une marque inutilisée de la carte.
Definition at line 325 of file g-map-basic.icc.
Teste si le brin ADart est libre en dimension ADimension, c'est-à-dire s'il est sa propre image par alpha-ADimension.
ADart | Un brin de la carte |
ADimension | Une dimension comprise entre 0 et 3 inclus |
Definition at line 198 of file g-map-basic.icc.
Teste si le brin ADart est libre par alpha-i, c'est-à-dire s'il est sa propre image par alpha-i.
ADart | Un brin de la carte |
Definition at line 204 of file g-map-basic.icc.
Definition at line 210 of file g-map-basic.icc.
Definition at line 216 of file g-map-basic.icc.
Definition at line 222 of file g-map-basic.icc.
Teste si la marque AMarkNumber du brin ADart est activée. Cette méthode est redirigée sur la méthode équivalente de CDart.
ADart | Un brin de la carte |
AMarkNumber | Un numéro de marque |
Definition at line 350 of file g-map-basic.icc.
Permet de savoir si une orbite est utilisée. Cette méthode est utilisée par la classe CGMap pour la gestion des plongements.
AOrbit | Une des 16 orbites classiques (pas les orbites de bord) |
Definition at line 401 of file g-map-basic.icc.
Permet de savoir si un brin contient un plongement sans avoir à parcourir la liste de ses attributs.
ADart | Un brin de la carte |
AOrbit | Une des 16 orbites classiques |
Definition at line 407 of file g-map-basic.icc.
INLINE bool GMap3d::CGMapBasic::isWholeMapUnmarked | ( | int | AMarkNumber | ) |
Cette méthode est utilisée (en assertion) par la méthode freeMark. En effet, lorqu'on libère une marque, il faut nécessairement que tous les brins de la carte soient démarqués.
AMarkNumber | Un numéro de marque |
Definition at line 378 of file g-map-basic.icc.
Lie par alpha-ADimension les brins ADart1 et ADart2.
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
ADimension | Une dimension entre 0 et 3 inclus. |
Definition at line 434 of file g-map-basic.icc.
Lie par alpha-[i] les brins ADart1 et ADart2.
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
Definition at line 443 of file g-map-basic.icc.
Definition at line 449 of file g-map-basic.icc.
Definition at line 455 of file g-map-basic.icc.
Definition at line 461 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::negateMaskMark | ( | int | AMarkNumber | ) |
Inverse l'état d'une marque. Cette méthode permet de changer l'état de la marque AMarkNumber de tous les brins de la carte en O(1). C'est utile par exemple pour démarquer tous les brins à la fin d'un traitement.
AMarkNumber | Un numéro de marque |
Definition at line 342 of file g-map-basic.icc.
Permet de créer un nouveau brin. Cette méthode doit être surchargée dans les classes qui dérivent de CGMapBasic (car un constructeur ne peut être virtuel). N'utilisez pas cette méthode mais la méthode addMapDart() pour insérer un nouveau brin dans la carte.
Reimplemented in GMap3d::CGMapVertex.
Definition at line 45 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::randomizeDarts | ( | ) |
Secoue la liste des brins pour avoir un ordre aléatoire. n'a pas d'effet sur le contenue de la carte mais juste sur l'ordre dans lequel seront parcouru les brins.
Definition at line 105 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::removeAllDarts | ( | ) |
Vide la carte. Tous les brins sont détruits.
Definition at line 148 of file g-map-basic.icc.
Definition at line 70 of file g-map-basic.icc.
Affecte la valeur APointer au champ direct-info[ADirectIndex] du brin ADart.
ADart | Un brin de la carte |
ADirectIndex | Un indice de champ direct-info |
APointer | La valeur à affecter |
Definition at line 293 of file g-map-basic.icc.
Définit le premier brin de la carte.
ADart | Un brin de la carte. |
Definition at line 39 of file g-map-basic.icc.
Permet d'activer la marque AMarkNumber du brin ADart. Cette méthode équivaut à setMarkTo(ADart, AMarkNumber, true).
ADart | Un brin de la carte |
AMarkNumber | Un numéro de marque |
Definition at line 366 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::setMarks | ( | CDart * | ADart, |
const std::bitset< NB_MARKS > & | AMarks | ||
) | const |
Cette méthode permet d'initialiser toutes les marques du brin ADart. AMarks est modifié pour prendre en comte le masque des marques.
ADart | Un brin de la carte |
AMarks | un tableau indiquant l'état de toutes les marques |
Definition at line 313 of file g-map-basic.icc.
Permet de modifier l'état de la marque AMarkNumber du brin ADart. Cette méthode est redirigée sur la méthode équivalente de CDart.
ADart | Un brin de la carte |
AMarkNumber | Un numéro de marque |
AState | Un booléen indiquant s'il faut activer ou désactiver la marque |
Definition at line 358 of file g-map-basic.icc.
Permet d'activer l'utilisation d'une orbite. Lorsqu'une orbite est activée, les plongements qui lui correspondent sont mis à jour lors des opérations de couture et de décousure (celles avec gestion des plongements de la classe CGMap).
AOrbit | Une orbite classique (pas une orbite de bord) |
Definition at line 413 of file g-map-basic.icc.
Délie par alpha-ADimension les brins ADart et alpha-ADimension(ADart2).
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
ADimension | Une dimension entre 0 et 3 inclus. |
Definition at line 467 of file g-map-basic.icc.
Délie par alpha-[i] les brins ADart et alpha-[i](ADart).
ADart | Un brin de la carte |
Definition at line 476 of file g-map-basic.icc.
Definition at line 482 of file g-map-basic.icc.
Definition at line 488 of file g-map-basic.icc.
Definition at line 494 of file g-map-basic.icc.
Permet de désactiver la marque AMarkNumber du brin ADart. Cette méthode équivaut à setMarkTo(ADart, AMarkNumber, false).
ADart | Un brin de la carte |
AMarkNumber | Un numéro de marque |
Definition at line 372 of file g-map-basic.icc.
Permet de désactiver l'utilistion d'une orbite. Lorsqu'une orbite est désactivée, auncun plongement qui lui correspond n'est mis à jour par les opérations de couture et de décousure de la classe CGMap. Initialement, toutes les orbites sont désactivées.
AOrbit | Une orbite classique (pas une orbite de bord) |
Definition at line 419 of file g-map-basic.icc.
|
protected |
Liste des champs directInfo libres.
Definition at line 461 of file g-map-basic.hh.
|
protected |
Premier brin de la liste des brins de la carte.
Definition at line 443 of file g-map-basic.hh.
|
protected |
Liste des marques libres.
Definition at line 452 of file g-map-basic.hh.
|
protected |
Masque des marques (modifié par la méthode negateMaskMark())
Definition at line 449 of file g-map-basic.hh.
|
protected |
Tableau indiquant quels sont les champs direct-info utilisés.
Definition at line 458 of file g-map-basic.hh.
|
protected |
Tableau indiquant quelles sont les marques prises.
Definition at line 446 of file g-map-basic.hh.
|
protected |
Tableau indiquant quelles sont les orbites utilisées.
Definition at line 455 of file g-map-basic.hh.