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

#include <dart.hh>

Inheritance diagram for GMap3d::CDart:
GMap3d::CDartVertex

Public Member Functions

 CDart ()
 
 CDart (const CDart &ADart)
 
 CDart (const std::bitset< NB_MARKS > &AMarks)
 
 ~CDart ()
 
Utilisation des champs direct-info

Une information directe est un pointeur vers une structure de données quelconque. Le nombre d'informations par brin est fixé par la macro NB_DIRECT_INFO (voir fichier kernel-types.hh). Ceci permet un accès aux informations plus rapide qu'en passant par les attributs et les embeddings mais plus coûteux en place mémoire.

void * getDirectInfo (int ADirectIndex) const
 
void setDirectInfo (int ADirectIndex, void *AValue)
 
CEmbeddinggetFirstEmbedding () const
 
void setFirstEmbedding (CEmbedding *AEmbedding)
 
CEmbeddinggetEmbedding (TOrbit AOrbit) const
 
void addEmbedding (CEmbedding *AEmbedding)
 
CEmbeddingremoveEmbedding (CEmbedding *AEmbedding)
 
CEmbeddingremoveEmbedding (TOrbit AOrbit)
 
void deleteEmbedding (CEmbedding *AEmbedding)
 
void deleteEmbedding (TOrbit AOrbit)
 
void mergeEmbedding (CEmbedding *AEmbedding)
 
CAttributegetAttribute (TOrbit AOrbit, TAttributeId AAttribType) const
 
void addAttribute (TOrbit AOrbit, CAttribute *AAttribute)
 
CAttributeremoveAttribute (TOrbit AOrbit, TAttributeId AAttribType)
 
void deleteAttribute (TOrbit AOrbit, TAttributeId AAttribType)
 
void setOrbitUsed (TOrbit AOrbit)
 
bool isOrbitUsed (TOrbit AOrbit) const
 
void unsetOrbitUsed (TOrbit AOrbit)
 
CDartgetNext () const
 
CDartgetPrev () const
 
void setNext (CDart *ADart)
 
void setPrev (CDart *ADart)
 
CDartgetAlpha0 () const
 
CDartgetAlpha1 () const
 
CDartgetAlpha2 () const
 
CDartgetAlpha3 () const
 
CDartgetAlpha (int ADimension) const
 
void setAlpha0 (CDart *ADart)
 
void setAlpha1 (CDart *ADart)
 
void setAlpha2 (CDart *ADart)
 
void setAlpha3 (CDart *ADart)
 
void setAlpha (CDart *ADart, int ADimension)
 
bool isFree0 () const
 
bool isFree1 () const
 
bool isFree2 () const
 
bool isFree3 () const
 
bool isFree (int ADimension) const
 
void setFree0 ()
 
void setFree1 ()
 
void setFree2 ()
 
void setFree3 ()
 
void setFree (int ADimension)
 
bool getMark (int AMarkNumber) const
 
void setMark (int AMarkNumber, bool AValue)
 
std::bitset< NB_MARKSgetMarks () const
 
void setMarks (const std::bitset< NB_MARKS > &AMarks)
 

Detailed Description

Brin d'une 3-G-Carte.

Cette classe contient entre autres les fonctions de manipulation bas niveau des alphas, ainsi que celles de gestion des attributs (classe CEmbedding). Ses méthodes ne doivent pas être directement appelées par un utilisateur lambda : la manipulation des brins se fait toujours à l'aide de la classe de la carte généralisée (CGMapBasic / CGMap).

Author
MOKA TEAM

Definition at line 50 of file dart.hh.

Constructor & Destructor Documentation

INLINE GMap3d::CDart::CDart ( )

Constructeur par défaut

Construit un nouveau brin non marqué dont les alphas sont initialisés à l'identité. Ce constructeur ne doit être appelé que par des utilisateurs avertis (préférer la méthode d'ajout de brin de la classe CGMap).

