GMap3d::CMeshVertex Class Reference

#include <mesh-vertex.hh>

Inherits GMap3d::CMeshGeneric.

Collaboration diagram for GMap3d::CMeshVertex:

Collaboration graph
[legend]

List of all members.

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)

CVertexallocVertexArray1 (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
CDartgetMesh1Dive (CDart *ADart, int ASx, const CVertex **AVertexTable, bool AAlready2MeshedSquare=false)
CDartgetMesh2Dive (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

CGMapVertexFMap


Detailed Description

Definition at line 37 of file mesh-vertex.hh.


Constructor & Destructor Documentation

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.


Member Function Documentation

CVertex * CMeshVertex::allocVertexArray1 ( int  ADimX  ) 

Alloue l'espace mémoire nécessaire pour stocker le plongement de ADimX sommets.

Parameters:
ADimX La taille du tableau
Returns:
Un pointeur sur un tableau de ADimX sommets

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.

Parameters:
ADimX La première dimension du tableau
ADimY La deuxième dimension du tableau
Returns:
Un pointeur sur un tableau de ADimX*ADimY sommets

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.

Parameters:
ADimX La première dimension du tableau
ADimY La deuxième dimension du tableau
ADimZ La troisième dimension du tableau
Returns:
Un pointeur sur un tableau de ADimX*ADimY*ADimZ sommets

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.

Parameters:
ADimX La taille du tableau
Returns:
Un pointeur sur un tableau de ADimX pointeurs sur sommets

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.

Parameters:
ADimX La première dimension du tableau
ADimY La deuxième dimension du tableau
Returns:
Un pointeur sur un tableau de ADimX*ADimY pointeurs sur sommets

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.

Parameters:
ADimX La première dimension du tableau
ADimY La deuxième dimension du tableau
ADimZ La troisième dimension du tableau
Returns:
Un pointeur sur un tableau de ADimX*ADimY*ADimZ pointeurs sur sommets

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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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é.

Parameters:
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.

Parameters:
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é.

Parameters:
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'.

Parameters:
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
Returns:
Le brin situé à l'autre extrémité du maillage par rapport à ADart
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 '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

Parameters:
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
Returns:
Un brin situé sur un autre coin du maillage, dépendant de la valeur de AReturnedDart (voir schéma)
AVertexTable est de dimension (ASx+1)*(ASy+1)

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.

Parameters:
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.

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'.

Parameters:
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.

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'.

Parameters:
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.


Member Data Documentation

Reimplemented from GMap3d::CMeshGeneric.

Definition at line 530 of file mesh-vertex.hh.


The documentation for this class was generated from the following files:

Generated on Tue Jul 7 15:21:04 2009 for Moka libraries by  doxygen 1.5.8