src/lib-gmapkernel/g-map-vertex/gmv-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 * createPolyline (const std::vector< CVertex > &AVector)
CDart * createPole (int An, const CVertex &AVertex)
CDart * createOpenedPole (int An, const CVertex &AVertex)
CDart * createRegularPolygon (int An)
void createSphere (int AMeridians, int AParallels, CDart **ASouthPole, CDart **ANorthPole)
CDart * createSphere (int AMeridians, int AParallels)
void createCylinder (int AMeridians, int AParallels, CDart **ABorder1, CDart **ABorder2, bool AClose1=true, bool AClose2=true)
CDart * createCylinder (int AMeridians, int AParallels, bool AClose1=true, bool AClose2=true)
void createPyramid (int AMeridians, int AParallels, CDart **ABaseDart, CDart **APoleDart, bool ACloseBase=true)
CDart * createPyramid (int AMeridians, int AParallels, bool ACloseBase=true)
void createTorus (int AMeridians, int AParallels, TCoordinate ARadiusProportion, CDart **AEquator)
CDart * createTorus (int AMeridians, int AParallels, TCoordinate ARadiusProportion)
void createSquareIMeshed (int ASx, int ASy, int AMeshDimension, CDart *ASquareCorners[2][2])
CDart * createSquareIMeshed (int ASx, int ASy, int AMeshDimension)
void createCubeIMeshed (int ASx, int ASy, int ASz, int AMeshDimension, bool ACreatedFaces[3][2], CDart *AFacesCorners[3][2][2][2])
void createCubeIMeshed (int ASx, int ASy, int ASz, int AMeshDimension, bool ACreatedFaces[3][2], CDart **ADart1, CDart **ADart2)


Function Documentation