Returns
Une nouvelle instance de la classe CDart

Definition at line 37 of file dart.icc.

INLINE GMap3d::CDart::CDart ( const CDart ADart)

Constructeur par recopie

Construit un nouveau brin non marqué dont les alphas sont initialisés à l'identité. Seules les marques du brin passé en paramètre sont recopiées.

Returns
Une nouvelle instance de la classe CDart

Definition at line 49 of file dart.icc.

INLINE GMap3d::CDart::CDart ( const std::bitset< NB_MARKS > &  AMarks)

Constructeur avec marquage

Construit un nouveau brin marqué selon la suite de marques AMarks, et dont les alphas sont initialisés à l'identité. Ce constructeur ne doit être appelé que par des utilisateurs avertis (préférer la méthode d'ajout de brin de la classe CGMap).

Parameters
AMarksUn tableau de marques à appliquer au brin créé
Returns
Une nouvelle instance de la classe CDart

Definition at line 63 of file dart.icc.

INLINE GMap3d::CDart::~CDart ( )

Destructeur

Détruit une instance de la classe CDart. Cette méthode est à surcharger lors de la création d'une classe dérivée de CDart.

Definition at line 79 of file dart.icc.

Member Function Documentation

INLINE void GMap3d::CDart::addAttribute ( TOrbit  AOrbit,
CAttribute AAttribute 
)

Ajout d'un attribut sur une orbite donnée

Cette méthode recherche dans la liste des "CEmbedding" la liste d'attributs qui correspond à l'orbite orbit. Si elle est trouvée, l'attribut data y est ajouté. Sinon une liste d'attributs contenant data est créé pour cette orbite.

Parameters
orbitl'orbite de plongement de l'attribut à ajouter
datal'attribut l'attribut data ne peut être nul

Definition at line 431 of file dart.icc.

INLINE void GMap3d::CDart::addEmbedding ( CEmbedding AEmbedding)

Ajout d'une liste d'attributs à l'instance

Cette méthode ajoute la liste AEmbedding à la liste des "CEmbedding".

Parameters
AEmbeddingune liste d'attributs La liste AEmbedding n'est pas vide et aucune liste de même orbite n'existe sur le brin instancié. les champs prev et next de AEmbedding sont a NULL

Definition at line 353 of file dart.icc.

INLINE void GMap3d::CDart::deleteAttribute ( TOrbit  AOrbit,
TAttributeId  AAttribType 
)

Suppression et destruction d'un attribut sur une orbite donnée

Cette méthode supprime l'attribut, de type AAttrType, de la liste des attributs de l'orbite AOrbit, puis le détruit.

Parameters
AOrbitl'orbite de plongement de l'attribut à supprimer
AAttrTypele numéro d'identifiant de son type

Definition at line 486 of file dart.icc.

INLINE void GMap3d::CDart::deleteEmbedding ( CEmbedding AEmbedding)

Suppression puis destruction d'une liste d'attributs donnée dans la liste des "CEmbedding"

Cette méthode ote la liste d'attributs E de la liste des "CEmbedding" avant de la détruire.

Parameters
AEmbeddingla liste d'attributs à détruire E n'est pas vide

Definition at line 406 of file dart.icc.

INLINE void GMap3d::CDart::deleteEmbedding ( TOrbit  AOrbit)

Suppression puis destruction de la liste d'attributs correspondant à une orbite donnée

Cette méthode recherche la liste d'attributs correspondant à l'orbite AOrbit, la retire de la liste des "CEmbedding", et enfin la détruit.

Parameters
AOrbitl'orbite de la liste à détruire

Definition at line 414 of file dart.icc.

INLINE CDart * GMap3d::CDart::getAlpha ( int  ADimension) const

Accesseur de l'involution alphaI

Cette méthode renvoie le brin qui est cousu par alphaI à l'instance, avec AIndex un numéro donné par l'utilisateur.

