Moka kernel
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GMap3d::CGMapBasic Class Reference

#include <g-map-basic.hh>

Inheritance diagram for GMap3d::CGMapBasic:
GMap3d::CGMap GMap3d::CGMapGeneric GMap3d::CGMapVertex

Public Member Functions

bool isFree (const CDart *ADart, int ADimension) const
 
CDartalpha (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)
 
CDartgetFirstDart () 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_MARKSgetMarks (CDart *ADart) const
 
bool isOrbitUsed (TOrbit AOrbit) const
 
void setOrbitUsed (TOrbit AOrbit)
 
void unsetOrbitUsed (TOrbit AOrbit)
 
bool isOrbitUsed (CDart *ADart, TOrbit AOrbit) const
 
virtual CDartnewDart ()
 
virtual void delDart (CDart *ADart)
 
CDartaddMapDart ()
 
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
 
CDartalpha0 (const CDart *ADart) const
 
CDartalpha1 (const CDart *ADart) const
 
CDartalpha2 (const CDart *ADart) const
 
CDartalpha3 (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

CDartFFirstDart
 Premier brin de la liste des brins de la carte.
 
std::bitset< NB_MARKSFUsedMarks
 Tableau indiquant quelles sont les marques prises.
 
std::bitset< NB_MARKSFMaskMarks
 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_INFOFUsedDirectInfo
 Tableau indiquant quels sont les champs direct-info utilisés.
 
int FDirectInfos [NB_DIRECT_INFO]
 Liste des champs directInfo libres.
 

Detailed Description

Cette classe regroupe uniquement des méthodes de base :

  • pour la gestion des marques booléennes,
  • pour la gestion des champs direct-info,
  • pour lier/délier deux brins entre eux, sans vérification des contraintes d'intégrité.

Les méthodes permettant d'explorer la carte et de gérer les plongements sont définies dans la classe CGMap.

Author
MOKA TEAM

Definition at line 49 of file g-map-basic.hh.

Constructor & Destructor Documentation

INLINE GMap3d::CGMapBasic::CGMapBasic ( )

Constructeur.

Definition at line 191 of file g-map-basic.icc.

CGMapBasic::~CGMapBasic ( )
virtual

Destructeur.

Definition at line 29 of file g-map-basic.cc.

Member Function Documentation

INLINE void GMap3d::CGMapBasic::addDartInList ( CDart ADart)
protected

Definition at line 57 of file g-map-basic.icc.

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.

Returns
Le brin inséré

Definition at line 88 of file g-map-basic.icc.

INLINE CDart * GMap3d::CGMapBasic::alpha ( const CDart ADart,
int  ADimension 
) const
Parameters
ADartUn brin de la carte
ADimensionUne dimension comprise entre 0 et 3 inclus
Returns
l'image par alpha-ADimension de ADart.

Definition at line 228 of file g-map-basic.icc.

INLINE CDart * GMap3d::CGMapBasic::alpha0 ( const CDart ADart) const
Parameters
ADartUn brin de la carte
Returns
L'image par alpha-i de ADart

Definition at line 234 of file g-map-basic.icc.

INLINE CDart * GMap3d::CGMapBasic::alpha1 ( const CDart ADart) const

Definition at line 240 of file g-map-basic.icc.

INLINE CDart * GMap3d::CGMapBasic::alpha2 ( const CDart ADart) const

Definition at line 246 of file g-map-basic.icc.

INLINE CDart * GMap3d::CGMapBasic::alpha3 ( const CDart ADart) const

Definition at line 252 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.

Parameters
ADartUn 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().

Parameters
ADartLe brin à supprimer

Definition at line 97 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 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.

Parameters
ADirectIndexUn 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().

Parameters
AMarkNumber

Definition at line 388 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.

Parameters
ADartUn brin de la carte
ADirectIndexUn indice de champ direct-info
Returns
Un pointeur

Definition at line 285 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.

Returns
Le premier brin 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.

Parameters
ADartUn brin de la carte
Returns
L'état des marques du brin

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().

Parameters
AMarkNumberUn numéro de marque
Returns
Un booléen indiquant l'état de la 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.

Returns
Le nombre de marques utilisées

Definition at line 307 of file g-map-basic.icc.

INLINE int GMap3d::CGMapBasic::getNewDirectInfo ( )

Réserve un champ direct info libre.

Returns
L'indice du champ direct-info réservé.

Definition at line 258 of file g-map-basic.icc.

INLINE int GMap3d::CGMapBasic::getNewMark ( )

Réserve une marque inutilisée de la carte.

Returns
Un numéro de marque

Definition at line 325 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.

Parameters
ADartUn brin de la carte
ADimensionUne dimension comprise entre 0 et 3 inclus

Definition at line 198 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.

Parameters
ADartUn brin de la carte

Definition at line 204 of file g-map-basic.icc.

INLINE bool GMap3d::CGMapBasic::isFree1 ( const CDart ADart) const

Definition at line 210 of file g-map-basic.icc.

INLINE bool GMap3d::CGMapBasic::isFree2 ( const CDart ADart) const

Definition at line 216 of file g-map-basic.icc.

INLINE bool GMap3d::CGMapBasic::isFree3 ( const CDart ADart) const

Definition at line 222 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.

Parameters
ADartUn brin de la carte
AMarkNumberUn numéro de marque
Returns
Un booléen indiquant l'état de la marque AMarkNumber du brin ADart.

Definition at line 350 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.

Parameters
AOrbitUne des 16 orbites classiques (pas les orbites de bord)
Returns
Un booléen indiquant si l'orbite est utilisée

Definition at line 401 of file g-map-basic.icc.

INLINE bool GMap3d::CGMapBasic::isOrbitUsed ( CDart ADart,
TOrbit  AOrbit 
) const

Permet de savoir si un brin contient un plongement sans avoir à parcourir la liste de ses attributs.

Parameters
ADartUn brin de la carte
AOrbitUne des 16 orbites classiques
Returns
Un booléen indiquant si l'orbite AOrbit du brin ADart contient un plongement

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.

Parameters
AMarkNumberUn numéro de marque
Returns
Un booléen indiquant si tous les brins de la carte sont démarqués

Definition at line 378 of file g-map-basic.icc.

INLINE void GMap3d::CGMapBasic::linkAlpha ( CDart ADart1,
CDart ADart2,
int  ADimension 
)

Lie par alpha-ADimension les brins ADart1 et ADart2.

Parameters
ADart1Un brin de la carte
ADart2Un brin de la carte
ADimensionUne dimension entre 0 et 3 inclus.

Definition at line 434 of file g-map-basic.icc.

INLINE void GMap3d::CGMapBasic::linkAlpha0 ( CDart ADart1,
CDart ADart2 
)

Lie par alpha-[i] les brins ADart1 et ADart2.

Parameters
ADart1Un brin de la carte
ADart2Un brin de la carte

Definition at line 443 of file g-map-basic.icc.

INLINE void GMap3d::CGMapBasic::linkAlpha1 ( CDart ADart1,
CDart ADart2 
)

Definition at line 449 of file g-map-basic.icc.

INLINE void GMap3d::CGMapBasic::linkAlpha2 ( CDart ADart1,
CDart ADart2 
)

Definition at line 455 of file g-map-basic.icc.

INLINE void GMap3d::CGMapBasic::linkAlpha3 ( CDart ADart1,
CDart ADart2 
)

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.

Parameters
AMarkNumberUn numéro de marque

Definition at line 342 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.

Returns
Un nouveau brin de 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.

INLINE void GMap3d::CGMapBasic::removeDartInList ( CDart ADart)
protected

Definition at line 70 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.

Parameters
ADartUn brin de la carte
ADirectIndexUn indice de champ direct-info
APointerLa valeur à affecter

Definition at line 293 of file g-map-basic.icc.

INLINE void GMap3d::CGMapBasic::setFirstDart ( CDart ADart)

Définit le premier brin de la carte.

Parameters
ADartUn 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).

