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

Go to the source code of this file.

Functions

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)
 

Function Documentation

bool canMergeCube2MeshedAndMesh3 ( CDart *  ACubeDart,
CDart *  AMesh3Dart,
int  ASx,
int  ASy,
int  ASz 
)

Teste si le maillage 3d incident à AMesh3Dart peut être fusionné avec le cube maillé 2d incident à ACubeDart. AMesh3Dart doit correspondre au brin AMesh3Corners[0][0][0] de la méthode 'createTopoMesh3'. Le principe est le même pour ACubeDart.

Parameters
ACubeDartUn brin du cube maillé 2d
AMesh3DartUn brin du maillage 3d
ASxLe nombre de subdivisions du maillage 3d selon la première dimension
ASyLe nombre de subdivisions du maillage 3d selon la deuxième dimension
ASzLe nombre de subdivisions du maillage 3d selon la troisième dimension
Returns
'vrai' si la fusion est possible
bool canMergeEdgeAndMesh1 ( CDart *  AEdgeDart,
CDart *  AMesh1Corners[2] 
)

Teste si le maillage 1d d'extrémités AMesh1Corners[0] et AMesh1Corners[1] peut être fusionné avec l'arête donnée par le brin AEdgeDart.

Parameters
AEdgeDartUn brin de l'arête à mailler
AMesh1CornersUn tableau de 2 pointeurs sur les brins correspondant aux extrémités du maillage 1d à fusionner
Returns
'vrai' si la fusion est possible
bool canMergeSquare1MeshedAndMesh2 ( CDart *  ASquareDart,
CDart *  AMesh2Dart,
int  ASx,
int  ASy 
)

Teste si le maillage 2d incident à AMesh2Dart peut être fusionné avec le carré maillé 1d incident à ASquareDart. AMesh2Dart doit correspondre au brin AMesh2Corners[0][0] de la méthode 'createTopoMesh2'. Le principe est le même pour ASquareDart.

Parameters
ASquareDartUn brin du carré maillé 1d
AMesh2DartUn brin du maillage 2d
ASxLe nombre de subdivisions du maillage 2d selon la première dimension
ASyLe nombre de subdivisions du maillage 2d selon la deuxième dimension
Returns
'vrai' si la fusion est possible
bool canMergeSquare2MeshedAndMesh3Side ( CDart *  ASquareDart,
CDart *  AMesh3Dart,
int  ASx,
int  ASy 
)

Teste si les ASx*ASy faces (correspondant à une face du maillage 3d) incidentes à AMesh3Dart peuvent être fusionnées avec le carré 2-maillé incident à ASquareDart. AMesh3Dart doit correspondre au brin AMesh3Corners[0][0][0] de la méthode 'createTopoMesh3' et ASquareDart au brin AMesh2Corners[0][0] de la méthode 'createTopoMesh2'.

Parameters
ASquareDartUn brin du carré maillé 2d
AMesh3DartUn brin du maillage 3d
ASxLe nombre de subdivisions du maillage 2d selon la première dimension
ASyLe nombre de subdivisions du maillage 2d selon la deuxième dimension
void mergeCube2MeshedAndMesh3 ( CDart *  ACubeDart,
CDart *  AMesh3Dart,
int  ASx,
int  ASy,
int  ASz 
)

Fusionne un maillage 3d avec un cube maillé 2d. Les brins supprimés dans la fusion sont ceux situés au bord du maillage 3d. Aucun brin du cube 2-maillé n'est supprimé.

Parameters
ACubeDartUn brin du cube maillé 2d
AMesh3DartUn brin du maillage 3d
ASxLe nombre de subdivisions du maillage 3d selon la première dimension
ASyLe nombre de subdivisions du maillage 3d selon la deuxième dimension
ASzLe nombre de subdivisions du maillage 3d selon la troisième dimension
Returns
'vrai' si la fusion est possible

canMergeCubeMeshed2AndMesh3(ACubeDart, AMesh3Dart, ASx,ASy,ASz)

void mergeEdgeAndMesh1 ( CDart *  AEdgeDart,
CDart *  AMesh1Corners[2] 
)

Fusionne un maillage 1d avec une arête. Les brins supprimés dans la fusion sont ceux situés aux extrémités du maillage 1d. Aucun brin de l'arête n'est supprimé.

Parameters
AEdgeDartUn brin de l'arête à mailler
AMesh1CornersUn tableau de 2 pointeurs sur les brins correspondant aux extrémités du maillage 1d à fusionner avec l'arête

canMergeEdgeAndMesh1(AEdgeDart, AMesh1Corners)

void mergeSquare1MeshedAndMesh2 ( CDart *  ASquareDart,
CDart *  AMesh2Dart,
int  ASx,
int  ASy 
)

Fusionne un maillage 2d avec une face carrée 1-maillée. Les brins supprimés dans la fusion sont ceux situés au bord du maillage 2d. Aucun brin du carré 1-maillé n'est supprimé.

Parameters
ASquareDartUn brin du carré maillé 1d
AMesh2DartUn brin du maillage 2d
ASxLe nombre de subdivisions du maillage 2d selon la première dimension
ASyLe nombre de subdivisions du maillage 2d selon la deuxième dimension

canMergeSquare1MeshedAndMesh2(ASquareDart, AMesh2Dart, ASx,ASy)

void mergeSquare2MeshedAndMesh3Side ( CDart *  ASquareDart,
CDart *  AMesh3Dart,
int  ASx,
int  ASy,
CDart **  ANextSquare = NULL,
CDart **  ANextMesh3Side = NULL 
)

Fusionne un côté d'un maillage 3d avec une face carrée 2-maillée. Les brins supprimés dans la fusion sont ceux situés au bord du maillage 3d. Aucun brin du carré 2-maillé n'est supprimé.

ASx=3, ASy=2

      |     |     |     |
      +-- --+-- --+-- ==+ ANextSquare
      +-- --+-- --+-- --+
      |     |     |     |
      |     |     |     |
      +-- --+-- --+-- --+
      |     |     |     |
      |     |     |     |
      +== --+-- --+-- --+

ASquareDart

Remarque: Après la fusion, toutes les faces du maillage 2d se retrouvent sur des volumes (des cubes) différents.

Si ANextSquare n'est pas égal à NULL, il est positionné sur un brin correspondant initialement à l'alpha2 du brin situé à l'autre extrémité de ASquareDart (voir schéma). Si ANextMesh3Side n'est pas égal à NULL, il est positionné sur l'homologue de ANextSquare sur le maillage 3d.

Ces paramètres en sortie permettent de poursuivre la fusion sur d'autres versants du maillage 3d (voir la méthode 'mergeCube2MeshedAndMesh3').

Parameters
ASquareDartUn brin du carré maillé 2d
AMesh3DartUn brin du maillage 3d
ASxLe nombre de subdivisions du maillage 2d selon la première dimension
ASyLe nombre de subdivisions du maillage 2d selon la deuxième dimension
ANextSquareL'alpha2 du brin situé dans le coin opposé à ASquareDart sur le carré 2-maillé (paramètre en sortie)
ANextMesh3SideL'homologue de ANextSquare sur le maillage 3d (paramètre en sortie)

canMergeSquare2MeshedAndMesh3(ASquareDart, AMesh3Dart, ASx,ASy)