Parameters
ADimensionle numéro de la liaison à regarder (entre 0 et 3).
Returns
le brin cousu par alphaI.

Definition at line 129 of file dart.icc.

INLINE CDart * GMap3d::CDart::getAlpha0 ( ) const

Accesseur de l'involution alpha0

Cette méthode renvoie le brin qui est cousu par alpha0 à l'instance. Si cette instance n'est pas cousue à un autre brin, la méthode rentourne l'instance elle-même. Préférer tout de même la méthode de même nom de la classe CGMapBasic/CGMap.

Returns
le brin cousu par alpha0.

Definition at line 105 of file dart.icc.

INLINE CDart * GMap3d::CDart::getAlpha1 ( ) const

Accesseur de l'involution alpha1

Même remarque qu'à la méthode précédente.

Returns
le brin cousu par alpha1.

Definition at line 111 of file dart.icc.

INLINE CDart * GMap3d::CDart::getAlpha2 ( ) const

Accesseur de l'involution alpha2

Même remarque qu'à la méthode précédente.

Returns
le brin cousu par alpha2.

Definition at line 117 of file dart.icc.

INLINE CDart * GMap3d::CDart::getAlpha3 ( ) const

Accesseur de l'involution alpha3

Même remarque qu'à la méthode précédente.

Returns
le brin cousu par alpha3.

Definition at line 123 of file dart.icc.

INLINE CAttribute * GMap3d::CDart::getAttribute ( TOrbit  AOrbit,
TAttributeId  AAttribType 
) const

Récupération d'un attribut plongé sur une orbite donnée

Cette méthode trouve dans la liste des "CEmbedding" la liste d'attributs qui correspond à l'orbite orbit, puis y recherche l'attribut de type AAttribType.

Parameters
AOrbitl'orbite de plongement de l'attribut recherché
AAttribTypele numéro d'identifiant de son type
Returns
l'attribut si il est trouvé

Definition at line 420 of file dart.icc.

INLINE void * GMap3d::CDart::getDirectInfo ( int  ADirectIndex) const
Parameters
AIndiceLe numéro de l'information directe à récupérer. L'information directe permet de simuler une orbite vide (ORBIT_SELF) de manière plus rapide mais il n'y a aucune vérification.
Returns
Un pointeur sur l'information recherchée.

0 <= AIndice < NB_DIRECT_INFO

Definition at line 242 of file dart.icc.

INLINE CEmbedding * GMap3d::CDart::getEmbedding ( TOrbit  AOrbit) const

Récupération de la liste d'attributs plongés sur une orbite donnée

Cette méthode recherche dans la liste des "CEmbedding" celui qui correspond à l'orbite orbit.

Parameters
AOrbitl'orbite correspondant à la liste d'attributs recherchés
Returns
la liste d'attributs si elle est trouvée

Definition at line 334 of file dart.icc.

INLINE CEmbedding * GMap3d::CDart::getFirstEmbedding ( ) const

Récupération du premier élément de la liste des "CEmbedding"

Un "CEmbedding" est une liste d'attributs appartenant à une même orbite, dont le brin est propriétaire (voir de plus amples explications avec la clase CEmbedding). Chaque liste d'attributs d'une même orbite est elle-même chaînée avec les autres listes d'un même brin. Cette méthode retourne le premier élément (un "CEmbedding") de la liste chaînée des listes d'attributs.

Returns
La première liste d'attributs

Definition at line 93 of file dart.icc.

INLINE bool GMap3d::CDart::getMark ( int  AMarkNumber) const

Test permettant de savoir si un brin est marqué.

Cette méthode renvoie VRAI si le brin possède la marque i. Le nombre de marques par brin est fixé par la variable NB_MARKS du fichier dart.hpp.

Parameters
iLe numéro de la marque à tester (entre 0 et NB_MARKS-1).
Returns
booléen signifiant si le brin est marqué. 0 <= i < NB_MARKS

Definition at line 258 of file dart.icc.

