Moka kernel
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
gmg-primitive.hh File Reference

Go to the source code of this file.

Functions

CDart * createTopoTriangle ()
 
CDart * createTopoSquare ()
 
CDart * createTopoPolygon (int An)
 
CDart * createTopoOpenedPole (int An)
 
CDart * createTopoPole (int An)
 
void createTopoTube (int AMeridians, int AParallels, CDart **ABorder1, CDart **ABorder2)
 
CDart * createTopoTube (int AMeridians, int AParallels)
 
void createTopoSphere (int AMeridians, int AParallels, CDart **ASouthPole, CDart **ANorthPole)
 
CDart * createTopoSphere (int AMeridians, int AParallels)
 
void createTopoCylinder (int AMeridians, int AParallels, CDart **ABorder1, CDart **ABorder2, bool AClose1=true, bool AClose2=true)
 
CDart * createTopoCylinder (int AMeridians, int AParallels, bool AClose1=true, bool AClose2=true)
 
void createTopoPyramid (int AMeridians, int AParallels, CDart **ABaseDart, CDart **APoleDart, bool ACloseBase=true)
 
CDart * createTopoPyramid (int AMeridians, int AParallels, bool ACloseBase=true)
 
void createTopoTorus (int AMeridians, int AParallels, CDart **AEquator)
 
CDart * createTopoTorus (int AMeridians, int AParallels)
 
void createTopoSquareIMeshed (int ASx, int ASy, int AMeshDimension, CDart *ASquareCorners[2][2])
 
void createTopoCubeIMeshed (int ASx, int ASy, int ASz, int AMeshDimension, bool ACreatedFaces[3][2], CDart *AFacesCorners[3][2][2][2])
 

Function Documentation

void createTopoCubeIMeshed ( int  ASx,
int  ASy,
int  ASz,
int  AMeshDimension,
bool  ACreatedFaces[3][2],
CDart *  AFacesCorners[3][2][2][2] 
)

Crée un cube, éventuellement maillé. Le paramètre AFacesCorners permet de récupérer des brins stratégiques du cube, comme indiqué sur la figure.

ACreatedFaces[0][0] correspond à la face X0. ACreatedFaces[0][1] correspond à la face X1. ACreatedFaces[1][0] correspond à la face Y0. ACreatedFaces[1][1] correspond à la face Y1. ACreatedFaces[2][0] correspond à la face Z0. ACreatedFaces[2][1] correspond à la face Z1.

AFacesCorners[0][0] correspond aux coins de la face X0. AFacesCorners[0][1] correspond aux coins de la face X1. AFacesCorners[1][0] correspond aux coins de la face Y0. AFacesCorners[1][1] correspond aux coins de la face Y1. AFacesCorners[2][0] correspond aux coins de la face Z0. AFacesCorners[2][1] correspond aux coins de la face Z1.

Les éléments des tableaux AFacesCorners[dim][i] sont des pointeurs qui sont positionnés sur certains brins du cube. Ces brins sont numérotés sur le schéma.

Les six booléens donnés par ACreatedFaces indiquent quelles faces du cube doivent être créées.

       +----  ----+           +01--  --11+
   +   10        11          /          /    +
 11|   |          |         /          /   11|
 / |      ARRIÈRE              HAUT        / |
       |   (Y1)   |       /   (Z1)   /

/ | 00 01 / / / | 01 | +-— -—+ +00– –10+ 01 |

  • G. + + D. + |(X0)10 +01– –11+ +-— -—+ |(X1)10 | / / / 10 11 | / / / | | | / BAS AVANT | / |00 / (Z0) / | (Y0) | |00
  • / / 00 01 + +00– –10+ +-— -—+

AMeshDimension indique dans quelle dimension le cube créé doit être maillé. Pour créer un cube 3-maillé, utilisez la méthode createTopoMesh3.

Si AMeshDimension==0, les valeurs de ASx, ASy et ASz ne sont pas prises en compte.

Parameters
ASxLe nombre de subdivisions selon la première dimension
ASyLe nombre de subdivisions selon la deuxième dimension
ASzLe nombre de subdivisions selon la troisième dimension
AMeshDimensionLa dimension du maillage (0, 1 ou 2)
ACreatedFacesUn tableau de dimension 3*2 de booléens
AFacesCornersUn tableau de dimension 3*2*2*2 de pointeurs sur brin
void createTopoCylinder ( int  AMeridians,
int  AParallels,
CDart **  ABorder1,
CDart **  ABorder2,
bool  AClose1 = true,
bool  AClose2 = true 
)

