#include <g-map-basic.hh>
Inherited by GMap3d::CGMap.
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 () | |
virtual | ~CGMapBasic () |
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 Attributes | |
CDart * | FFirstDart |
std::bitset< NB_MARKS > | FUsedMarks |
std::bitset< NB_MARKS > | FMaskMarks |
int | FMarks [NB_MARKS] |
std::bitset< 16 > | FUsedOrbits |
std::bitset< NB_DIRECT_INFO > | FUsedDirectInfo |
int | FDirectInfos [NB_DIRECT_INFO] |
Private Attributes | |
int | FNbUsedMarks |
int | FNbUsedDirectInfos |
int | FMaxNbUsedMarks |
int | FMaxNbUsedDirectInfos |
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 | ( | ) |
CGMapBasic::~CGMapBasic | ( | ) | [virtual] |
INLINE CDart * GMap3d::CGMapBasic::addMapDart | ( | ) |
Permet de créer un nouveau brin (avec la méthode addDart()) et de l'insérer dans la carte.
Reimplemented in GMap3d::CGMapVertex.
Definition at line 57 of file g-map-basic.icc.
ADart | Un brin de la carte | |
ADimension | Une dimension comprise entre 0 et 3 inclus |
Definition at line 221 of file g-map-basic.icc.
ADart | Un brin de la carte |
Definition at line 227 of file g-map-basic.icc.
Definition at line 233 of file g-map-basic.icc.
Definition at line 239 of file g-map-basic.icc.
Definition at line 245 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::delDart | ( | CDart * | ADart | ) | [virtual] |
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.
INLINE void GMap3d::CGMapBasic::delMapDart | ( | CDart * | ADart | ) |
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 76 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::empty | ( | ) | [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 156 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 268 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 381 of file g-map-basic.icc.
INLINE void * GMap3d::CGMapBasic::getDirectInfo | ( | CDart * | ADart, | |
int | ADirectIndex | |||
) | const |
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 278 of file g-map-basic.icc.
INLINE CDart * GMap3d::CGMapBasic::getFirstDart | ( | ) | const |
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.
INLINE std::bitset< NB_MARKS > GMap3d::CGMapBasic::getMarks | ( | CDart * | ADart | ) | const |
Retourne l'état des marques du brin, en tenant compte du masque des marques.
ADart | Un brin de la carte |
Definition at line 312 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 294 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 300 of file g-map-basic.icc.
INLINE int GMap3d::CGMapBasic::getNewDirectInfo | ( | ) |
Réserve un champ direct info libre.
Definition at line 251 of file g-map-basic.icc.
INLINE int GMap3d::CGMapBasic::getNewMark | ( | ) |
Réserve une marque inutilisée de la carte.
Definition at line 318 of file g-map-basic.icc.
INLINE bool GMap3d::CGMapBasic::isFree | ( | const CDart * | ADart, | |
int | ADimension | |||
) | const |
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 191 of file g-map-basic.icc.
INLINE bool GMap3d::CGMapBasic::isFree0 | ( | const CDart * | ADart | ) | const |
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 197 of file g-map-basic.icc.
INLINE bool GMap3d::CGMapBasic::isFree1 | ( | const CDart * | ADart | ) | const |
Definition at line 203 of file g-map-basic.icc.
INLINE bool GMap3d::CGMapBasic::isFree2 | ( | const CDart * | ADart | ) | const |
Definition at line 209 of file g-map-basic.icc.
INLINE bool GMap3d::CGMapBasic::isFree3 | ( | const CDart * | ADart | ) | const |
Definition at line 215 of file g-map-basic.icc.
INLINE bool GMap3d::CGMapBasic::isMarked | ( | const CDart * | ADart, | |
int | AMarkNumber | |||
) | const |
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 343 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 400 of file g-map-basic.icc.
INLINE bool GMap3d::CGMapBasic::isOrbitUsed | ( | TOrbit | AOrbit | ) | const |
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 394 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 371 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 427 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 436 of file g-map-basic.icc.
Definition at line 442 of file g-map-basic.icc.
Definition at line 448 of file g-map-basic.icc.
Definition at line 454 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 335 of file g-map-basic.icc.
INLINE CDart * GMap3d::CGMapBasic::newDart | ( | ) | [virtual] |
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 98 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::removeAllDarts | ( | ) |
Vide la carte. Tous les brins sont détruits.
Definition at line 141 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::setDirectInfo | ( | CDart * | ADart, | |
int | ADirectIndex, | |||
void * | APointer | |||
) |
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 286 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::setFirstDart | ( | CDart * | ADart | ) |
Définit le premier brin de la carte.
ADart | Un brin de la carte. |
Definition at line 39 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::setMark | ( | CDart * | ADart, | |
int | AMarkNumber | |||
) |
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 359 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 306 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::setMarkTo | ( | CDart * | ADart, | |
int | AMarkNumber, | |||
bool | AState | |||
) |
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 351 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::setOrbitUsed | ( | TOrbit | AOrbit | ) |
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 406 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::unlinkAlpha | ( | CDart * | ADart, | |
int | ADimension | |||
) |
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 460 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::unlinkAlpha0 | ( | CDart * | ADart | ) |
Délie par alpha-[i] les brins ADart et alpha-[i](ADart).
ADart | Un brin de la carte |
Definition at line 469 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::unlinkAlpha1 | ( | CDart * | ADart | ) |
Definition at line 475 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::unlinkAlpha2 | ( | CDart * | ADart | ) |
Definition at line 481 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::unlinkAlpha3 | ( | CDart * | ADart | ) |
Definition at line 487 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::unsetMark | ( | CDart * | ADart, | |
int | AMarkNumber | |||
) |
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 365 of file g-map-basic.icc.
INLINE void GMap3d::CGMapBasic::unsetOrbitUsed | ( | TOrbit | AOrbit | ) |
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 412 of file g-map-basic.icc.
int GMap3d::CGMapBasic::FDirectInfos[NB_DIRECT_INFO] [protected] |
CDart* GMap3d::CGMapBasic::FFirstDart [protected] |
int GMap3d::CGMapBasic::FMarks[NB_MARKS] [protected] |
std::bitset<NB_MARKS> GMap3d::CGMapBasic::FMaskMarks [protected] |
Masque des marques (modifié par la méthode negateMaskMark()).
Definition at line 449 of file g-map-basic.hh.
int GMap3d::CGMapBasic::FMaxNbUsedDirectInfos [private] |
Nombre maximum de champs directInfo utilisés simultanément.
Definition at line 480 of file g-map-basic.hh.
int GMap3d::CGMapBasic::FMaxNbUsedMarks [private] |
int GMap3d::CGMapBasic::FNbUsedDirectInfos [private] |
int GMap3d::CGMapBasic::FNbUsedMarks [private] |
std::bitset<NB_DIRECT_INFO> GMap3d::CGMapBasic::FUsedDirectInfo [protected] |
Tableau indiquant quels sont les champs direct-info utilisés.
Definition at line 458 of file g-map-basic.hh.
std::bitset<NB_MARKS> GMap3d::CGMapBasic::FUsedMarks [protected] |
std::bitset<16> GMap3d::CGMapBasic::FUsedOrbits [protected] |
Tableau indiquant quelles sont les orbites utilisées.
Definition at line 455 of file g-map-basic.hh.