INLINE std::bitset< NB_MARKS > GMap3d::CDart::getMarks ( ) const

Méthode d'accès à l'ensemble des marques d'un brin.

Cette méthode récupère toutes les marques d'un brin.

Returns
l'ensemble de marques (de type bitset)

Definition at line 274 of file dart.icc.

INLINE CDart * GMap3d::CDart::getNext ( ) const

Récupération du brin suivant dans la liste

La liste chaînée de brins permet à la carte généralisée de passer en revue l'ensemble des brins qu'elle contient. Cette méthode permet de se déplacer au prochain brin. Elle ne doit pas être utilisé par un utilisateur non averti (préférer un parcours : dynamic ou static CCoverageAll).

Returns
le brin de la liste chaînée qui suit le brin instancié.

Definition at line 322 of file dart.icc.

INLINE CDart * GMap3d::CDart::getPrev ( ) const

Récupération du brin précédent dans la liste

Même remarque que précédemment.

Returns
le brin de la liste chaînée qui précéde le brin instancié.

Definition at line 310 of file dart.icc.

INLINE bool GMap3d::CDart::isFree ( int  ADimension) const

Test permettant de savoir si un brin est libre (non cousu) par alphaI.

Cette méthode teste si l'instance est cousu à lui-même par alphaI, avec i la dimension de la liaison à regarder. Elle renvoie VRAI si c'est le cas, FAUX si l'instance est cousu à un autre brin.

Parameters
ADimensionla dimension de la liaison à tester.
Returns
un booléen signifiant si l'instance est libre par alpha3.

Definition at line 202 of file dart.icc.

INLINE bool GMap3d::CDart::isFree0 ( ) const

Test permettant de savoir si un brin est libre (non cousu) par alpha0.

Cette méthode teste si l'instance est cousu à lui-même par alpha0. Elle renvoie VRAI si c'est le cas, FAUX si le brin instancié est cousu à un autre brin.

Returns
un booléen signifiant si l'instance est libre par alpha0.

Definition at line 178 of file dart.icc.

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

Test permettant de savoir si un brin est libre (non cousu) par alpha1.

Même remarque que précédemment.

Returns
un booléen signifiant si le brin instancié est libre par alpha1.

Definition at line 184 of file dart.icc.

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

Test permettant de savoir si un brin est libre (non cousu) par alpha2.

Même remarque que précédemment.

Returns
un booléen signifiant si le brin instancié est libre par alpha2.

Definition at line 190 of file dart.icc.

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

Test permettant de savoir si un brin est libre (non cousu) par alpha3.

Même remarque que précédemment.

Returns
un booléen signifiant si le brin instancié est libre par alpha3.

Definition at line 196 of file dart.icc.

INLINE bool GMap3d::CDart::isOrbitUsed ( TOrbit  AOrbit) const

Méthode testant si une orbite est utilisée sur le brin

Returns
le booléen répondant au test ORBIT_SELF <= AOrbit <= ORBIT0123

Definition at line 302 of file dart.icc.

INLINE void GMap3d::CDart::mergeEmbedding ( CEmbedding AEmbedding)

Ajout, avec fusion le cas échéant, d'une liste d'attributs à l'instance

Cette méthode vérifie si une liste d'attributs de même orbite existe déjà sur le brin instancié. Si ce n'est pas le cas, la liste E est simplement ajoutée. Sinon les attributs de E sont ajoutés à la liste déjà présente.

AEmbedding n'est pas vide

Definition at line 447 of file dart.icc.

INLINE CAttribute * GMap3d::CDart::removeAttribute ( TOrbit  AOrbit,
TAttributeId  AAttribType 
)

Suppression d'un attribut de la liste des attributs d'une orbite donnée

Cette méthode recherche la liste d'attributs correspondant à l'orbite orbit, et si elle existe, enlève l'attribut de type typeAttr qu'elle contient. Si la liste d'attributs est alors vide, elle est supprimée de la liste des "CEmbedding".

