#include <mesh-vertex.hh>
Inherits GMap3d::CMeshGeneric.
Public Member Functions | |
CMeshVertex (CGMapVertex *AMap) | |
~CMeshVertex () | |
Allocation et libération de tableaux de points | |
(pour la récupération des plongements nécessaires à une interpolation) | |
CVertex * | allocVertexArray1 (int ADimX) |
void | freeVertexArray1 (CVertex *AArray1, int ADimX) |
CVertex ** | allocVertexArray2 (int ADimX, int ADimY) |
void | freeVertexArray2 (CVertex **AArray2, int ADimX, int ADimY) |
CVertex *** | allocVertexArray3 (int ADimX, int ADimY, int ADimZ) |
void | freeVertexArray3 (CVertex ***AArray3, int ADimX, int ADimY, int ADimZ) |
const CVertex ** | allocVertexPtrArray1 (int ADimX) |
void | freeVertexPtrArray1 (const CVertex **AArray1, int ADimX) |
const CVertex *** | allocVertexPtrArray2 (int ADimX, int ADimY) |
void | freeVertexPtrArray2 (const CVertex ***AArray2, int ADimX, int ADimY) |
const CVertex **** | allocVertexPtrArray3 (int ADimX, int ADimY, int ADimZ) |
void | freeVertexPtrArray3 (const CVertex ****AArray3, int ADimX, int ADimY, int ADimZ) |
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) |
virtual void | mesh1 (CDart *ADart, int ASx, const CTransformationMatrix *AMeshMatrix, bool AMeshWithMerges=true, bool AMeshWithAdjacentSews=true, bool AMeshAssociatedCells=false, int ADirectInfoAlpha0=-1, int ADirectInfoAssoc=-1) |
virtual void | mesh2 (CDart *ADart, int ASx, int ASy, const CTransformationMatrix *AMeshMatrix, bool AMeshWithMerges=true, bool AMeshWithAdjacentSews=true, bool AMeshAssociatedCells=false, bool AGetAssociatedEmbeddings=false, int AInitialMeshDim=0, int AFinalMeshDim=2, int ADirectInfoAlpha0=-1, int ADirectInfoAssoc=-1) |
virtual void | mesh3 (CDart *ADart, int ASx, int ASy, int ASz, const CTransformationMatrix *AMeshMatrix, bool AMeshWithMerges=true, bool AMeshWithAdjacentSews=true, bool AMeshAssociatedCells=false, int AInitialMeshDim=0, int AFinalMeshDim=3, int ADirectInfoAlpha0=-1, int ADirectInfoAssoc=-1) |
Private Attributes | |
CGMapVertex * | FMap |
Definition at line 37 of file mesh-vertex.hh.
CMeshVertex::CMeshVertex | ( | CGMapVertex * | AMap | ) |
CMeshVertex::~CMeshVertex | ( | ) |
CVertex * CMeshVertex::allocVertexArray1 | ( | int | ADimX | ) |
Alloue l'espace mémoire nécessaire pour stocker le plongement de ADimX sommets.
ADimX | La taille du tableau |
Definition at line 30 of file mv-array-allocation.cc.
CVertex ** CMeshVertex::allocVertexArray2 | ( | int | ADimX, | |
int | ADimY | |||
) |
Alloue l'espace mémoire nécessaire pour stocker le plongement de ADimX*ADimY sommets.
ADimX | La première dimension du tableau | |
ADimY | La deuxième dimension du tableau |
Definition at line 44 of file mv-array-allocation.cc.
CVertex *** CMeshVertex::allocVertexArray3 | ( | int | ADimX, | |
int | ADimY, | |||
int | ADimZ | |||
) |
Alloue l'espace mémoire nécessaire pour stocker le plongement de ADimX*ADimY*ADimZ sommets.
ADimX | La première dimension du tableau | |
ADimY | La deuxième dimension du tableau | |
ADimZ | La troisième dimension du tableau |
Definition at line 67 of file mv-array-allocation.cc.
const CVertex ** CMeshVertex::allocVertexPtrArray1 | ( | int | ADimX | ) |
Alloue l'espace mémoire nécessaire pour stocker ADimX pointeurs sur sommet.
ADimX | La taille du tableau |
Definition at line 92 of file mv-array-allocation.cc.
const CVertex *** CMeshVertex::allocVertexPtrArray2 | ( | int | ADimX, | |
int | ADimY | |||
) |
Alloue l'espace mémoire nécessaire pour stocker ADimX*ADimY pointeurs sur sommets.
ADimX | La première dimension du tableau | |
ADimY | La deuxième dimension du tableau |
Definition at line 106 of file mv-array-allocation.cc.
const CVertex **** CMeshVertex::allocVertexPtrArray3 | ( | int | ADimX, | |
int | ADimY, | |||
int | ADimZ | |||
) |
Alloue l'espace mémoire nécessaire pour stocker ADimX*ADimY*ADimZ pointeurs sur sommets.
ADimX | La première dimension du tableau | |
ADimY | La deuxième dimension du tableau | |
ADimZ | La troisième dimension du tableau |
Definition at line 130 of file mv-array-allocation.cc.
void CMeshVertex::freeVertexArray1 | ( | CVertex * | AArray1, | |
int | ADimX | |||
) |
Libère l'espace mémoire occupé par AArray1.
AArray1 | Un tableau créé avec la méthode 'allocVertexArray1' | |
ADimX | La taille du tableau |
Definition at line 37 of file mv-array-allocation.cc.
void CMeshVertex::freeVertexArray2 | ( | CVertex ** | AArray2, | |
int | ADimX, | |||
int | ADimY | |||
) |
Libère l'espace mémoire occupé par AArray2.
AArray2 | Un tableau créé avec la méthode 'allocVertexArray2' | |
ADimX | La première dimension du tableau | |
ADimY | La deuxième dimension du tableau |
Definition at line 57 of file mv-array-allocation.cc.
void CMeshVertex::freeVertexArray3 | ( | CVertex *** | AArray3, | |
int | ADimX, | |||
int | ADimY, | |||
int | ADimZ | |||
) |
Libère l'espace mémoire occupé par AAray3.
AArray3 | Un tableau créé avec la méthode 'allocVertexArray3' | |
ADimX | La première dimension du tableau | |
ADimY | La deuxième dimension du tableau | |
ADimZ | La troisième dimension du tableau |
Definition at line 81 of file mv-array-allocation.cc.
void CMeshVertex::freeVertexPtrArray1 | ( | const CVertex ** | AArray1, | |
int | ADimX | |||
) |
Libère l'espace mémoire occupé par AArray1.
AArray1 | Un tableau créé avec la méthode 'allocVertexPtrArray1' | |
ADimX | La taille du tableau |
Definition at line 99 of file mv-array-allocation.cc.
void CMeshVertex::freeVertexPtrArray2 | ( | const CVertex *** | AArray2, | |
int | ADimX, | |||
int | ADimY | |||
) |
Libère l'espace mémoire occupé par AArray2.
AArray2 | Un tableau créé avec la méthode 'allocVertexPtrArray2' | |
ADimX | La première dimension du tableau | |
ADimY | La deuxième dimension du tableau |
Definition at line 119 of file mv-array-allocation.cc.
void CMeshVertex::freeVertexPtrArray3 | ( | const CVertex **** | AArray3, | |
int | ADimX, | |||
int | ADimY, | |||
int | ADimZ | |||
) |
Libère l'espace mémoire occupé par AArray3.
AArray3 | Un tableau créé avec la méthode 'allocVertexPtrArray3' | |
ADimX | La première dimension du tableau | |
ADimY | La deuxième dimension du tableau | |
ADimZ | La troisième dimension du tableau |
Definition at line 144 of file mv-array-allocation.cc.
void CMeshVertex::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 |
Definition at line 94 of file mv-control-points.cc.
void CMeshVertex::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 |
Definition at line 38 of file mv-control-points.cc.
void CMeshVertex::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 |
Definition at line 164 of file mv-control-points.cc.
CDart * CMeshVertex::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 'CGMapGenericalpha01', sinon il se fait en utilisant la méthode 'CGMapGenericalpha0121'.
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 |
Definition at line 198 of file mv-control-points.cc.
CDart * CMeshVertex::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 'CGMapGenericalpha0121', sinon il se fait en utilisant la méthode 'CGMapGenericalpha012321'.
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 |
Definition at line 228 of file mv-control-points.cc.
void CMeshVertex::mesh1 | ( | CDart * | ADart, | |
int | ASx, | |||
const CTransformationMatrix * | AMeshMatrix, | |||
bool | AMeshWithMerges = true , |
|||
bool | AMeshWithAdjacentSews = true , |
|||
bool | AMeshAssociatedCells = false , |
|||
int | ADirectInfoAlpha0 = -1 , |
|||
int | ADirectInfoAssoc = -1 | |||
) | [virtual] |
Surcharge la méthode CGMapGeneric::mesh1 pour plonger le maillage créé. Le plongement effectué est linéaire.
Pour plus d'informations sur les paramètres ADirectInfoAlpha0 et ADirectInfoAssoc, se reporter à la méthode 'CGMapGenericmesh1'. Pour plus d'informations concernant les champs AMeshWithMerges, AMeshWithAdjacentSews et AMeshAssociatedCells voir également cette méthode.
ADart | Un brin de l'arête à mailler | |
ASx | Le nombre de mailles à créer | |
AMeshMatrix | Matrice utilisée pour le calcul des plongements des cubiques | |
AMeshWithMerges | Un booléen | |
AMeshWithAdjacentSews | Un booléen | |
AMeshAssociatedCells | Un booléen | |
ADirectInfoAlpha0 | Un indice de champ directInfo | |
ADirectInfoAssoc | Un indice de champ directInfo |
Reimplemented from GMap3d::CMeshGeneric.
Definition at line 31 of file mv-mesh.cc.
void CMeshVertex::mesh2 | ( | CDart * | ADart, | |
int | ASx, | |||
int | ASy, | |||
const CTransformationMatrix * | AMeshMatrix, | |||
bool | AMeshWithMerges = true , |
|||
bool | AMeshWithAdjacentSews = true , |
|||
bool | AMeshAssociatedCells = false , |
|||
bool | AGetAssociatedEmbeddings = false , |
|||
int | AInitialMeshDim = 0 , |
|||
int | AFinalMeshDim = 2 , |
|||
int | ADirectInfoAlpha0 = -1 , |
|||
int | ADirectInfoAssoc = -1 | |||
) | [virtual] |
Surcharge la méthode CGMapGeneric::mesh2 pour plonger le maillage créé. Le plongement effectué est linéaire.
Pour plus d'informations sur les paramètres ADirectInfoAlpha0 et ADirectInfoAssoc, se reporter à la méthode 'CGMapGenericmesh1'.
ADart | Un brin du carré à mailler | |
ASx | Le nombre de mailles selon la première dimension | |
ASy | Le nombre de mailles selon la deuxième dimension | |
AMeshMatrix | Matrice utilisée pour le calcul des plongements des cubiques | |
AMeshWithMerges | Un booléen | |
AMeshWithAdjacentSews | Un booléen | |
AMeshAssociatedCells | Un booléen | |
AGetAssociatedEmbeddings | Un booléen | |
AInitialMeshDim | La dimension dans laquelle le carré à mailler est déjà maillé (0 ou 1) | |
AFinalMeshDim | La dimension dans laquelle la cellule doit être maillée (1 ou 2) | |
ADirectInfoAlpha0 | Un indice de champ directInfo | |
ADirectInfoAssoc | Un indice de champ directInfo |
Reimplemented from GMap3d::CMeshGeneric.
Definition at line 75 of file mv-mesh.cc.
void CMeshVertex::mesh3 | ( | CDart * | ADart, | |
int | ASx, | |||
int | ASy, | |||
int | ASz, | |||
const CTransformationMatrix * | AMeshMatrix, | |||
bool | AMeshWithMerges = true , |
|||
bool | AMeshWithAdjacentSews = true , |
|||
bool | AMeshAssociatedCells = false , |
|||
int | AInitialMeshDim = 0 , |
|||
int | AFinalMeshDim = 3 , |
|||
int | ADirectInfoAlpha0 = -1 , |
|||
int | ADirectInfoAssoc = -1 | |||
) | [virtual] |
Surcharge la méthode CGMapGeneric::mesh3 pour plonger le maillage créé. Le plongement effectué est linéaire.
Pour plus d'informations sur les paramètres ADirectInfoAlpha0 et ADirectInfoAssoc, se reporter à la méthode 'CGMapGenericmesh3'.
ADart | Un brin du cube à mailler | |
ASx | Le nombre de mailles selon la première dimension | |
ASy | Le nombre de mailles selon la deuxième dimension | |
ASz | Le nombre de mailles selon la troisième dimension | |
AMeshMatrix | Matrice utilisée pour le calcul des plongements des cubiques | |
AMeshWithMerges | Un booléen | |
AMeshWithAdjacentSews | Un booléen | |
AMeshAssociatedCells | Un booléen | |
AInitialMeshDim | La dimension dans laquelle le cube à mailler est déjà maillé (0, 1 ou 2) | |
AFinalMeshDim | La dimension dans laquelle la cellule doit être maillée (1, 2 ou 3) | |
ADirectInfoAlpha0 | Un indice de champ directInfo | |
ADirectInfoAssoc | Un indice de champ directInfo |
Reimplemented from GMap3d::CMeshGeneric.
Definition at line 165 of file mv-mesh.cc.
CGMapVertex* GMap3d::CMeshVertex::FMap [private] |