Go to the source code of this file.
Functions | |
bool | isTopoEdge (CDart *ADart, CDart *AModel=NULL) |
bool | isTopoEdge1Meshed (CDart *ADart, int ASx, CDart *AModel=NULL) |
bool | isTopoEdgeIMeshed (int ADim, CDart *ADart, int AS=1, CDart *AModel=NULL) |
bool | isTopoSquare (CDart *ADart, bool ACheck3Sews=false, bool A3Sewed=false) |
bool | isTopoSquare1Meshed (CDart *ADart, int ASx, int ASy, bool ACheck3Sews=false, bool A3Sewed=false) |
bool | isTopoSquare2Meshed (CDart *ADart, int ASx, int ASy, bool ACheck3Sews=false, bool A3Sewed=false) |
bool | isTopoSquare3Meshed (CDart *ADart, int ASx, int ASy, bool ACheck3Sews=false, bool A3Sewed=false) |
bool | isTopoSquareIMeshed (int ADim, CDart *ADart, int ASx=1, int ASy=1, bool ACheck3Sews=false, bool A3Sewed=false) |
bool | isFreeTopoSquareIMeshed (int ADim, CDart *ADart, int ASx, int ASy, int AMarkNumberNotX1, int AMarkNumberNotX2, int AMarkNumberNotY1, int AMarkNumberNotY2, int AReturnedDart=3, CDart **AOppositeDart=NULL) |
bool | isFreeTopoCubeIMeshed (int ADim, CDart *ADart, int ASx, int ASy, int ASz, int AMarkNumberNotX1, int AMarkNumberNotX2, int AMarkNumberNotY1, int AMarkNumberNotY2, int AMarkNumberZ1, int AMarkNumberZ2) |
CDart * | isTopoEdgeOfCubeIMeshed (int ADim, CDart *ADart1, CDart *ADart2, int AS) |
bool | isTopoCube (CDart *ADart) |
bool | isTopoCube1Meshed (CDart *ADart, int ASx, int ASy, int ASz) |
bool | isTopoCube2Meshed (CDart *ADart, int ASx, int ASy, int ASz) |
bool | isTopoCube3Meshed (CDart *ADart, int ASx, int ASy, int ASz) |
bool | isTopoCubeIMeshed (int ADim, CDart *ADart, int ASx, int ASy, int ASz) |
bool isFreeTopoCubeIMeshed | ( | int | ADim, | |
CDart * | ADart, | |||
int | ASx, | |||
int | ASy, | |||
int | ASz, | |||
int | AMarkNumberNotX1, | |||
int | AMarkNumberNotX2, | |||
int | AMarkNumberNotY1, | |||
int | AMarkNumberNotY2, | |||
int | AMarkNumberZ1, | |||
int | AMarkNumberZ2 | |||
) |
Cette méthode prend en paramètre un brin incident à un cube maillé en dimension ADim. Le bord de ce cube est composé de 12 polyarêtes. La méthode vérifie qu'aucune arête de la première dimension n'est marquée avec la marque AMarkNumberNotX1 (ou avec la marque AMarkNumberNotX2 si elle est positive ou nulle), qu'aucune arête de la deuxième dimension n'est marquée avec la marque AMarkNumberNotY1 (ou avec la marque AMarkNumberNotY2 si elle est positive ou nulle) et qu'aucune arête de la troisième dimension n'est marquée avec la marque AMarkNumberNotZ1 (ou avec la marque AMarkNumberNotZ2 si elle est positive ou nulle). Pour tester si une arête est marquée ou pas, on ne teste les marques que d'un seul de ses brins. Les arêtes doivent donc être soit totalement marquées soit totalement démarquées.
Cette méthode est utilisée par 'meshMarkedCubes', en association avec la méthode 'markTopoCubeIMeshed'.
ADim | Une dimension (0, 1 ou 2) | |
ADart | Un brin de la carte | |
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 | |
AMarkNumberNotX1 | Un numéro de marque pour les arêtes de la première dimension | |
AMarkNumberNotX2 | Un numéro de marque pour les arêtes de la première dimension | |
AMarkNumberNotY1 | Un numéro de marque pour les arêtes de la deuxième dimension | |
AMarkNumberNotY2 | Un numéro de marque pour les arêtes de la deuxième dimension | |
AMarkNumberNotZ1 | Un numéro de marque pour les arêtes de la troisième dimension | |
AMarkNumberNotZ2 | Un numéro de marque pour les arêtes de la troisième dimension |
bool isFreeTopoSquareIMeshed | ( | int | ADim, | |
CDart * | ADart, | |||
int | ASx, | |||
int | ASy, | |||
int | AMarkNumberNotX1, | |||
int | AMarkNumberNotX2, | |||
int | AMarkNumberNotY1, | |||
int | AMarkNumberNotY2, | |||
int | AReturnedDart = 3 , |
|||
CDart ** | AOppositeDart = NULL | |||
) |
Cette méthode prend en paramètre un brin incident à un carré maillé en dimension ADim. Le bord de ce carré est composé de 4 polyarêtes. La méthode vérifie qu'aucune arête horizontale n'est marquée avec la marque AMarkNumberNotX1 (ou avec la marque AMarkNumberNotX2 si elle est positive ou nulle) et qu'aucune arête verticale n'est marquée avec la marque AMarkNumberNotY1 (ou avec la marque AMarkNumberNotY2 si elle est positive ou nulle). Pour tester si une arête est marquée ou pas, on ne teste les marques que d'un seul de ses brins. Les arêtes doivent donc être soit totalement marquées soit totalement démarquées.
Cette méthode est utilisée par 'meshMarkedSquares', en association avec la méthode 'markTopoSquareIMeshed'.
2==AReturnedDart AReturnedDart==3 +** --+-- --+-- **+ | | | | | | | | +-- --+-- --+-- --+ | | | | | | | | +** --+-- --+-- **+ ADart AReturnedDart==1
ADim | Une dimension (0, 1 ou 2) | |
ADart | Un brin de la carte | |
ASx | Le nombre de subdivisions selon la première dimension | |
ASy | Le nombre de subdivisions selon la deuxième dimension | |
AMarkNumberNotX1 | Un numéro de marque pour les arêtes horizontales | |
AMarkNumberNotX2 | Un numéro de marque pour les arêtes horizontales | |
AMarkNumberNotY1 | Un numéro de marque pour les arêtes verticales | |
AMarkNumberNotY2 | Un numéro de marque pour les arêtes verticales | |
AReturnedDart | Un entier indiquant quel brin retourner | |
AOppositeDart | Un brin situé sur un autre coin du maillage, dépendant de la valeur de AReturnedDart (voir schéma) |
bool isTopoCube | ( | CDart * | ADart | ) |
Teste si le volume incident à ADart est fermé et constitué de 6 faces carrées formant un cube simple.
ADart | Un brin de la carte |
bool isTopoCube1Meshed | ( | CDart * | ADart, | |
int | ASx, | |||
int | ASy, | |||
int | ASz | |||
) |
Teste si le volume incident à ADart est un cube maillé 1d selon les valeurs de ASx, ASy et ASz.
ADart doit être situé dans un coin du maillage et dirigé selon la première dimension (comme l'est le brin AMesh3Corners[0][0][0] de la méthode 'createTopoMesh3').
ADart | Un brin de la carte | |
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 |
bool isTopoCube2Meshed | ( | CDart * | ADart, | |
int | ASx, | |||
int | ASy, | |||
int | ASz | |||
) |
Teste si le volume incident à ADart est un cube maillé 2d selon les valeurs de ASx, ASy et ASz.
ADart doit être situé dans un coin du maillage et dirigé selon la première dimension (comme l'est le brin AMesh3Corners[0][0][0] de la méthode 'createTopoMesh3').
ADart | Un brin de la carte | |
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 |
bool isTopoCube3Meshed | ( | CDart * | ADart, | |
int | ASx, | |||
int | ASy, | |||
int | ASz | |||
) |
Teste si le volume incident à ADart est un cube maillé 3d selon les valeurs de ASx, ASy et ASz.
ADart doit être situé dans un coin du maillage et dirigé selon la première dimension (comme l'est le brin AMesh2Corners[0][0][0] de la méthode 'createTopoMesh3').
ADart | Un brin de la carte | |
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 |
bool isTopoCubeIMeshed | ( | int | ADim, | |
CDart * | ADart, | |||
int | ASx, | |||
int | ASy, | |||
int | ASz | |||
) |
Teste si le volume incident à ADart est un cube maillé en dimension ADim selon les valeurs de ASx, ASy et ASz.
ADart doit être situé dans un coin du maillage et dirigé selon la première dimension (comme l'est le brin AMesh3Corners[0][0][0] de la méthode 'createTopoMesh3').
Si ADim vaut 0, les valeurs de ASx, ASy et ASz ne sont pas prises en compte.
ADim | Une dimension (0, 1, 2 ou 3) | |
ADart | Un brin de la carte | |
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 |
bool isTopoEdge | ( | CDart * | ADart, | |
CDart * | AModel = NULL | |||
) |
Teste si l'arête incidente à ADart est constituée de deux sommets.
Si AModel est non NULL, la méthode vérifie en plus que ADart et AModel ont bien des orbites 23 similaires.
ADart | Un brin de la carte | |
AModel | Un brin de la carte |
bool isTopoEdge1Meshed | ( | CDart * | ADart, | |
int | ASx, | |||
CDart * | AModel = NULL | |||
) |
Teste si la face incidente à ADart est bien constituée de ASx arêtes (au moins) toutes 0-cousues. Attention: ADart doit être situé à l'extrémité de la polyligne.
Si AModel est non NULL, la méthode vérifie que les brins de l'orbite 01 partant de ADart ont bien des orbites 23 similaires avec celle de AModel. Si AModel est NULL, aucune vérification n'est faite sur les orbites 23.
ADart | Un brin de la carte | |
ASx | Le nombre de subdivisions | |
AModel | Un brin de la carte |
bool isTopoEdgeIMeshed | ( | int | ADim, | |
CDart * | ADart, | |||
int | AS = 1 , |
|||
CDart * | AModel = NULL | |||
) |
Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement l'une des méthodes 'isTopoEdge' ou 'isTopoEdge1Meshed' en fonction de la valeur de ADim. Si ADim vaut 0, la valeur de AS n'est pas prise en compte.
ADim | Une dimension (0 ou 1) | |
ADart | Un brin de la carte | |
ASx | Le nombre de subdivisions | |
AModel | Un brin de la carte |
CDart* isTopoEdgeOfCubeIMeshed | ( | int | ADim, | |
CDart * | ADart1, | |||
CDart * | ADart2, | |||
int | AS | |||
) |
Cette méthode teste si les brins ADart1 et ADart2 sont bien de part et d'autre (c'est-à-dire 2-cousus) d'une arête d'un cube maillé. Le test est effectué sur AS arêtes consécutives.
ADim | Une dimension (1 ou 2) | |
ADart1 | Un brin de la carte | |
ADart2 | Un brin de la carte | |
AS | Le nombre de subdivisions de l'arête |
bool isTopoSquare | ( | CDart * | ADart, | |
bool | ACheck3Sews = false , |
|||
bool | A3Sewed = false | |||
) |
Teste si la face incidente à ADart est fermée et constituée de 4 arêtes. Si ACheck3Sews est vrai, tous les brins B de la face doivent vérifier isFree3(B) != A3Sewed. Si ACheck3Sews est faux, la vérification sur les 3-coutures n'est pas faite (la valeur de A3Sewed n'est pas prise en compte).
ADart | Un brin de la carte | |
ACheck3Sews | Un booléen indiquant s'il faut vérifier l'état des 3-coutures | |
A3Sewed | Un booléen indiquant si le carré doit être 3-cousu |
bool isTopoSquare1Meshed | ( | CDart * | ADart, | |
int | ASx, | |||
int | ASy, | |||
bool | ACheck3Sews = false , |
|||
bool | A3Sewed = false | |||
) |
Teste si la face incidente à ADart est fermée et constituée de 2*(ASx+ASy) arêtes. Si ACheck3Sews est vrai, alors: Si A3Sewed vaut 'vrai', la face doit être 3-cousue. Si A3Sewed vaut 'faux', la face doit ne pas être 3-cousue. Si ACheck3Sews est faux, la vérification sur les 3-coutures n'est pas faite (la valeur de A3Sewed n'est pas prise en compte).
ADart | Un brin de la carte | |
ASx | Le nombre de subdivisions selon la première dimension | |
ASy | Le nombre de subdivisions selon la deuxième dimension | |
ACheck3Sews | Un booléen indiquant s'il faut vérifier l'état des 3-coutures | |
A3Sewed | Un booléen indiquant si la face doit être 3-cousue |
bool isTopoSquare2Meshed | ( | CDart * | ADart, | |
int | ASx, | |||
int | ASy, | |||
bool | ACheck3Sews = false , |
|||
bool | A3Sewed = false | |||
) |
Teste si la grille incidente à ADart est constituée de ASx*ASy carrés au moins.
ADart doit être situé dans un coin du maillage et dirigé selon la première dimension (comme l'est le brin AMesh2Corners[0][0] de la méthode 'createTopoMesh2').
Si ACheck3Sews est vrai, alors: Si A3Sewed vaut 'vrai', toutes les faces du maillage doivent être 3-cousues. Si A3Sewed vaut 'faux', toutes les faces du maillage doivent être 3-libres. Si ACheck3Sews est faux, la vérification sur les 3-coutures n'est pas faite (la valeur de A3Sewed n'est pas prise en compte).
ADart | Un brin de la carte | |
ASx | Le nombre de subdivisions selon la première dimension | |
ASy | Le nombre de subdivisions selon la deuxième dimension | |
ACheck3Sews | Un booléen indiquant s'il faut vérifier l'état des 3-coutures | |
A3Sewed | Un booléen indiquant si les faces du maillage doivent être 3-cousues |
bool isTopoSquare3Meshed | ( | CDart * | ADart, | |
int | ASx, | |||
int | ASy, | |||
bool | ACheck3Sews = false , |
|||
bool | A3Sewed = false | |||
) |
Teste si la grille incidente à ADart est constituée de ASx*ASy carrés au moins correspondant à une face d'un cube 3-maillé.
ADart doit être situé dans un coin du maillage et dirigé selon la première dimension (comme l'est le brin AMesh2Corners[0][0] de la méthode 'createTopoMesh2').
Si ACheck3Sews est vrai, alors: Si A3Sewed vaut 'vrai', toutes les faces du maillage doivent être 3-cousues. Si A3Sewed vaut 'faux', toutes les faces du maillage doivent être 3-libres. Si ACheck3Sews est faux, la vérification sur les 3-coutures n'est pas faite (la valeur de A3Sewed n'est pas prise en compte).
ADart | Un brin de la carte | |
ASx | Le nombre de subdivisions selon la première dimension | |
ASy | Le nombre de subdivisions selon la deuxième dimension | |
ACheck3Sews | Un booléen indiquant s'il faut vérifier l'état des 3-coutures | |
A3Sewed | Un booléen indiquant si les faces du maillage doivent être 3-cousues |
bool isTopoSquareIMeshed | ( | int | ADim, | |
CDart * | ADart, | |||
int | ASx = 1 , |
|||
int | ASy = 1 , |
|||
bool | ACheck3Sews = false , |
|||
bool | A3Sewed = false | |||
) |
Cette méthode permet de tester dans n'importe quelle dimension si un carré est maillé.
Elle appelle simplement l'une des méthodes 'isTopoSquare' ou 'isTopoSquare1Meshed' si ADim<2. Sinon, elle teste si le carré est 2 ou 3 maillé. L'algorithme est le même que le cube soit 2 ou 3 maillé, sinon que dans un cas on passe d'un carré à son successeur par la fonction alpha0121 (ADim==2) et dans l'autre par la fonction alpha012321 (ADim==3).
ADim | Une dimension (0, 1, 2 ou 3) | |
ADart | Un brin de la carte | |
ASx | Le nombre de subdivisions selon la première dimension | |
ASy | Le nombre de subdivisions selon la deuxième dimension | |
ACheck3Sews | Un booléen indiquant s'il faut vérifier l'état des 3-coutures | |
A3Sewed | Un booléen indiquant si la face doit être 3-cousue |