Moka kernel
|
Go to the source code of this file.
Functions | |
unsigned int | markOrbit (CDart *ADart, TOrbit AOrbit, int AMarkNumber) |
void | halfMarkOrbit (CDart *ADart, TOrbit AOrbit, int AMarkNumber) |
void | halfUnmarkOrbit (CDart *ADart, TOrbit AOrbit, int AMarkNumber) |
void | unmarkOrbit (CDart *ADart, TOrbit AOrbit, int AMarkNumber) |
void | unmarkAll (int AMarkNumber) |
int | markIncidentCells (TOrbit AOrbit, int AMarkNumberSrce, int AMarkNumberDest) |
int | markIncidentCells (TOrbit AOrbit, int AMarkNumber) |
void | halfMarkIncidentCells (TOrbit AOrbit, int AMarkNumberSrce, int AMarkNumberDest) |
void | halfMarkIncidentCells (TOrbit AOrbit, int AMarkNumber) |
void | markInterior (CDart *ADart, int ADimension, int AMarkBorder, int AMarkInterior=-1) |
void | markIntersection (int AMarkNumber1, int AMarkNumber2, TOrbit AOrbit1, TOrbit AOrbit2, int AMarkResult, bool AInitialMarkIncidentCells=false) |
void | markCopy (int AMarkNumberFrom, int AMarkNumberTo, CDart *ADart, TOrbit AOrbit) |
void | markCopy (int AMarkNumberFrom, int AMarkNumberTo) |
void | markAdd (int AMarkNumberFrom, int AMarkNumberTo) |
void | markAdd (int AMarkNumberFrom, int AMarkNumberTo, CDart *ADart, TOrbit AOrbit) |
void | markAnd (int AMarkNumberFrom, int AMarkNumberTo) |
void | markAnd (int AMarkNumberFrom, int AMarkNumberTo, CDart *ADart, TOrbit AOrbit) |
void | markSub (int AMarkNumberFrom, int AMarkNumberTo) |
void | markSub (int AMarkNumberFrom, int AMarkNumberTo, CDart *ADart, TOrbit AOrbit) |
void | markMove (int AMarkNumberFrom, int AMarkNumberTo) |
void | markMove (int AMarkNumberFrom, int AMarkNumberTo, CDart *ADart, TOrbit AOrbit) |
bool | isWholeCellMarked (CDart *ADart, TOrbit AOrbit, int AMarkNumber) |
int | getMarkedCells (TOrbit AOrbit, int AMarkNumber, CDart *ALastMarked=NULL, CDart **ADart1=NULL, CDart **ADart2=NULL, CDart **ADart3=NULL) |
int getMarkedCells | ( | TOrbit | AOrbit, |
int | AMarkNumber, | ||
CDart * | ALastMarked = NULL , |
||
CDart ** | ADart1 = NULL , |
||
CDart ** | ADart2 = NULL , |
||
CDart ** | ADart3 = NULL |
||
) |
Cherche dans la carte les cellules correspondant à AOrbit dont au moins un brin est marqué pour le numéro de marque AMarkNumber donné. Pour chacune d'entre elles, un brin marqué est choisi et l'un des paramètres ADart- est positionné sur ce brin. Si plus de 3 cellules sont marquées, seules les trois premières trouvées sont mémorisées et la valeur retournée est supérieure à trois. Si moins de 3 cellules sont marquées, les paramètres non utilisés sont positionnés à NULL. Si ALastMarked ne vaut pas NULL, il désigne un brin prioritaire sur les autres. Si ce brin est marqué, il est placé en première position (ADart1 pointe sur lui).
AOrbit | Une orbite quelconque |
AMarkNumber | Un numéro de marque |
ALastMarked | Un pointeur sur le dernier brin marqué |
ADart1 | Une référence sur un pointeur sur un brin |
ADart2 | Une référence sur un pointeur sur un brin |
ADart3 | Une référence sur un pointeur sur un brin |
void halfMarkIncidentCells | ( | TOrbit | AOrbit, |
int | AMarkNumberSrce, | ||
int | AMarkNumberDest | ||
) |
Marque avec la marque AMarkNumberDest un brin sur deux des cellules correspondant à l'orbite AOrbit dont un brin au moins est marqué avec la marque AMarkNumberSrce. Lorsqu'une cellule non orientable est marquée, elle est totalement sélectionnée. Voir la méthode 'halfMarkOrbit' pour plus d'informations.
AOrbit | Une orbite qui n'est pas une orbite de bord |
AMarkNumberSrce | Un numéro de marque |
AMarkNumberDest | Un numéro de marque |
AOrbit>=ORBIT_SELF && AOrbit<=Orbit_CC AMarkNumberSrce!=AMarkNumberDest
void halfMarkIncidentCells | ( | TOrbit | AOrbit, |
int | AMarkNumber | ||
) |
Marque un brin sur deux des cellules correspondant à l'orbite AOrbit dont un brin au moins est marqué. Lorsqu'une cellule non orientable est marquée, elle est totalement sélectionnée. Voir la méthode 'halfMarkOrbit' pour plus d'informations.
AOrbit | Une orbite qui n'est pas une orbite de bord |
AMarkNumber | Un numéro de marque |
AOrbit>=ORBIT_SELF && AOrbit<=Orbit_CC
void halfMarkOrbit | ( | CDart * | ADart, |
TOrbit | AOrbit, | ||
int | AMarkNumber | ||
) |
Marque un brin sur deux de l'orbite AOrbit incidente à ADart en utilisant la marque numéro AMarkNumber. Attention: Cette méthode ne fonctionne pas si l'orbite est une orbite de bord !
ADart | Un brin quelconque |
AOrbit | Une orbite |
AMarkNumber | Un numéro de marque |
AOrbit n'est pas une orbite de bord isOrientable(ADart, AOrbit) isMarked(ADart, AMarkNumber) Soient b un brin de l'orbite (ADart,AOrbit) et i une dimension (0, 1, 2 ou 3) tels que alpha(b,i) soit lui aussi sur l'orbite (ADart, AOrbit). On a : isMarked( b , AMarkNumber) != isMarked(alpha(b,i), AMarkNumber)
void halfUnmarkOrbit | ( | CDart * | ADart, |
TOrbit | AOrbit, | ||
int | AMarkNumber | ||
) |
Démarque un brin sur deux de l'orbite AOrbit incidente à ADart en utilisant la marque numéro AMarkNumber. Attention: Cette méthode ne fonctionne pas si l'orbite est une orbite de bord !
ADart | Un brin quelconque |
AOrbit | Une orbite |
AMarkNumber | Un numéro de marque |
AOrbit n'est pas une orbite de bord isOrientable(ADart, AOrbit) !isMarked(ADart, AMarkNumber) Soient b un brin de l'orbite (ADart,AOrbit) et i une dimension (0, 1, 2 ou 3) tels que alpha(b,i) soit lui aussi sur l'orbite (ADart, AOrbit). On a : isMarked( b , AMarkNumber) != isMarked(alpha(b,i), AMarkNumber)
bool isWholeCellMarked | ( | CDart * | ADart, |
TOrbit | AOrbit, | ||
int | AMarkNumber | ||
) |
Teste si tous les brins de la cellule déterminée par le brin ADart et l'orbite AOrbit sont marqués avec la marque AMarkNumber.
ADart | Un brin quelconque de la carte |
AOrbit | Une orbite quelconque |
AMarkNumber | Un numéro de marque |
void markAdd | ( | int | AMarkNumberFrom, |
int | AMarkNumberTo | ||
) |
Pour chacun des brins de la carte, positionne la marque AMarkNumberTo à vrai si la marque AMarkNumberFrom est positionnée à vrai.
AMarkNumberFrom | Un numéro de marque |
AMarkNumberTo | Un numéro de marque |
AMarkNumberFrom!=AMarkNumberTo
void markAdd | ( | int | AMarkNumberFrom, |
int | AMarkNumberTo, | ||
CDart * | ADart, | ||
TOrbit | AOrbit | ||
) |
Pour chacun des brins de l'orbite déterminée par ADart et AOrbit, positionne la marque AMarkNumberTo à vrai si la marque AMarkNumberFrom est positionnée à vrai.
AMarkNumberFrom | Un numéro de marque |
AMarkNumberTo | Un numéro de marque |
ADart | Un brin de la carte |
AOrbit | Une orbite quelconque |
AMarkNumberFrom!=AMarkNumberTo
void markAnd | ( | int | AMarkNumberFrom, |
int | AMarkNumberTo | ||
) |
Pour chacun des brins de la carte, positionne la marque AMarkNumberTo à faux si la marque AMarkNumberFrom est positionnée à faux.
AMarkNumberFrom | Un numéro de marque |
AMarkNumberTo | Un numéro de marque |
AMarkNumberFrom!=AMarkNumberTo
void markAnd | ( | int | AMarkNumberFrom, |
int | AMarkNumberTo, | ||
CDart * | ADart, | ||
TOrbit | AOrbit | ||
) |
Pour chacun des brins de l'orbite déterminée par ADart et AOrbit, positionne la marque AMarkNumberTo à faux si la marque AMarkNumberFrom est positionnée à faux.
AMarkNumberFrom | Un numéro de marque |
AMarkNumberTo | Un numéro de marque |
ADart | Un brin de la carte |
AOrbit | Une orbite quelconque |
AMarkNumberFrom!=AMarkNumberTo
void markCopy | ( | int | AMarkNumberFrom, |
int | AMarkNumberTo, | ||
CDart * | ADart, | ||
TOrbit | AOrbit | ||
) |
Pour chacun des brins de l'orbite déterminée par ADart et AOrbit, positionne la marque AMarkNumberTo sur le même état que la marque AMarkNumberFrom.
AMarkNumberFrom | Un numéro de marque |
AMarkNumberTo | Un numéro de marque |
ADart | Un brin de la carte |
AOrbit | Une orbite quelconque |
AMarkNumberFrom!=AMarkNumberTo
void markCopy | ( | int | AMarkNumberFrom, |
int | AMarkNumberTo | ||
) |
Pour chacun des brins de la carte, positionne la marque AMarkNumberTo sur le même état que la marque AMarkNumberFrom.
AMarkNumberFrom | Un numéro de marque |
AMarkNumberTo | Un numéro de marque |
AMarkNumberFrom!=AMarkNumberTo
int markIncidentCells | ( | TOrbit | AOrbit, |
int | AMarkNumberSrce, | ||
int | AMarkNumberDest | ||
) |
Marque avec la marque AMarkNumberDest toutes les cellules correspondant à l'orbite AOrbit dont un brin au moins est marqué avec la marque AMarkNumberSrce.
AOrbit | Une orbite quelconque |
AMarkNumberSrce | Un numéro de marque |
AMarkNumberDest | Un numéro de marque |
AMarkNumberSrce!=AMarkNumberDest
int markIncidentCells | ( | TOrbit | AOrbit, |
int | AMarkNumber | ||
) |
Marque entièrement les cellules correspondant à l'orbite AOrbit dont un brin au moins est marqué.
AOrbit | Une orbite quelconque |
AMarkNumber | Un numéro de marque |
void markInterior | ( | CDart * | ADart, |
int | ADimension, | ||
int | AMarkBorder, | ||
int | AMarkInterior = -1 |
||
) |
Marque tous les brins de la carte qui sont à l'intérieur d'une région dont le bord est donné par les brins marqués avec la marque AMarkBorder. ADart est un brin situé à l'intérieur de la région. Les brins sont marqués avec la marque AMarkInterior. Les brins du bord ne sont pas marqués.
ADart | Un brin de la carte |
ADimension | Une dimension (2 ou 3) |
AMarkBorder | Un numéro de marque |
AMarkInterior | Un numéro de marque |
void markIntersection | ( | int | AMarkNumber1, |
int | AMarkNumber2, | ||
TOrbit | AOrbit1, | ||
TOrbit | AOrbit2, | ||
int | AMarkResult, | ||
bool | AInitialMarkIncidentCells = false |
||
) |
Cette méthode permet de sélectionner une partie du bord d'une cellule en calculant l'intersection entre cette cellule et une autre qui lui est adjacente.
AMarkNumber1 | un numéro de marque |
AMarkNumber2 | un numéro de marque différent de AMarkNumber1 |
AOrbit1 | une orbite quelconque (orbite de sélection) |
AOrbit2 | une orbite quelconque (orbite du résultat) |
AMarkResult | la marque où est stocké le résultat |
AInitialMarkIncidentCells | un booléen indiquant s'il faut initialiser les marquages |
void markMove | ( | int | AMarkNumberFrom, |
int | AMarkNumberTo | ||
) |
Pour chacun des brins de la carte, positionne la marque AMarkNumberTo à vrai si la marque AMarkNumberFrom est positionnée à vrai, puis positionne la marque AMarkNumberFrom à faux.
AMarkNumberFrom | Un numéro de marque |
AMarkNumberTo | Un numéro de marque |
AMarkNumberFrom!=AMarkNumberTo
void markMove | ( | int | AMarkNumberFrom, |
int | AMarkNumberTo, | ||
CDart * | ADart, | ||
TOrbit | AOrbit | ||
) |
Pour chacun des brins de l'orbite déterminée par ADart et AOrbit, positionne la marque AMarkNumberTo à vrai si la marque AMarkNumberFrom est positionnée à vrai, puis positionne la marque AMarkNumberFrom à faux.
AMarkNumberFrom | Un numéro de marque |
AMarkNumberTo | Un numéro de marque |
ADart | Un brin de la carte |
AOrbit | Une orbite quelconque |
AMarkNumberFrom!=AMarkNumberTo
unsigned int markOrbit | ( | CDart * | ADart, |
TOrbit | AOrbit, | ||
int | AMarkNumber | ||
) |
Marque tous les brins de l'orbite AOrbit incidente à ADart en utilisant la marque numéro AMarkNumber.
ADart | Un brin quelconque |
AOrbit | Une orbite |
AMarkNumber | Un numéro de marque |
void markSub | ( | int | AMarkNumberFrom, |
int | AMarkNumberTo | ||
) |
Pour chacun des brins de la carte, positionne la marque AMarkNumberTo à faux si la marque AMarkNumberFrom est positionnée à vrai.
AMarkNumberFrom | Un numéro de marque |
AMarkNumberTo | Un numéro de marque |
AMarkNumberFrom!=AMarkNumberTo
void markSub | ( | int | AMarkNumberFrom, |
int | AMarkNumberTo, | ||
CDart * | ADart, | ||
TOrbit | AOrbit | ||
) |
Pour chacun des brins de l'orbite déterminée par ADart et AOrbit, positionne la marque AMarkNumberTo à faux si la marque AMarkNumberFrom est positionnée à vrai.
AMarkNumberFrom | Un numéro de marque |
AMarkNumberTo | Un numéro de marque |
ADart | Un brin de la carte |
AOrbit | Une orbite quelconque |
AMarkNumberFrom!=AMarkNumberTo
void unmarkAll | ( | int | AMarkNumber | ) |
Démarque tous les brins de la carte pour la marque numéro AMarkNumber.
AMarkNumber | Un numéro de marque |
void unmarkOrbit | ( | CDart * | ADart, |
TOrbit | AOrbit, | ||
int | AMarkNumber | ||
) |
Démarque tous les brins de l'orbite AOrbit incidente à ADart pour la marque numéro AMarkNumber.
ADart | Un brin quelconque |
AOrbit | Une orbite |
AMarkNumber | Un numéro de marque |