Parameters
orbitl'orbite de plongement de l'attribut à supprimer
attrTypele numéro d'identifiant de son type
Returns
l'attribut enlevé

Definition at line 466 of file dart.icc.

INLINE CEmbedding * GMap3d::CDart::removeEmbedding ( CEmbedding AEmbedding)

Suppression d'une liste d'attributs donnée dans la liste des "CEmbedding" de l'instance

Cette méthode ote la liste d'attributs E de la liste des "CEmbedding".

Parameters
AEmbeddingla liste d'attributs à enlever
Returns
la liste AEmbedding

AEmbedding n'est pas vide

Definition at line 372 of file dart.icc.

INLINE CEmbedding * GMap3d::CDart::removeEmbedding ( TOrbit  AOrbit)

Suppression de la liste d'attributs correspondant à une orbite donnée dans les "CEmbedding"

Cette méthode recherche la liste d'attributs correspondant à l'orbite orbit, et la supprime de la liste des "CEmbedding".

Parameters
AOrbitl'orbite de la liste à enlever
Returns
la liste correspondante

Definition at line 394 of file dart.icc.

INLINE void GMap3d::CDart::setAlpha ( CDart ADart,
int  ADimension 
)

Définition de l'involution alphaI

Même remarque que précédemment (préférer sew, voire dartSew ou topoSew, et en dernier recours linkAlpha).

Parameters
ADartle brin à lier par alphaI à l'instance.
ADimensionle dimension de la liaison alpha à considérer.

Definition at line 169 of file dart.icc.

INLINE void GMap3d::CDart::setAlpha0 ( CDart ADart)

Définition de l'involution alpha0

Cette méthode permet de lier un brin à l'instance par alpha0. Seule la classe CGMapBasic/CGMap peut l'utiliser (préférer pour les coutures les méthodes * de la classe CGMapBasic/CGMap telles que sew0, voire dartSew0 ou topoSew0, et en dernière solution linkAlpha0).

Parameters
lebrin à lier par alpha0 à l'instance.

Definition at line 137 of file dart.icc.

INLINE void GMap3d::CDart::setAlpha1 ( CDart ADart)

Définition de l'involution alpha1

Même remarque que précédemment.

Parameters
Dle brin à lier par alpha1 à l'instance.

Definition at line 145 of file dart.icc.

INLINE void GMap3d::CDart::setAlpha2 ( CDart ADart)

Définition de l'involution alpha2

Même remarque que précédemment.

Parameters
Dle brin à lier par alpha2 à l'instance.

Definition at line 153 of file dart.icc.

INLINE void GMap3d::CDart::setAlpha3 ( CDart ADart)

Définition de l'involution alpha3

Même remarque que précédemment.

Parameters
Dle brin à lier par alpha3 à l'instance.

Definition at line 161 of file dart.icc.

INLINE void GMap3d::CDart::setDirectInfo ( int  ADirectIndex,
void *  AValue 
)
Parameters
AIndiceLe numéro de champ à modifier
APointerLa valeur à affecter

0 <= AIndice < NB_DIRECT_INFO

Definition at line 250 of file dart.icc.

INLINE void GMap3d::CDart::setFirstEmbedding ( CEmbedding AEmbedding)

Définition du premier élément de la liste des "CEmbedding"

Cette méthode pose un "CEmbedding" comme étant le premier élément de la liste des "CEmbedding", sans aucune vérification d'existence du premier "CEmbedding". Cette méthode ne doit être utilisée que par la carte généralisée.

Parameters
AEmbeddingla liste d'attributs à placer en première position.

Definition at line 99 of file dart.icc.

INLINE void GMap3d::CDart::setFree ( int  ADimension)

Libération pour le brin instancié de son involution alphaI

