Moka kernel
|
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) |
unsigned int | countNonLocalDegreeTwoEdges () |
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) |
std::ostream & | displayCharacteristics (std::ostream &AOs) |
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 () |
bool | isDanglingFace (CDart *ADart) |
bool belongToSameOrientedOrbit | ( | CDart * | ADart1, |
CDart * | ADart2, | ||
TOrbit | AOrbit | ||
) |
ADart1 | Un brin de la carte |
ADart2 | Un brin de la carte |
AOrbit | Une orbite quelconque |
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.
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 |
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.
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.
AMarkNumber | Un numéro de marque |
ANbi | Le nombre de i-bords |
ANb0Coupled | Le nombre de faces ayant deux 0-bords |
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.
ADart | Un brin de la carte |
AOrbit | Une orbite quelconque |
ANbi | Le nombre de i-bords |
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.
AMarkNumber | Un numéro de marque |
ANbi | Les nombres de i-cellules |
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.
ADart | Un brin de la carte |
AOrbit | Une orbite quelconque |
ANbi | Les nombres de i-cellules |
unsigned int countNonLocalDegreeTwoEdges | ( | ) |
Count the number of edges with local degree different from two. Remark: if this number is equal to zero, the map corresponds to a 2 dimensional quasi-manifols.
std::ostream& displayCharacteristics | ( | std::ostream & | AOs | ) |
Display all the characteristics of the map (number of darts and number of cells.
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.
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 | ( | ) |
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.
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.
AB2 | Le nombre de 2-bords de la surface |
AQ | Le coefficient d'orientabilité de la surface |
AG | Le genre de la surface |
bool isConnex | ( | ) |
Teste si la carte ne contient qu'une seule composante connexe. Si c'est le cas, la valeur 'vrai' est retournée.
bool isDanglingFace | ( | CDart * | ADart | ) |
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.
ADart | Un brin de la carte |
ADimension | Une dimension quelconque (0, 1, 2 ou 3) |
AOrbit | Une orbite quelconque |
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.
ADart | Un brin de la carte |
ADimension | Une dimension quelconque (0, 1, 2 ou 3) |
AOrbit | Une orbite quelconque |
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.
ADart | Un brin de la carte |
AOrbit | Une orbite (ORBIT_VOLUME ou ORBIT_CC) |
AOrbit n'est pas une orbite de bord