Moka libraries
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
mg-mesh.hh File Reference

Go to the source code of this file.

Functions

bool canMesh1 (CDart *ADart)
 
virtual void mesh1 (CDart *ADart, int ASx, const CTransformationMatrix *AMeshMatrix=NULL, bool AMeshWithMerges=true, bool AMeshWithAdjacentSews=true, bool AMeshAssociatedCells=false, int ADirectInfoAlpha0=-1, int ADirectInfoAssoc=-1)
 
bool canMesh2 (CDart *ADart, int ASx, int ASy, int AInitialMeshDim=0)
 
virtual void mesh2 (CDart *ADart, int ASx, int ASy, const CTransformationMatrix *AMeshMatrix=NULL, bool AMeshWithMerges=true, bool AMeshWithAdjacentSews=true, bool AMeshAssociatedCells=false, bool AGetAssociatedEmbeddings=false, int AInitialMeshDim=0, int AFinalMeshDim=2, int ADirectInfoAlpha0=-1, int ADirectInfoAssoc=-1)
 
bool canMesh3 (CDart *ADart, int ASx, int ASy, int ASz, int AInitialMeshDim=0)
 
virtual void mesh3 (CDart *ADart, int ASx, int ASy, int ASz, const CTransformationMatrix *AMeshMatrix=NULL, bool AMeshWithMerges=true, bool AMeshWithAdjacentSews=true, bool AMeshAssociatedCells=false, int AInitialMeshDim=0, int AFinalMeshDim=3, int ADirectInfoAlpha0=-1, int ADirectInfoAssoc=-1)
 

Function Documentation

bool canMesh1 ( CDart *  ADart)

Teste s'il est possible de mailler l'arête incidente à ADart.

Parameters
ADartUn brin de la carte
Returns
'vrai' si l'arête incidente à ADart peut être maillée
bool canMesh2 ( CDart *  ADart,
int  ASx,
int  ASy,
int  AInitialMeshDim = 0 
)

Teste s'il est possible de 2-mailler le carré incident à ADart. Si AInitialMeshDim vaut 0, on teste si la cellule incidente à ADart est un carré (4 arêtes). Si AInitialMeshDim vaut 1, on teste si la cellule incidente à ADart est un carré 1-maillé (2*(ASx+ASy) arêtes).

Parameters
ADartUn brin de la carte
ASxLe nombre de subdivisions à créer selon la première dimension
ASyLe nombre de subdivisions à créer selon la deuxième dimension
AInitialMeshDimLa dimension dans laquelle le carré à mailler est déjà maillé (0 ou 1)

ASx>0 ASy>0 AInitialMeshDim = 0 ou 1

bool canMesh3 ( CDart *  ADart,
int  ASx,
int  ASy,
int  ASz,
int  AInitialMeshDim = 0 
)

Teste s'il est possible de 3-mailler le cube incident à ADart. Si AInitialMeshDim vaut 0, on teste si la cellule incidente à ADart est un cube (6 faces). Si AInitialMeshDim vaut 1, on teste si la cellule incidente à ADart est un cube 1-maillé. Si AInitialMeshDim vaut 2, on teste si la cellule incidente à ADart est un cube 2-maillé.

Parameters
ADartUn brin de la carte
ASxLe nombre de subdivisions à créer selon la 1ère dimension
ASyLe nombre de subdivisions à créer selon la 2ème dimension
ASzLe nombre de subdivisions à créer selon la 3ème dimension
AInitialMeshDimLa dimension dans laquelle le cube à mailler est déjà maillé (0, 1 ou 2)

ASx>0 ASy>0 ASz>0 AInitialMeshDim = 0, 1 ou 2

virtual void mesh1 ( CDart *  ADart,
int  ASx,
const CTransformationMatrix *  AMeshMatrix = NULL,
bool  AMeshWithMerges = true,
bool  AMeshWithAdjacentSews = true,
bool  AMeshAssociatedCells = false,
int  ADirectInfoAlpha0 = -1,
int  ADirectInfoAssoc = -1 
)
virtual

Maille l'arête incidente à ADart. L'arête est donc découpée en ASx arêtes.