Parameters
ADartUn brin de la carte
AMarkNumberUn 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.

Parameters
ADartUn brin de la carte
AMarksun tableau indiquant l'état de toutes les marques

Definition at line 313 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.

Parameters
ADartUn brin de la carte
AMarkNumberUn numéro de marque
AStateUn booléen indiquant s'il faut activer ou désactiver la marque

Definition at line 358 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).

Parameters
AOrbitUne orbite classique (pas une orbite de bord)

Definition at line 413 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).

Parameters
ADart1Un brin de la carte
ADart2Un brin de la carte
ADimensionUne dimension entre 0 et 3 inclus.

Definition at line 467 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).

Parameters
ADartUn brin de la carte

Definition at line 476 of file g-map-basic.icc.

INLINE void GMap3d::CGMapBasic::unlinkAlpha1 ( CDart ADart)

Definition at line 482 of file g-map-basic.icc.

INLINE void GMap3d::CGMapBasic::unlinkAlpha2 ( CDart ADart)

Definition at line 488 of file g-map-basic.icc.

INLINE void GMap3d::CGMapBasic::unlinkAlpha3 ( CDart ADart)

Definition at line 494 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).

Parameters
ADartUn brin de la carte
AMarkNumberUn numéro de marque

Definition at line 372 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.

Parameters
AOrbitUne orbite classique (pas une orbite de bord)

Definition at line 419 of file g-map-basic.icc.

Member Data Documentation

int GMap3d::CGMapBasic::FDirectInfos[NB_DIRECT_INFO]
protected

Liste des champs directInfo libres.

Definition at line 461 of file g-map-basic.hh.

CDart* GMap3d::CGMapBasic::FFirstDart
protected

Premier brin de la liste des brins de la carte.

Definition at line 443 of file g-map-basic.hh.

int GMap3d::CGMapBasic::FMarks[NB_MARKS]
protected

Liste des marques libres.

Definition at line 452 of file g-map-basic.hh.

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.

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

Tableau indiquant quelles sont les marques prises.

Definition at line 446 of file g-map-basic.hh.

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.


The documentation for this class was generated from the following files: