src/lib-gmapkernel/g-map-generic/gmg-primitive.hh File Reference

This graph shows which files directly or indirectly include this file:

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:
ASx Le nombre de subdivisions selon la première dimension
ASy Le nombre de subdivisions selon la deuxième dimension
ASz Le nombre de subdivisions selon la troisième dimension
AMeshDimension La dimension du maillage (0, 1 ou 2)
ACreatedFaces Un tableau de dimension 3*2 de booléens
AFacesCorners Un tableau de dimension 3*2*2*2 de pointeurs sur brin

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:
AMeridians Le nombre (non nul) de méridiens du cylindre
AParallels Le nombre (non nul) de parallèles du cylindre
ABorder1 L'adresse d'un pointeur sur brin
ABorder2 L'adresse d'un pointeur sur brin
AClose1 Un booléen indiquant s'il faut fermer le bord incident à ABorder1 (voir méthode 'createTopoCylinder' ci-dessus)
AClose2 Un booléen indiquant s'il faut fermer le bord incident à ABorder2 (voir méthode 'createTopoCylinder' ci-dessus)
Returns:
Un brin du cylindre

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:
AMeridians Le nombre (non nul) de méridiens du cylindre
AParallels Le nombre (non nul) de parallèles du cylindre
ABorder1 L'adresse d'un pointeur sur brin
ABorder2 L'adresse d'un pointeur sur brin
AClose1 Un booléen indiquant s'il faut fermer le bord incident à ABorder1
AClose2 Un booléen indiquant s'il faut fermer le bord incident à ABorder2

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:
An Le 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:
An Le 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:
An Le nombre d'arêtes du polygone
Returns:
Un brin du polygone

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:
AMeridians Le nombre (non nul) de méridiens de la pyramide
AParallels Le nombre (non nul) de parallèles de la pyramide
ACloseBase Un booléen indiquant si la base de la pyramide doit être fermée

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:
AMeridians Le nombre (non nul) de méridiens de la pyramide
AParallels Le nombre (non nul) de parallèles de la pyramide
ABaseDart L'adresse d'un pointeur sur brin
APoleDart L'adresse d'un pointeur sur brin
ACloseBase Un booléen indiquant si la base de la pyramide doit être fermée

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:
AMeridians Le nombre (non nul) de méridiens de la sphère
AParallels Le nombre (non nul) de parallèles de la sphère
Returns:
Un brin de la sphère

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:
AMeridians Le nombre (non nul) de méridiens de la sphère
AParallels Le nombre (non nul) de parallèles de la sphère
ASouthPole L'adresse d'un pointeur sur brin
ANorthPole L'adresse d'un pointeur sur brin

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:
ASx Le nombre de subdivisions selon la première dimension
ASy Le nombre de subdivisions selon la deuxième dimension
AMeshDimension La dimension du maillage (0 ou 2)
ASquareCorners Un tableau de dimension 2*2 de pointeurs 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:
AMeridians Le nombre (non nul) de méridiens du tore
AParallels Le nombre (non nul) de parallèles du tore
Returns:
Un brin du tore

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:
AMeridians Le nombre (non nul) de méridiens du tore
AParallels Le nombre (non nul) de parallèles du tore
AEquator L'adresse d'un pointeur sur brin

CDart* createTopoTriangle (  ) 

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

Returns:
Un brin du triangle

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:
AMeridians Le nombre (non nul) de méridiens du tube
AParallels Le nombre (non nul) de parallèles du tube
Returns:
Un brin du tube

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:
AMeridians Le nombre (non nul) de méridiens du tube
AParallels Le nombre (non nul) de parallèles du tube
ABorder1 L'adresse d'un pointeur sur brin
ABorder2 L'adresse d'un pointeur sur brin


Generated on Tue Jul 7 15:20:10 2009 for Moka gmapkernel by  doxygen 1.5.8