|
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) |
|
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 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 |
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
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 |
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 |