Crée un tube de dimension AMeridians*AParallels en s'appuyant sur la méthode 'createTopoTube', et 2-coud une face de AMeridians sommets à chaque bout du tube de manière à obtenir un cylindre (selon les valeurs de AClose1 et AClose2, les bords sont fermés ou non).

Remarque : Les paramètres ABorder- passés peuvent être égaux au pointeur NULL.

Parameters
AMeridiansLe nombre (non nul) de méridiens du cylindre
AParallelsLe nombre (non nul) de parallèles du cylindre
ABorder1L'adresse d'un pointeur sur brin
ABorder2L'adresse d'un pointeur sur brin
AClose1Un booléen indiquant s'il faut fermer le bord incident à ABorder1
AClose2Un booléen indiquant s'il faut fermer le bord incident à ABorder2
CDart* createTopoCylinder ( int  AMeridians,
int  AParallels,
bool  AClose1 = true,
bool  AClose2 = true 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTopoCylinder' ci-dessus et retourne le brin correspondant à ABorder1.

Parameters
AMeridiansLe nombre (non nul) de méridiens du cylindre
AParallelsLe nombre (non nul) de parallèles du cylindre
ABorder1L'adresse d'un pointeur sur brin
ABorder2L'adresse d'un pointeur sur brin
AClose1Un booléen indiquant s'il faut fermer le bord incident à ABorder1 (voir méthode 'createTopoCylinder' ci-dessus)
AClose2Un booléen indiquant s'il faut fermer le bord incident à ABorder2 (voir méthode 'createTopoCylinder' ci-dessus)
Returns
Un brin du cylindre
CDart* createTopoOpenedPole ( int  An)

Crée un pôle ouvert composé de An triangles 2-cousus entre eux et avec un sommet central. Le pôle est ouvert, c'est-à-dire que 2 des arêtes incidentes au sommet central ne sont pas 2-cousues.

Parameters
AnLe nombre de triangles qui composent le pôle
Returns
Un brin 2-libre du sommet central du pôle
CDart* createTopoPole ( int  An)

Crée un pôle composé de An triangles 2-cousus entre eux et avec un sommet central.

Parameters
AnLe nombre de triangles qui composent le pôle
Returns
Un brin du sommet central du pôle
CDart* createTopoPolygon ( int  An)

Crée un polygone à An côtés.

Parameters
AnLe nombre d'arêtes du polygone
Returns
Un brin du polygone
void createTopoPyramid ( int  AMeridians,
int  AParallels,
CDart **  ABaseDart,
CDart **  APoleDart,
bool  ACloseBase = true 
)

Crée une pyramide à AMeridians méridiens et AParallels parallèles.

ABaseDart, s'il n'est pas NULL est positionné sur un brin 2-libre de la base (ou 2-cousu à un brin de la base si cette base est créée). APoleDart, s'il n'est pas NULL est positionné sur un brin situé sur la pointe de la pyramide.

ABaseDart et APoleDart sont situés sur le même méridien.

Remarque : Les paramètres ABaseDart et APoleDart passés peuvent être égaux au pointeur NULL.

Parameters
AMeridiansLe nombre (non nul) de méridiens de la pyramide
AParallelsLe nombre (non nul) de parallèles de la pyramide
ABaseDartL'adresse d'un pointeur sur brin
APoleDartL'adresse d'un pointeur sur brin
ACloseBaseUn booléen indiquant si la base de la pyramide doit être fermée
CDart* createTopoPyramid ( int  AMeridians,
int  AParallels,
bool  ACloseBase = true 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTopoPyramid' ci-dessus et retourne le brin correspondant à ABaseDart.

Parameters
AMeridiansLe nombre (non nul) de méridiens de la pyramide
AParallelsLe nombre (non nul) de parallèles de la pyramide
ACloseBaseUn booléen indiquant si la base de la pyramide doit être fermée
void createTopoSphere ( int  AMeridians,
int  AParallels,
CDart **  ASouthPole,
CDart **  ANorthPole 
)

Crée un tube de dimension AMeridians*AParallels en s'appuyant sur la méthode 'createTopoTube', et 2-coud un pôle de chaque côté de ce tube afin de fermer ses bords.

Si ASouthPole n'est pas NULL, il est positionné sur un brin du sommet situé au pôle sud de la sphère créée. Si ASouthPole n'est pas NULL, il est positionné sur un brin du sommet situé au pôle nord de la sphère créée.

Remarque : Les adresses des pointeurs sur brins passés en paramètre peuvent être égales à NULL.

Parameters
AMeridiansLe nombre (non nul) de méridiens de la sphère
AParallelsLe nombre (non nul) de parallèles de la sphère
ASouthPoleL'adresse d'un pointeur sur brin
ANorthPoleL'adresse d'un pointeur sur brin
CDart* createTopoSphere ( int  AMeridians,
int  AParallels 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTopoSphere' ci-dessus et retourne le brin correspondant à ASouthPole.

Parameters
AMeridiansLe nombre (non nul) de méridiens de la sphère
AParallelsLe nombre (non nul) de parallèles de la sphère
Returns
Un brin de la sphère
CDart* createTopoSquare ( )

Crée un quadrilatère topologique (8 brins 0 et 1-cousus).

Returns
Un brin du quadrilatère
void createTopoSquareIMeshed ( int  ASx,
int  ASy,
int  AMeshDimension,
CDart *  ASquareCorners[2][2] 
)

Crée un carré, éventuellement maillé. Le paramètre ASquareCorners permet de récupérer des brins stratégiques du carré, comme indiqué sur la figure.

ASx=3, ASy=2

ASquareCorners[0][1] ASquareCorners[1][1] +== –+– –+– ==+ | | | |

  • + | | | | +== –+– –+– ==+ ASquareCorners[0][0] ASquareCorners[1][0]

Si AMeshDimension==0, les valeurs de ASx et ASy ne sont pas prises en compte.

Parameters
ASxLe nombre de subdivisions selon la première dimension
ASyLe nombre de subdivisions selon la deuxième dimension
AMeshDimensionLa dimension du maillage (0 ou 2)
ASquareCornersUn tableau de dimension 2*2 de pointeurs sur brin
void createTopoTorus ( int  AMeridians,
int  AParallels,
CDart **  AEquator 
)

Crée un tube de dimension AMeridians*AParallels en s'appuyant sur la méthode 'createTopoTube', et 2-coud les deux 2-bords de ce tube de manière à obtenir un tore.

AEquator, s'il n'est pas NULL est positionné sur un brin situé sur l'équateur du tore.

Remarque : Le paramètre AEquator passé peut être égal au pointeur NULL.

Parameters
AMeridiansLe nombre (non nul) de méridiens du tore
AParallelsLe nombre (non nul) de parallèles du tore
AEquatorL'adresse d'un pointeur sur brin
CDart* createTopoTorus ( int  AMeridians,
int  AParallels 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTopoTorus' ci-dessus et retourne le brin correspondant à AEquator.

Parameters
AMeridiansLe nombre (non nul) de méridiens du tore
AParallelsLe nombre (non nul) de parallèles du tore
Returns
Un brin du tore
CDart* createTopoTriangle ( )

Crée un triangle topologique (6 brins 0 et 1-cousus).

Returns
Un brin du triangle
void createTopoTube ( int  AMeridians,
int  AParallels,
CDart **  ABorder1,
CDart **  ABorder2 
)

Crée une grille de dimension AMeridians*AParallels en s'appuyant sur la méthode 'createTopoMesh2', et 2-coud deux côtés de cette grille pour obtenir un tube. Les deux 2-bords du tube obtenu sont composés de AMeridians arêtes chacun.

ABorder1 s'il n'est pas NULL est positionné sur un brin 2-libre du premier bord du tube. ABorder2 s'il n'est pas NULL est positionné sur un brin 2-libre du second bord du tube. ABorder1 et ABorder2 sont situés en face l'un de l'autre.

Remarque : Les paramètres ABorder- passés peuvent être égaux au pointeur NULL.

Parameters
AMeridiansLe nombre (non nul) de méridiens du tube
AParallelsLe nombre (non nul) de parallèles du tube
ABorder1L'adresse d'un pointeur sur brin
ABorder2L'adresse d'un pointeur sur brin
CDart* createTopoTube ( int  AMeridians,
int  AParallels 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTopoTube' ci-dessus et retourne le brin correspondant à ABorder1.

Parameters
AMeridiansLe nombre (non nul) de méridiens du tube
AParallelsLe nombre (non nul) de parallèles du tube
Returns
Un brin du tube