src/lib-gmapkernel/g-map-generic/gmg-topology.hh File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

bool belongToSameOrientedOrbit (CDart *ADart1, CDart *ADart2, TOrbit AOrbit)
bool isOrientable (CDart *ADart, TOrbit AOrbit)
void countBorders (int AMarkNumber, int *ANb0, int *ANb1, int *ANb2, int *ANb3)
void countBorders (CDart *ADart, TOrbit AOrbit, int *ANb0, int *ANb1, int *ANb2, int *ANb3)
void countCells (int AMarkNumber, int *ANb0, int *ANb1, int *ANb2, int *ANb3, int *ANb4, int *ANbDarts=NULL)
void countCells (CDart *ADart, TOrbit AOrbit, int *ANb0, int *ANb1, int *ANb2, int *ANb3, int *ANb4, int *ANbDarts=NULL)
void getGlobalCharacteristics (int *ANbDarts, int *ANbVertices, int *ANbEdges, int *ANbFaces, int *ANbVolumes, int *ANbCC, int *ANb0Borders, int *ANb1Borders, int *ANb2Borders, int *ANb3Borders)
void getSurfaceCharacteristics (CDart *ADart, int *ANbDarts, int *ANbVertices, int *ANbEdges, int *ANbFaces, int *ANb0Borders, int *ANb1Borders, int *ANb2Borders, int *ANb2BordersWhenClosed, int *AEuler, int *AOrient, int *AGenus)
std::string getSurfaceName (int AB2, int AQ, int AG)
bool isConnex ()
bool checkTopology ()
bool checkEmbeddings (TOrbit AOrbit, int AAttributeIdentity, bool AEmbeddingMustExist=true)
bool isIClosedOrbit (CDart *ADart, int ADimension, TOrbit AOrbit)
bool isIFreeOrbit (CDart *ADart, int ADimension, TOrbit AOrbit)
int getMapDimension ()


Function Documentation

bool belongToSameOrientedOrbit ( CDart *  ADart1,
CDart *  ADart2,
TOrbit  AOrbit 
)

Parameters:
ADart1 Un brin de la carte
ADart2 Un brin de la carte
AOrbit Une orbite quelconque
Returns:
true si ADart1 et ADart2 appartiennent à la même orbite orientée.

bool checkEmbeddings ( TOrbit  AOrbit,
int  AAttributeIdentity,
bool  AEmbeddingMustExist = true 
)

Vérifie si pour chaque cellule d'orbite AOrbit de la carte il existe un seul brin de la cellule qui possède le plongement identifié par AAttributeIdentity. Si AEmbeddingMustExist vaut 'vrai', une cellule non plongée est considérée comme un problème d'intégrité de la carte.

Parameters:
AOrbit l'orbite plongée à tester
AAttributeIdentity L'identificateur de l'attribut à vérifier
AEmbeddingMustExist Un booléen indiquant si la détection d'une orbite non plongée doit provoquer une erreur
Returns:
Un booléen indiquant si les plongements sont cohérents
isOrbitUsed(AOrbit);

bool checkTopology (  ) 

Vérifie l'intégrité de la carte. La carte est cohérente si les orbites 0, 1, 2 et 3 sont des permutations et si les orbites 02, 03 et 13 sont des involutions.

Returns:
Un booléen indiquant si la topologie de la carte est cohérente

void countBorders ( CDart *  ADart,
TOrbit  AOrbit,
int *  ANb0,
int *  ANb1,
int *  ANb2,
int *  ANb3 
)

Compte le nombre de bords incidents à l'orbite (ADart, AOrbit). Pour ne compter que certains bords, mettre à NULL les paramètres ANb- correspondant à une dimension non voulue.

Parameters:
ADart Un brin de la carte
AOrbit Une orbite quelconque
ANbi Le nombre de i-bords

void countBorders ( int  AMarkNumber,
int *  ANb0,
int *  ANb1,
int *  ANb2,
int *  ANb3 
)

Compte le nombre de bords incidents aux brins marqués avec la marque AMarkNumber. Pour ne compter que certains bords, mettre à NULL les paramêtres ANbi correspondant à une dimension non voulue.

Parameters:
AMarkNumber Un numéro de marque
ANbi Le nombre de i-bords
ANb0Coupled Le nombre de faces ayant deux 0-bords

void countCells ( CDart *  ADart,
TOrbit  AOrbit,
int *  ANb0,
int *  ANb1,
int *  ANb2,
int *  ANb3,
int *  ANb4,
int *  ANbDarts = NULL 
)

Compte le nombre de cellules incidentes ou incluses dans l'orbite (ADart, AOrbit). Pour ne compter que certains types de cellules, mettre à NULL les paramètres ANb- correspondant à une dimension non voulue.

