Moka libraries
|
Go to the source code of this file.
Functions | |
void | get4ControlPoints (CDart *ADart, CVertex *AVertexArray, int ADirectInfoAlpha0=-1) |
void | get16ControlPoints (CDart *ADart, CVertex **AVertexArray, int ADirectInfoAlpha0=-1) |
void | get64ControlPoints (CDart *ADart, CVertex ***AVertexArray, int ADirectInfoAlpha0=-1) |
Méthodes permettant de récupérer les plongements de cellules maillées | |
CDart * | getMesh1Dive (CDart *ADart, int ASx, const CVertex **AVertexTable, bool AAlready2MeshedSquare=false) |
CDart * | getMesh2Dive (CDart *ADart, int ASx, int ASy, const CVertex ***AVertexTable, bool AAlready3MeshedCube=false, int AReturnedDart=3) |
void get16ControlPoints | ( | CDart * | ADart, |
CVertex ** | AVertexArray, | ||
int | ADirectInfoAlpha0 = -1 |
||
) |
Récupère les plongements des 16 sommets appartenant à la grille 3*3 dont ADart est sur la face centrale.
Si ADirectInfoAlpha0 est positif ou nul, les images par alpha0 des brins sont retrouvées à l'aide de ce champ. Cela est utile par exemple pour lisser un carré qui est déjà 1-maillé.
ADart | Un brin de la carte |
AVertexArray | Un pointeur sur 4*4 sommets |
ADirectInfoAlpha0 | Un indice de champ directInfo |
void get4ControlPoints | ( | CDart * | ADart, |
CVertex * | AVertexArray, | ||
int | ADirectInfoAlpha0 = -1 |
||
) |
Récupère les plongements des 4 sommets appartenant à 3 arêtes consécutives de la carte dont ADart est sur l'arête centrale. AVertexArray est donc un paramètre en sortie.
Si ADart est sur une polyligne, AVertexArray[0] reçoit le plongement de alpha10(ADart), AVertexArray[1] celui de ADart, AVertexArray[2] celui de alpha0(ADart) et AVertexArray[2] celui de alpha010(ADart).
Remarque: La manière dont les 2 points de contrôle situés aux extrémités sont calculés dépend de la dimension du maillage sur lequel se trouve ADart. Par exemple, si ADart est sur une grille, AVertexExtremity[0] reçoit le plongement de alpha1210(ADart).
Si ADirectInfoAlpha0 est positif ou nul, les images par alpha0 des brins sont retrouvées à l'aide de ce champ. Cela est utile par exemple pour lisser une arête dont les arêtes adjacentes sont déjà 1-maillées.
ADart | Un brin de la carte |
AVertexArray | Un pointeur sur 4 sommets |
ADirectInfoAlpha0 | Un indice de champ directInfo |
void get64ControlPoints | ( | CDart * | ADart, |
CVertex *** | AVertexArray, | ||
int | ADirectInfoAlpha0 = -1 |
||
) |
Récupère les plongements des 64 sommets appartenant à la grille 3*3*3 dont ADart est sur le cube central.
Si ADirectInfoAlpha0 est positif ou nul, les images par alpha0 des brins sont retrouvées à l'aide de ce champ. Cela est utile par exemple pour lisser un cube qui est déjà 2-maillé.
ADart | Un brin de la carte |
AVertexArray | Un pointeur sur 4*4*4 sommets |
ADirectInfoAlpha0 | Un indice de champ directInfo |
CDart* getMesh1Dive | ( | CDart * | ADart, |
int | ASx, | ||
const CVertex ** | AVertexTable, | ||
bool | AAlready2MeshedSquare = false |
||
) |
Parcourt le maillage 1d en partant de ADart et fait pointer les éléments du tableau AVertexTable sur les plongements des sommets rencontrés.
Si AAlready2MeshedSquare vaut 'faux', le passage d'un sommet à son successeur se fait en utilisant la méthode 'CGMapGeneric::alpha01', sinon il se fait en utilisant la méthode 'CGMapGeneric::alpha0121'.
Cette méthode est utile pour récupérer les plongements des contours d'un carré 1 ou 2-maillé. Elle est utilisée par la méthode 'mesh2'.
ADart | Un brin de la carte |
ASx | Le nombre de subdivisions du maillage 1d |
AVertexTable | Un tableau de pointeurs sur sommets |
AAlready2MeshedFace | Un booléen indiquant l'état de l'arête |
AVertexTable est de dimension ASx+1
CDart* getMesh2Dive | ( | CDart * | ADart, |
int | ASx, | ||
int | ASy, | ||
const CVertex *** | AVertexTable, | ||
bool | AAlready3MeshedCube = false , |
||
int | AReturnedDart = 3 |
||
) |
Parcourt le maillage 2d en partant de ADart et fait pointer les éléments du tableau AVertexTable sur les plongements des sommets rencontrés.
Si AAlready3MeshedCube vaut 'faux', le passage d'un sommet à son successeur se fait en utilisant la méthode 'CGMapGeneric::alpha0121', sinon il se fait en utilisant la méthode 'CGMapGeneric::alpha012321'.
Cette méthode est utile pour récupérer les plongements des contours d'un cube 2 ou 3-maillé. Elle est utilisée par la méthode 'mesh3'.
2==AReturnedDart AReturnedDart==3 +** –+– –+– **+ | | | | | | | | +– –+– –+– –+ | | | | | | | | +** –+– –+– **+ ADart AReturnedDart==1
ADart | Un brin de la carte |
ASx | Le nombre de subdivisions du maillage selon la 1ère dimension |
ASy | Le nombre de subdivisions du maillage selon la 2ème dimension |
AVertexTable | Un tableau de pointeurs sur sommets |
AAlready3MeshedCube | Un booléen indiquant l'état de la face |
AReturnedDart | Un entier indiquant quel brin retourner |
AVertexTable est de dimension (ASx+1)*(ASy+1)