#include <g-map.hh>
Inherits GMap3d::CGMapBasic.
Inherited by GMap3d::CGMapGeneric.
Public Member Functions | |
bool | canSew (CDart *ADart1, CDart *ADart2, int ADimension) |
void | sew (CDart *ADart1, CDart *ADart2, int ADimension) |
void | unsew (CDart *ADart, int ADimension) |
CGMap () | |
virtual | ~CGMap () |
bool | canSew0 (CDart *ADart1, CDart *ADart2) |
bool | canSew1 (CDart *ADart1, CDart *ADart2) |
bool | canSew2 (CDart *ADart1, CDart *ADart2) |
bool | canSew3 (CDart *ADart1, CDart *ADart2) |
void | sew0 (CDart *ADart1, CDart *ADart2) |
void | sew1 (CDart *ADart1, CDart *ADart2) |
void | sew2 (CDart *ADart1, CDart *ADart2) |
void | sew3 (CDart *ADart1, CDart *ADart2) |
void | unsew0 (CDart *ADart) |
void | unsew1 (CDart *ADart) |
void | unsew2 (CDart *ADart) |
void | unsew3 (CDart *ADart) |
Méthodes pour récupérer des parcours étant donné un brin et une | |
CCoverage * | getDynamicCoverage (const CDart *ADart, TOrbit AOrbit) |
CCoverage * | getStaticCoverage (const CDart *ADart, TOrbit AOrbit) |
CCoverage * | getMultiDynamicCoverage (const CDart *ADart, TOrbit AOrbit) |
CCoverage * | getBasicDynamicCoverage (const CDart *ADart, TOrbit AOrbit, int AMarkNumber) |
Méthodes pour récupérer des parcours étant donné un brin et une | |
CAttribute * | getAttribute (const CDart *ADart, TOrbit, TAttributeId) |
void | addAttribute (CDart *ADart, TOrbit, CAttribute *) |
CAttribute * | removeAttribute (CDart *ADart, TOrbit, TAttributeId) |
void | deleteAttribute (CDart *ADart, TOrbit, TAttributeId) |
bool | isSameOrbit (CDart *ADart1, CDart *ADart2, TOrbit AOrbit) |
CDart * | getEmbeddingOwner (const CDart *ADart, TOrbit AOrbit) |
Méthodes "non-sûres" pour la coutures. Le résultat de ces | |
méthodes entraîne l'obtention d'un objet éventuellement non valide (une 3-G-carte ne vérifiant pas les contraintes sur les alpha, ou plusieurs attributs sur une même orbite...). La responsabilité de la validité est laissé à l'appelant. Ces méthodes servent malgré tout pour optimiser des traitements particulier. A UTILISER AVEC ATTENTION. | |
void | dartSew0 (CDart *, CDart *ADart2) |
void | dartSew1 (CDart *, CDart *ADart2) |
void | dartSew2 (CDart *, CDart *ADart2) |
void | dartSew3 (CDart *, CDart *ADart2) |
void | dartSew (CDart *, CDart *ADart2, int ADimension) |
void | dartUnsew0 (CDart *ADart) |
void | dartUnsew1 (CDart *ADart) |
void | dartUnsew2 (CDart *ADart) |
void | dartUnsew3 (CDart *ADart) |
void | dartUnsew (CDart *ADart, int ADimension) |
void | topoSew0 (CDart *ADart1, CDart *ADart2) |
void | topoSew1 (CDart *ADart1, CDart *ADart2) |
void | topoSew2 (CDart *ADart1, CDart *ADart2) |
void | topoSew3 (CDart *ADart1, CDart *ADart2) |
void | topoSew (CDart *ADart1, CDart *ADart2, int ADimension) |
void | topoUnsew0 (CDart *ADart) |
void | topoUnsew1 (CDart *ADart) |
void | topoUnsew2 (CDart *ADart) |
void | topoUnsew3 (CDart *ADart) |
void | topoUnsew (CDart *ADart, int ADimension) |
Private Member Functions | |
bool | isValidOrbit (CDart *ADart, TOrbit AOrbit) |
void | groupAttributes (CDart *ADart1, CDart *ADart2, TMask16) |
void | duplicateAttributes (CDart *ADart1, CDart *ADart2, TMask16) |
bool | isSameOrbit (CDart *ADart1, CDart *ADart2, TOrbit AOrbit, CDart *&ADartEmbeddingOwner1) |
Definition at line 49 of file g-map.hh.
INLINE void GMap3d::CGMap::addAttribute | ( | CDart * | ADart, | |
TOrbit | orbit, | |||
CAttribute * | A | |||
) |
[i]-couture géométrique des 2 brins uniquement (et pas de toute l'orbite contrairement à sew[i]). Les attributs sont mis à jour lorsque c'est nécessaire (quand deux orbites sont fusionnées et que chacune avait un attribut).
ADart1 | et ADart2 Deux brins |
INLINE void GMap3d::CGMap::dartUnsew | ( | CDart * | ADart, | |
int | ADimension | |||
) |
INLINE void GMap3d::CGMap::dartUnsew0 | ( | CDart * | ADart | ) |
INLINE void GMap3d::CGMap::deleteAttribute | ( | CDart * | ADart, | |
TOrbit | orbit, | |||
TAttributeId | typeAttr | |||
) |
INLINE void GMap3d::CGMap::duplicateAttributes | ( | CDart * | ADart1, | |
CDart * | ADart2, | |||
TMask16 | AMask | |||
) | [private] |
Met à jour tout les attributs des deux brins lorsque c'est nécessaire. Cette méthode est appelée après une opération de décousure. Elle teste pour chaque orbite qui ont été concernés par la décousure, s'il existe un embedding d'un coté et pas de l'autre. Si c'est le cas, l'embedding existant est dupliqué (méthode copy de la classe CEmbedding) et ajouté du coté qui n'en avait pas.
ADart1 | et ADart2 Deux brins | |
AMask | un masque de 16 booléens. |
INLINE CAttribute * GMap3d::CGMap::getAttribute | ( | const CDart * | ADart, | |
TOrbit | orbit, | |||
TAttributeId | typeAttr | |||
) |
INLINE void GMap3d::CGMap::groupAttributes | ( | CDart * | ADart1, | |
CDart * | ADart2, | |||
TMask16 | AMask | |||
) | [private] |
Met à jour tout les attributs des deux brins lorsque c'est nécessaire. Cette méthode est appelée avant une opération de couture. Elle teste pour chaque orbite qui vont être regroupé par la couture, s'il existe un embedding à la fois pour l'orbite contenant ADart1 et celle contenant ADart2. Si c'est le cas, l'embedding associé à ADart1 est supprimée, et l'embedding de ADart2 récupère les éventuels attributs qu'il n'avait pas déjà. Les autres attributs sont détruits.
ADart1 | et ADart2 Deux brins | |
AMask | un masque de 16 booléens. |
INLINE bool GMap3d::CGMap::isSameOrbit | ( | CDart * | ADart1, | |
CDart * | ADart2, | |||
TOrbit | AOrbit, | |||
CDart *& | ADartEmbeddingOwner1 | |||
) | [private] |
Optimisation pour les méthodes {duplicate/group}Attributes
Méthode équivalente à isSameOrbit. Le paramètre ADartEmbeddingOwner1 contient le propriétaire de l'embedding si celui-ci est trouvé lors du parcours, sinon NULL. Méthode équivalente à : if (isSameOrbit(ADart1,ADart2)) ADartEmbeddingOwner1=getEmbeddingOwner(ADart1,AOrbit); mais en un seul parcours de l'orbite.
Teste si l'orbite <AOrbit>(ADart) est localement valide, c'est-à-dire si les compositions d'involution contenues dans AOrbit sont vérifiées pour le brin ADart (attention, la vérification n'est pas faite pour toute l'orbite).
ADart | un brin | |
AOrbit | une orbite |
INLINE CAttribute * GMap3d::CGMap::removeAttribute | ( | CDart * | ADart, | |
TOrbit | orbit, | |||
TAttributeId | typeAttr | |||
) |
[i]-couture géométrique des 2 brins. Les attributs sont mis à jour lorsque c'est nécessaire (quand deux orbites sont fusionnées et que chacune avait un attribut). De plus, la couture est effectuée sur l'orbite concernée afin de garantir la validité de la G-carte obtenue.
ADart1 | et ADart2 Deux brins canSew[i](ADart1, ADart2) |
[i]-couture topologique des 2 brins (les attributs ne sont pas mis à jour contrairement à sew[i]). La couture est effectuée sur l'orbite concernée afin de garantir la validité de la G-carte obtenue.
ADart1 | et ADart2 Deux brins canSew[i](ADart1, ADart2) |
INLINE void GMap3d::CGMap::topoUnsew | ( | CDart * | ADart, | |
int | ADimension | |||
) |
INLINE void GMap3d::CGMap::topoUnsew0 | ( | CDart * | ADart | ) |
INLINE void GMap3d::CGMap::unsew | ( | CDart * | ADart, | |
int | ADimension | |||
) |
INLINE void GMap3d::CGMap::unsew0 | ( | CDart * | ADart | ) |