![]() |
Moka kernel
|
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) |
void createCubeIMeshed | ( | int | ASx, |
int | ASy, | ||
int | ASz, | ||
int | AMeshDimension, | ||
bool | ACreatedFaces[3][2], | ||
CDart * | AFacesCorners[3][2][2][2] | ||
) |
Appelle la méthode 'CGMapGeneric::createCubeIMeshed' puis plonge le cube créé. Le cube obtenu est centré sur l'origine et son côté vaut 1.
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 |
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.
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).
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* 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.
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) |
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.
An | Le nombre de triangles qui composent le pôle |
AVertex | Le plongement 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.
An | Le nombre de triangles qui composent le pôle |
AVertex | Le plongement du sommet central du pôle |
CDart* createPolyline | ( | const std::vector< CVertex > & | AVector | ) |
Utilise la méthode createMesh1 avec un CMesh1VectorDiver.
AVector | Un vecteur contenant les sommets de la polyline |
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).
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* 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.
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) |
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.
An | Le nombre d'arêtes du polygone |
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).
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* 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.
AMeridians | Le nombre (non nul) de méridiens de la sphère |
AParallels | Le nombre (non nul) de parallèles de la sphère |
void createSquareIMeshed | ( | int | ASx, |
int | ASy, | ||
int | AMeshDimension, | ||
CDart * | ASquareCorners[2][2] | ||
) |
Appelle la méthode 'CGMapGeneric::createTopoSquareIMeshed' 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).
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* 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].
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 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)
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 |
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.
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) |