Si ADirectInfoAlpha0 est positif ou nul, il indique un champ directInfo où sont mémorisés les images par alpha0 des brins tels qu'elles étaient avant le maillage. Ceci est utile lorsqu'on maille plusieurs arêtes en parallèle (méthode 'meshMarkedEdges'). Au moment du plongement (effectué par la méthode 'CGMapVertex::mesh1', cela permet de récupérer facilement les points de contrôle dont on alpha besoin sans avoir à parcourir complètement les arêtes déjà 1-maillées.

Si ADirectInfoAssoc est positif ou nul, il indique un champ directInfo où sont mémorisées les extrémités du maillage créé. Ceci permet d'accéder au maillage d'une arête déjà traitée.

Parameters
ADartUn brin de l'arête à mailler
ASxLe nombre de mailles à créer
AMeshMatrixMatrice utilisée pour le calcul des plongements des cubiques
AMeshWithMergesUn booléen indiquant la manière dont sont effectuées les maillages de cellules. Si vrai, les maillages créés sont fusionnés aux cellules auquelles ils correspondent. Sinon, les maillages restent indépendants des cellules à partir desquelles ils ont été créés.
AMeshWithAdjacentSewsUn booléen indiquant la manière dont sont effectuées les maillages de cellules. Si 'vrai', les maillages de cellules adjacentes créés en parallèle sont cousus entre eux. Sinon les maillages créés restent isolés.
AMeshAssociatedCellsUn booléen indiquant si les cellules associées sont maillées ou non.
ADirectInfoAlpha0Un indice de champ directInfo
ADirectInfoAssocUn indice de champ directInfo

canMesh1(ADart); ASx>0 ADirectInfoAlpha0>=0 => FMeshWithMerges ADirectInfoAssoc >=0 => !FMeshWithMerges

virtual void mesh2 ( CDart *  ADart,
int  ASx,
int  ASy,
const CTransformationMatrix *  AMeshMatrix = NULL,
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

Maille le carré incident à ADart, de la dimension AInitialMeshDim vers la dimension AFinalMeshDim.

Possibilités: AInitialMeshDim==0, AFinalMeshDim==1 : Maillage 1d des arêtes d'un carré AInitialMeshDim==0, AFinalMeshDim==2 : Maillage 2d d'un carré AInitialMeshDim==1, AFinalMeshDim==2 : Maillage 2d d'un carré 1-maillé

ADart doit correspondre au brin AMesh2Corners[0][0] de la méthode 'createTopoMesh2'.

Pour plus d'informations concernant les champs ADirectInfoAlpha0 et ADirectInfoAssoc, se reporter à la méthode 'mesh1'. Pour plus d'informations concernant les champs AMeshWithMerges, AMeshWithAdjacentSews et AMeshAssociatedCells voir la méthode 'mesh1'.

Parameters
ADartUn brin du carré à mailler
ASxLe nombre de mailles à créer selon la première dimension
ASyLe nombre de mailles à créer selon la deuxième dimension
AMeshMatrixMatrice utilisée pour le calcul des plongements des cubiques
AMeshWithMergesUn booléen
AMeshWithAdjacentSewsUn booléen
AMeshAssociatedCellsUn booléen
AGetAssociatedEmbeddingsUn booléen
AInitialMeshDimLa dimension du maillage de la cellule de départ (0 ou 1)
AFinalMeshDimLa dimension dans laquelle la cellule doit être maillée (1 ou 2)
ADirectInfoAlpha0Un indice de champ directInfo
ADirectInfoAssocUn indice de champ directInfo

ASx>0 ASy>0 AInitialMeshDim = 0 ou 1 AFinalMeshDim = 1 ou 2 AInitialMeshDim < AFinalMeshDim canMesh2(ADart, ASx,ASy, AInitialMeshDim)

virtual void mesh3 ( CDart *  ADart,
int  ASx,
int  ASy,
int  ASz,
const CTransformationMatrix *  AMeshMatrix = NULL,
bool  AMeshWithMerges = true,
bool  AMeshWithAdjacentSews = true,
bool  AMeshAssociatedCells = false,
int  AInitialMeshDim = 0,
int  AFinalMeshDim = 3,
int  ADirectInfoAlpha0 = -1,
int  ADirectInfoAssoc = -1 
)
virtual

Maille le cube incident à ADart, de la dimension AInitialMeshDim vers la dimension AFinalMeshDim.

Possibilités: AInitialMeshDim == 0, AFinalMeshDim == 1 : Maillage 1d des arêtes d'un cube AInitialMeshDim == 0, AFinalMeshDim == 2 : Maillage 2d des faces d'un cube AInitialMeshDim == 0, AFinalMeshDim == 3 : Maillage 3d d'un cube AInitialMeshDim == 1, AFinalMeshDim == 2 : Maillage 2d des faces d'un cube 1-maillé AInitialMeshDim == 1, AFinalMeshDim == 3 : Maillage 3d d'un cube 1-maillé AInitialMeshDim == 2, AFinalMeshDim == 3 : Maillage 3d d'un cube 2-maillé

ADart doit correspondre au brin AMesh3Corners[0][0][0] de la méthode 'createTopoMesh3'.

Pour plus d'informations concernant les champs ADirectInfoAlpha0 et ADirectInfoAssoc, se reporter à la méthode 'mesh1'. Pour plus d'informations concernant les champs AMeshWithMerges, AMeshWithAdjacentSews et AMeshAssociatedCells voir la méthode 'mesh1'.

Parameters
ADartUn brin du cube à mailler
ASxLe nombre de mailles à créer selon la première dimension
ASyLe nombre de mailles à créer selon la deuxième dimension
ASzLe nombre de mailles à créer selon la troisième dimension
AMeshMatrixMatrice utilisée pour le calcul des plongements des cubiques
AMeshWithMergesUn booléen
AMeshWithAdjacentSewsUn booléen
AMeshAssociatedCellsUn booléen
AInitialMeshDimLa dimension du maillage de la cellule de départ (0 , 1 ou 2)
AFinalMeshDimLa dimension dans laquelle la cellule doit être maillée (1, 2 ou 3)
ADirectInfoAlpha0Un indice de champ directInfo
ADirectInfoAssocUn indice de champ directInfo

ASx>0 ASy>0 ASz>0 AInitialMeshDim = 0 ou 1 AFinalMeshDim = 1 ou 2 AInitialMeshDim < AFinalMeshDim canMesh3(ADart, ASx,ASy,ASz, AInitialMeshDim)