Parameters:
ADart Un brin de la carte
AOrbit Une orbite quelconque
ANbi Les nombres de i-cellules

void countCells ( int  AMarkNumber,
int *  ANb0,
int *  ANb1,
int *  ANb2,
int *  ANb3,
int *  ANb4,
int *  ANbDarts = NULL 
)

Compte le nombre de cellules incidentes à un brin marqué avec la marque AMarkNumber. Pour ne compter que certains types de cellules, mettre à NULL les paramètres ANb- correspondant à une dimension non voulue.

Parameters:
AMarkNumber Un numéro de marque
ANbi Les nombres de i-cellules

void getGlobalCharacteristics ( int *  ANbDarts,
int *  ANbVertices,
int *  ANbEdges,
int *  ANbFaces,
int *  ANbVolumes,
int *  ANbCC,
int *  ANb0Borders,
int *  ANb1Borders,
int *  ANb2Borders,
int *  ANb3Borders 
)

Calcule les caractéristiques globales de la carte (nombre de brins, de cellules, de bords). Pour ne pas calculer certaines caractéristiques, mettre à NULL les paramètres correspondants.

Parameters:
ANbDarts Le nombre de brins de la carte
ANb{Vertices,...,CC} Le nombre de cellules de la carte
ANbiBorders Le nombre de i-bords de la carte

int getMapDimension (  ) 

Returns:
la dimension de la carte, c'est à dire le plus grand i tel qu'il existe un brin non i-libre. Retourne -1 si tout les brins sont libre pour tout les i.

void getSurfaceCharacteristics ( CDart *  ADart,
int *  ANbDarts,
int *  ANbVertices,
int *  ANbEdges,
int *  ANbFaces,
int *  ANb0Borders,
int *  ANb1Borders,
int *  ANb2Borders,
int *  ANb2BordersWhenClosed,
int *  AEuler,
int *  AOrient,
int *  AGenus 
)

Calcule les caractéristiques d'une surface dont un brin est donné (nombre de brins, de cellules, de bords, caractéristique d'Euler, orientabilité, genre). Pour ne pas calculer certaines caractéristiques, mettre à NULL les paramètres correspondants.

Parameters:
ADart Un brin du volume
ANbDarts Le nombre de brins du volume
ANb{Vertices,...,CC} Le nombre de cellules du volume
ANbiBorders Le nombre de i-bords du volume
ANb2BordersWhenClosed Le nombre total de 2-bords qu'on aurait si le volume incident à ADart était 0-fermé puis 1-fermé.
AEuler La caractéristique d'Euler-Poincaré du volume
AOrient Le coefficient d'orientabilité du volume
AGenus Le genre du volume

std::string getSurfaceName ( int  AB2,
int  AQ,
int  AG 
)

Détermine à partir des caractéristiques topologiques d'une surface son nom usuel.

Parameters:
AB2 Le nombre de 2-bords de la surface
AQ Le coefficient d'orientabilité de la surface
AG Le genre de la surface
Returns:
Le nom de la surface (par exemple, "tore à 2 trous", "bouteille de Klein", etc)

bool isConnex (  ) 

Teste si la carte ne contient qu'une seule composante connexe. Si c'est le cas, la valeur 'vrai' est retournée.

Returns:
'vrai' si la carte est connexe

bool isIClosedOrbit ( CDart *  ADart,
int  ADimension,
TOrbit  AOrbit 
)

Teste si tous les brins de l'orbite (ADart, AOrbit) sont cousus par alpha ADimension. Si c'est le cas, la méthode retourne vrai.

Parameters:
ADart Un brin de la carte
ADimension Une dimension quelconque (0, 1, 2 ou 3)
AOrbit Une orbite quelconque
Returns:
Un booléen

bool isIFreeOrbit ( CDart *  ADart,
int  ADimension,
TOrbit  AOrbit 
)

Teste si tous les brins de l'orbite (ADart, AOrbit) sont non cousus par alpha ADimension. Si c'est le cas, la méthode retourne vrai.

Parameters:
ADart Un brin de la carte
ADimension Une dimension quelconque (0, 1, 2 ou 3)
AOrbit Une orbite quelconque
Returns:
Un booléen

bool isOrientable ( CDart *  ADart,
TOrbit  AOrbit 
)

Teste si l'objet déterminé par ADart et AOrbit est orientable. Remarque: L'objet peut ne pas être orientable uniquement pour les orbites ORBIT_VERTEX, ORBIT_VOLUME et ORBIT_CC.

Parameters:
ADart Un brin de la carte
AOrbit Une orbite (ORBIT_VOLUME ou ORBIT_CC)
Returns:
'vrai' si l'objet est orientable
AOrbit n'est pas une orbite de bord


Generated on Tue Jul 7 15:20:13 2009 for Moka gmapkernel by  doxygen 1.5.8