![]() |
Moka libraries
|
#include <mesh-vertex.hh>
Public Member Functions | |
| CMeshVertex (CGMapVertex *AMap) | |
| Constructeur. | |
| ~CMeshVertex () | |
| Destructeur. | |
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) |
Public Member Functions inherited from GMap3d::CMeshGeneric | |
| CMeshGeneric (CGMapGeneric *AMap) | |
| Constructeur. | |
| virtual | ~CMeshGeneric () |
| Destructeur. | |
| bool | canMesh1 (CDart *ADart) |
| bool | canMesh2 (CDart *ADart, int ASx, int ASy, int AInitialMeshDim=0) |
| bool | canMesh3 (CDart *ADart, int ASx, int ASy, int ASz, int AInitialMeshDim=0) |
| bool | isTopoEdge (CDart *ADart, CDart *AModel=NULL) |
| bool | isTopoEdge1Meshed (CDart *ADart, int ASx, CDart *AModel=NULL) |
| bool | isTopoEdgeIMeshed (int ADim, CDart *ADart, int AS=1, CDart *AModel=NULL) |
| bool | isTopoSquare (CDart *ADart, bool ACheck3Sews=false, bool A3Sewed=false) |
| bool | isTopoSquare1Meshed (CDart *ADart, int ASx, int ASy, bool ACheck3Sews=false, bool A3Sewed=false) |
| bool | isTopoSquare2Meshed (CDart *ADart, int ASx, int ASy, bool ACheck3Sews=false, bool A3Sewed=false) |
| bool | isTopoSquare3Meshed (CDart *ADart, int ASx, int ASy, bool ACheck3Sews=false, bool A3Sewed=false) |
| bool | isTopoSquareIMeshed (int ADim, CDart *ADart, int ASx=1, int ASy=1, bool ACheck3Sews=false, bool A3Sewed=false) |
| bool | isFreeTopoSquareIMeshed (int ADim, CDart *ADart, int ASx, int ASy, int AMarkNumberNotX1, int AMarkNumberNotX2, int AMarkNumberNotY1, int AMarkNumberNotY2, int AReturnedDart=3, CDart **AOppositeDart=NULL) |
| bool | isFreeTopoCubeIMeshed (int ADim, CDart *ADart, int ASx, int ASy, int ASz, int AMarkNumberNotX1, int AMarkNumberNotX2, int AMarkNumberNotY1, int AMarkNumberNotY2, int AMarkNumberZ1, int AMarkNumberZ2) |
| CDart * | isTopoEdgeOfCubeIMeshed (int ADim, CDart *ADart1, CDart *ADart2, int AS) |
| bool | isTopoCube (CDart *ADart) |
| bool | isTopoCube1Meshed (CDart *ADart, int ASx, int ASy, int ASz) |
| bool | isTopoCube2Meshed (CDart *ADart, int ASx, int ASy, int ASz) |
| bool | isTopoCube3Meshed (CDart *ADart, int ASx, int ASy, int ASz) |
| bool | isTopoCubeIMeshed (int ADim, CDart *ADart, int ASx, int ASy, int ASz) |
| CDart * | markTopoSquareIMeshed (int ADim, CDart *ADart, int ASx, int ASy, int AMarkNumberX, int AMarkNumberY, int AReturnedDart=3) |
| void | markTopoCubeIMeshed (int ADim, CDart *ADart, int ASx, int ASy, int ASz, int AMarkNumberX, int AMarkNumberY, int AMarkNumberZ) |
| bool | canMergeEdgeAndMesh1 (CDart *AEdgeDart, CDart *AMesh1Corners[2]) |
| void | mergeEdgeAndMesh1 (CDart *AEdgeDart, CDart *AMesh1Corners[2]) |
| bool | canMergeSquare1MeshedAndMesh2 (CDart *ASquareDart, CDart *AMesh2Dart, int ASx, int ASy) |
| void | mergeSquare1MeshedAndMesh2 (CDart *ASquareDart, CDart *AMesh2Dart, int ASx, int ASy) |
| bool | canMergeSquare2MeshedAndMesh3Side (CDart *ASquareDart, CDart *AMesh3Dart, int ASx, int ASy) |
| void | mergeSquare2MeshedAndMesh3Side (CDart *ASquareDart, CDart *AMesh3Dart, int ASx, int ASy, CDart **ANextSquare=NULL, CDart **ANextMesh3Side=NULL) |
| bool | canMergeCube2MeshedAndMesh3 (CDart *ACubeDart, CDart *AMesh3Dart, int ASx, int ASy, int ASz) |
| void | mergeCube2MeshedAndMesh3 (CDart *ACubeDart, CDart *AMesh3Dart, int ASx, int ASy, int ASz) |
Definition at line 37 of file mesh-vertex.hh.
| CMeshVertex::CMeshVertex | ( | CGMapVertex * | AMap | ) |
Constructeur.
Definition at line 29 of file mv-instance.cc.
| CMeshVertex::~CMeshVertex | ( | ) |
Destructeur.
Definition at line 36 of file mv-instance.cc.
| 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 '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
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 '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)
Definition at line 228 of file mv-control-points.cc.
|
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 'CGMapGeneric::mesh1'. 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 |
ASx>0 canMesh1(ADart);
Reimplemented from GMap3d::CMeshGeneric.
Definition at line 31 of file mv-mesh.cc.
|
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 'CGMapGeneric::mesh1'.
| 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 |
ASx>0 ASy>0 AInitialMeshDim = 0 ou 1 AFinalMeshDim = 1 ou 2 AInitialMeshDim < AFinalMeshDim canMesh2(ADart, ASx,ASy, AInitialMeshDim);
Reimplemented from GMap3d::CMeshGeneric.
Definition at line 75 of file mv-mesh.cc.
|
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 'CGMapGeneric::mesh3'.
| 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 |
ASx>0 ASy>0 ASz>0 AInitialMeshDim = 0, 1 ou 2 AFinalMeshDim = 1, 2 ou 3 AInitialMeshDim < AFinalMeshDim canMesh3(ADart, ASx,ASy,ASz, AInitialMeshDim);
Reimplemented from GMap3d::CMeshGeneric.
Definition at line 165 of file mv-mesh.cc.