Cette méthode coud pour alphaI l'instance à elle-même. Le brin devient libre par alphaI, mais aucune vérification de la cohérence de la carte généralisée n'est faite. Préférer donc les méthodes de la classe CGMapBasic/CGMap telles que unsew, voire dartUnsew ou topoUnsew, et en dernier ressort unlinkAlpha.

Parameters
ADimensionle dimension de la liaison alphaI à considérer.

Definition at line 234 of file dart.icc.

INLINE void GMap3d::CDart::setFree0 ( )

Libération de l'involution alpha0 de l'instance.

Cette méthode coud pour alpha0 l'instance à elle-même. Le brin devient libre par alpha0, mais aucune vérification de la cohérence de la carte généralisée n'est faite. Préférer donc les méthodes de la classe CGMapBasic/CGMap telles que unsew0, voire dartUnsew0 ou topoUnsew0, et en dernier ressort unlinkAlpha0.

Definition at line 210 of file dart.icc.

INLINE void GMap3d::CDart::setFree1 ( )

Libération de l'involution alpha1 de l'instance.

Même remarque que précédemment.

Definition at line 216 of file dart.icc.

INLINE void GMap3d::CDart::setFree2 ( )

Libération de l'involution alpha2 de l'instance.

Même remarque que précédemment.

Definition at line 222 of file dart.icc.

INLINE void GMap3d::CDart::setFree3 ( )

Libération de l'involution alpha3 de l'instance.

Même remarque que précédemment.

Definition at line 228 of file dart.icc.

INLINE void GMap3d::CDart::setMark ( int  AMarkNumber,
bool  AValue 
)

Méthode définissant si un brin est marqué ou non.

Cette méthode définit la i-ème marque selon le booléen value. Si value est à VRAI, le brin sera marqué par la marque i.

Parameters
iLe numéro de la marque à changer (entre 0 et NB_MARKS-1).
valueLa valeur booléenne de la marque. 0 <= i < NB_MARKS

Definition at line 266 of file dart.icc.

INLINE void GMap3d::CDart::setMarks ( const std::bitset< NB_MARKS > &  AMarks)

Méthode définissant en une seule fois l'ensemble des marques d'un brin.

Cette méthode définit chacune des marques d'un brin suivant la suite de valeurs données par marks.

Parameters
marksl'ensemble des valeurs à prendre par les marques du brin

Definition at line 280 of file dart.icc.

INLINE void GMap3d::CDart::setNext ( CDart ADart)

Définition du brin suivant dans la liste

Cette méthode permet de définir quel est le brin suivant l'instance dans la liste. Cette méthode ne doit pas être directement utilisée, elle permet à la carte généralisée d'ajouter un brin dans la liste (préférer addMapDart de la classe CGMapBasic).

Parameters
lebrin de la liste chaînée qui suit l'instance.

Definition at line 328 of file dart.icc.

INLINE void GMap3d::CDart::setOrbitUsed ( TOrbit  AOrbit)

Méthode précisant que la présence d'une orbite donnée dans la liste des "CEmbedding" de l'instance.

Cette méthode définit comme utilisée l'orbite orbit sur le brin. Aucune vérification supplémentaire n'est effectué sur la cohérence des plongements, cette méthode étant une méthode de premier niveau.

Parameters
AOrbitl'orbite à utiliser ORBIT_SELF <= AOrbit <= ORBIT0123

Definition at line 286 of file dart.icc.

INLINE void GMap3d::CDart::setPrev ( CDart ADart)

Définition du brin précédent dans la liste

Même remarque que précédemment.

Parameters
lebrin de la liste chaînée qui précéde l'instance.

Definition at line 316 of file dart.icc.

INLINE void GMap3d::CDart::unsetOrbitUsed ( TOrbit  AOrbit)

Méthode libérant l'utilisation d'une orbite donnée sur le brin instancié

Aucune vérification supplémentaire n'est effectué sur la cohérence des plongements.

ORBIT_SELF <= AOrbit && AOrbit <= ORBIT0123

Definition at line 294 of file dart.icc.


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