void createCubeIMeshed ( int  ASx,
int  ASy,
int  ASz,
int  AMeshDimension,
bool  ACreatedFaces[3][2],
CDart **  ADart1,
CDart **  ADart2 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createCubeIMeshed' ci-dessus et retourne un brin du cube.

ATTENTION: Selon les valeurs de AFace--, l'objet créé peut ne pas être connexe !

Si l'objet créé est connexe, ADart1 est positionné sur un de ses brins et la valeur NULL est affectée à ADart2. Si l'objet créé n'est pas connexe, ADart1 est positionné sur un brin de la première composante et ADart2 sur un brin de la deuxième composante.

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
ADart1 Un brin du cube
ADart2 Un brin du cube

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

Appelle la méthode 'CGMapGenericcreateCubeIMeshed' puis plonge le cube créé. Le cube obtenu est centré sur l'origine et son côté vaut 1.

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* createCylinder ( 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 'createCylinder' 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
AClose1 Un booléen indiquant s'il faut fermer le bord incident à ABorder1 (voir méthode 'createCylinder' ci-dessus)
AClose2 Un booléen indiquant s'il faut fermer le bord incident à ABorder2 (voir méthode 'createCylinder' ci-dessus)
Returns:
Un brin du cylindre

void createCylinder ( int  AMeridians,
int  AParallels,
CDart **  ABorder1,
CDart **  ABorder2,
bool  AClose1 = true,
bool  AClose2 = true 
)

Appelle la méthode CGMapGeneric::createTopoCylinder puis plonge le cylindre créé. Le cylindre obtenu est axé sur OX, sa hauteur vaut 1, son rayon 1/2.

La face incidente à ABorder1 est dans le plan Z=-1/2. La face incidente à ABorder2 est dans le plan Z=+1/2.

Les brins AClose1 et AClose2 en sortie sont situés sur le méridien passant par le sommet (+1/2,0,0).

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* createOpenedPole ( int  An,
const CVertex AVertex 
)

Appelle la méthode CGMapGeneric::createTopoOpenedPole puis plonge le sommet central du pôle créé avec l'attribut AVertex.

Parameters:
An Le nombre de triangles qui composent le pôle
AVertex Le plongement du sommet central du pôle
Returns:
Un brin 2-libre du sommet central du pôle

CDart* createPole ( int  An,
const CVertex AVertex 
)

Appelle la méthode CGMapGeneric::createTopoPole puis plonge le sommet central du pôle créé avec l'attribut AVertex.

Parameters:
An Le nombre de triangles qui composent le pôle
AVertex Le plongement du sommet central du pôle
Returns:
Un brin du sommet central du pôle

CDart* createPolyline ( const std::vector< CVertex > &  AVector  ) 

Utilise la méthode createMesh1 avec un CMesh1VectorDiver.

Parameters:
AVector Un vecteur contenant les sommets de la polyline
Returns:
Un brin extrémité de la polyline

CDart* createPyramid ( 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 'createPyramid' 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 s'il faut fermer le bord incident à ABaseDart (voir méthode 'createPyramid' ci-dessus)
Returns:
Un brin du cylindre

void createPyramid ( int  AMeridians,
int  AParallels,
CDart **  ABaseDart,
CDart **  APoleDart,
bool  ACloseBase = true 
)

Appelle la méthode CGMapGeneric::createTopoPyramid puis plonge la pyramide créée. La pyramide obtenue est axée sur OZ, sa hauteur vaut 1, le rayon de sa base 1/2.

La base (incidente à ABaseDart) est dans le plan Z=-1/2. La pointe (incidente à APoleDart) est aux coordonnées (0,0,+1/2).

Les brins ABaseDart et APoleDart en sortie sont situés sur le méridien passant par le sommet (+1/4,0,0).

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 s'il faut fermer le bord incident à ABaseDart

CDart* createRegularPolygon ( int  An  ) 

Crée un polygone régulier centré sur l'origine et de vecteur normal OZ. Le premier sommet de la face créée est aux coordonnées (1/2,0,0), c'est-à-dire que le polygone est inscrit dans un cercle de diamètre 1.

Le brin b retourné est celui du premier sommet de la face tel que le plongement de alpha0(b) ait une ordonnée positive.

Parameters:
An Le nombre d'arêtes du polygone
Returns:
Un brin de la face créée
An>=3

CDart* createSphere ( int  AMeridians,
int  AParallels 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createSphere' 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 createSphere ( int  AMeridians,
int  AParallels,
CDart **  ASouthPole,
CDart **  ANorthPole 
)

Appelle la méthode CGMapGeneric::createTopoSphere puis plonge sphère créée. La sphère obtenue est centrée sur l'origine, son diamètre vaut 1.

Le pôle sud est aux coordonnées (0,0,-1/2). Le pôle nord est aux coordonnées (0,0,+1/2).

Les brins ASouthPole et ANorthPole en sortie sont situés sur le méridien passant par le sommet (+1/2,0,0).

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* createSquareIMeshed ( int  ASx,
int  ASy,
int  AMeshDimension 
)

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

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)

void createSquareIMeshed ( int  ASx,
int  ASy,
int  AMeshDimension,
CDart *  ASquareCorners[2][2] 
)

Appelle la méthode 'CGMapGenericcreateTopoSquareIMeshed' et plonge le carré maillé créé. Le carré est centré sur l'origine et son vecteur normal est OZ. Les coins de la face créée sont aux coordonnées (+-1/2,+-1/2,0).

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* createTorus ( int  AMeridians,
int  AParallels,
TCoordinate  ARadiusProportion 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createTorus' 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
ARadiusProportion La valeur r/R (petit rayon sur grand grand rayon)
Returns:
Un brin du tore

void createTorus ( int  AMeridians,
int  AParallels,
TCoordinate  ARadiusProportion,
CDart **  AEquator 
)

Appelle la méthode CGMapGeneric::createTopoTorus puis plonge le tore créé. Le tore obtenu est axé sur OZ, c'est-à-dire que l'axe OZ passe dans le trou du tore sans l'intersecter.

Le brin AEquator en sortie est situé sur le sommet de coordonnées (+1/2,0,0).

On alpha donc les relations suivantes:

k = r/R , r+R = 1/2 , r = k/2/(1+k) , R = 1/2/(1+k)

Parameters:
AMeridians Le nombre (non nul) de méridiens du tore
AParallels Le nombre (non nul) de parallèles du tore
ARadiusProportion La valeur r/R (petit rayon sur grand grand rayon)
AEquator L'adresse d'un pointeur sur brin


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