Moka kernel
|
Go to the source code of this file.
Functions | |
void | applyMatrix (const CTransformationMatrix &AMatrix, CDart *ADart, TOrbit AOrbit, int ADirectInfoVertex=-1) |
void | applyMatrix (const CTransformationMatrix &AMatrix, int AMarkNumber, int ADirectInfoVertex=-1) |
void | computeDistanceToVertex (int AMarkNumber, int ADirectInfoIndex, const CVertex &AVertex) |
void | computeDistanceToLine (int AMarkNumber, int ADirectInfoIndex, const CVertex &ALineVertex, const CVertex &ALineDirection) |
void | computeDistanceToPlane (int AMarkNumber, int ADirectInfoIndex, const CVertex &APlaneVertex, const CVertex &APlaneNormal) |
void | normalizeParameter (int AMarkNumber, int ADirectInfoIndex, TCoordinate AMin, TCoordinate AMax) |
void | applyFunctionOnParameter (int AMarkNumber, int ADirectInfoIndex, TFunctionType AFunctionType) |
void | translate (int AMarkNumber, const CVertex &AVector, int ADirectInfoVertex=-1, int ADirectInfoParam=-1) |
void | rotate (int AMarkNumber, const CVertex &AAxeVertex, const CVertex &AAxeDirection, TCoordinate AAngle, int ADirectInfoVertex=-1, int ADirectInfoParam=-1) |
void | scale (int AMarkNumber, const CVertex &ACenter, const CVertex &ACoef, int ADirectInfoVertex=-1, int ADirectInfoParam=-1) |
void | scale (int AMarkNumber, const CVertex &ACenter, TCoordinate ACoef, int ADirectInfoVertex=-1, int ADirectInfoParam=-1) |
void | axialScale (int AMarkNumber, const CVertex &AAxeVertex, const CVertex &AAxeDirection, TCoordinate ACoef, int ADirectInfoVertex=-1, int ADirectInfoParam=-1) |
void | planarScale (int AMarkNumber, const CVertex &APlaneVertex, const CVertex &APlaneNormal, TCoordinate ACoef, int ADirectInfoVertex=-1, int ADirectInfoParam=-1) |
void | orthoProjectOnPlane (int AMarkNumber, TCoordinate AA, TCoordinate AB, TCoordinate AC, TCoordinate AD) |
void applyFunctionOnParameter | ( | int | AMarkNumber, |
int | ADirectInfoIndex, | ||
TFunctionType | AFunctionType | ||
) |
Applique une fonction sur les valeurs (de type TCoordinate) pointées par le champ directInfo[ADirectInfoIndex] des brins porteurs d'un attribut sommet. Les sommets pris en compte sont ceux dont un brin au moins est marqué avec la marque AMarkNumber. Les différents types de fonctions sont répertoriés dans le fichier "math-extension.hh".
AMarkNumber | Un numéro de marque indiquant les sommets sélectionnés |
ADirectInfoIndex | Un indice indiquant où sont stockées les valeurs |
AFunctionType | Le type de fonction à appliquer |
void applyMatrix | ( | const CTransformationMatrix & | AMatrix, |
CDart * | ADart, | ||
TOrbit | AOrbit, | ||
int | ADirectInfoVertex = -1 |
||
) |
Applique la matrice à tous les sommets appartenant à l'orbite AOrbit incidente au brin ADart. Un sommet est modifié si au moins un brin de son orbite sommet appartient à l'orbite AOrbit incidente à ADart. Si ADirectInfoVertex est positif ou nul, la matrice de transformation est appliquée sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, la matrice de transformation modifie directement l'attribut sommet.
AMatrix | Une matrice de transformation |
ADart | Un brin de la carte |
AOrbit | Une orbite quelconque |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
void applyMatrix | ( | const CTransformationMatrix & | AMatrix, |
int | AMarkNumber, | ||
int | ADirectInfoVertex = -1 |
||
) |
Applique la matrice à tous les sommets marqués avec la marque AMarkNumber. Un sommet est modifié si au moins un brin de son orbite sommet est marqué. Si ADirectInfoVertex est positif ou nul, la matrice de transformation est appliquée sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, la matrice de transformation modifie directement l'attribut sommet.
AMatrix | Une matrice de transformation |
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer la transformation |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
void axialScale | ( | int | AMarkNumber, |
const CVertex & | AAxeVertex, | ||
const CVertex & | AAxeDirection, | ||
TCoordinate | ACoef, | ||
int | ADirectInfoVertex = -1 , |
||
int | ADirectInfoParam = -1 |
||
) |
Applique une homothétie de coefficient ACoef selon l'axe déterminé par le sommet AAxeVertex et le vecteur AAxeDirection sur tous les sommets marqués avec la marque AMarkNumber.
Si ADirectInfoVertex est positif ou nul, l'homothétie est appliquée sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, l'attribut sommet est directement modifié.
Si ADirectInfoParam est positif ou nul, l'étirement est pondéré avec la valeur stockée dans le champ directInfo[ADirectInfoParam].
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer l'homothétie |
AAxeVertex | Un sommet de l'axe d'homothétie |
AAxeDirection | Un vecteur direction de l'axe d'homothétie |
ACoef | Le coefficient d'homothétie |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
ADirectInfoParam | Indique où récupérer le paramètre de pondération |
!AAxeDirection.isNull()
void computeDistanceToLine | ( | int | AMarkNumber, |
int | ADirectInfoIndex, | ||
const CVertex & | ALineVertex, | ||
const CVertex & | ALineDirection | ||
) |
Pour chaque sommet dont un brin au moins est marqué avec la marque AMarkNumber, calcule la distance euclidienne entre le plongement de ce sommet et la droite donnée par le sommet ALineVertex et le vecteur directeur ALineDirection puis place le résultat dans le champ directInfo[ADirectInfoIndex] du brin possédant le plongement sommet.
Avant d'appeler cette méthode, il convient de réserver de la mémoire pour stocker les résultats. Cette réservation se fait avec la méthode 'CGMapGeneric::allocMemoryToDirectInfo' avec ABytes = sizeof(TCoordinate) et AOrbitUsed = ORBIT_VERTEX.
AMarkNumber | Un numéro de marque |
ADirectInfoIndex | Un indice indiquant quel directInfo utiliser |
ALineVertex | Un sommet quelconque de la droite |
ALineDirection | Un vecteur directeur de la droite |
! ALineDirection.isNull()
void computeDistanceToPlane | ( | int | AMarkNumber, |
int | ADirectInfoIndex, | ||
const CVertex & | APlaneVertex, | ||
const CVertex & | APlaneNormal | ||
) |
Pour chaque sommet dont un brin au moins est marqué avec la marque AMarkNumber, calcule la distance euclidienne entre le plongement de ce sommet et le plan donné par le sommet APlaneVertex et le vecteur normal APlaneNormal puis place le résultat dans le champ directInfo[ADirectInfoIndex] du brin possédant le plongement sommet.
Avant d'appeler cette méthode, il convient de réserver de la mémoire pour stocker les résultats. Cette réservation se fait avec la méthode 'CGMapGeneric::allocMemoryToDirectInfo' avec ABytes = sizeof(TCoordinate) et AOrbitUsed = ORBIT_VERTEX.
AMarkNumber | Un numéro de marque |
ADirectInfoIndex | Un indice indiquant quel directInfo utiliser |
APlaneVertex | Un sommet quelconque du plan |
APlaneNormal | Un vecteur normal du plan |
! APlaneNormal.isNull()
void computeDistanceToVertex | ( | int | AMarkNumber, |
int | ADirectInfoIndex, | ||
const CVertex & | AVertex | ||
) |
Pour chaque sommet dont un brin au moins est marqué avec la marque AMarkNumber, calcule la distance euclidienne entre le plongement de ce sommet et le sommet AVertex puis place le résultat dans le champ directInfo[ADirectInfoIndex] du brin possédant le plongement sommet.
Avant d'appeler cette méthode, il convient de réserver de la mémoire pour stocker les résultats. Cette réservation se fait avec la méthode 'CGMapGeneric::allocMemoryToDirectInfo' avec ABytes = sizeof(TCoordinate) et AOrbitUsed = ORBIT_VERTEX.
AMarkNumber | Un numéro de marque |
ADirectInfoIndex | Un indice indiquant quel directInfo utiliser |
AVertex | Un sommet quelconque de l'espace |
void normalizeParameter | ( | int | AMarkNumber, |
int | ADirectInfoIndex, | ||
TCoordinate | AMin, | ||
TCoordinate | AMax | ||
) |
Répartit sur le segment [AMin,AMax] par changement de repère 1d les valeurs (de type TCoordinate) pointées par le champ directInfo[ADirectInfoIndex] des brins porteurs d'un attribut sommet. Les sommets pris en compte sont ceux dont un brin au moins est marqué avec la marque AMarkNumber. Remarque: AMin peut être supérieur à AMax.
AMarkNumber | Un numéro de marque indiquant les sommets sélectionnés |
ADirectInfoIndex | Un indice indiquant où sont stockées les valeurs |
AMin | La borne inférieure du segment de normalisation |
AMax | La borne supérieure du segment de normalisation |
void orthoProjectOnPlane | ( | int | AMarkNumber, |
TCoordinate | AA, | ||
TCoordinate | AB, | ||
TCoordinate | AC, | ||
TCoordinate | AD | ||
) |
Projette orthogonalement les sommets dont un brin au moins est marqué sur le plan d'équation AA * x + AB * y + AC * z + AD = 0.
AMarkNumber | Un numéro de marque |
A? | Les paramètres de l'équation cartésienne du plan |
void planarScale | ( | int | AMarkNumber, |
const CVertex & | APlaneVertex, | ||
const CVertex & | APlaneNormal, | ||
TCoordinate | ACoef, | ||
int | ADirectInfoVertex = -1 , |
||
int | ADirectInfoParam = -1 |
||
) |
Applique une homothétie de coefficient ACoef selon le plan déterminé par le sommet APlaneVertex et le vecteur APlaneNormal sur tous les sommets marqués avec la marque AMarkNumber.
Si ADirectInfoVertex est positif ou nul, l'homothétie est appliquée sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, l'attribut sommet est directement modifié.
Si ADirectInfoParam est positif ou nul, l'étirement est pondéré avec la valeur stockée dans le champ directInfo[ADirectInfoParam].
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer l'homothétie |
APlaneVertex | Un sommet du plan d'homothétie |
APlaneNormal | Un vecteur normal du plan d'homothétie |
ACoef | Le coefficient d'homothétie |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
ADirectInfoParam | Indique où récupérer le paramètre de pondération |
! APlaneNormal.isNull()
void rotate | ( | int | AMarkNumber, |
const CVertex & | AAxeVertex, | ||
const CVertex & | AAxeDirection, | ||
TCoordinate | AAngle, | ||
int | ADirectInfoVertex = -1 , |
||
int | ADirectInfoParam = -1 |
||
) |
Applique une rotation sur tous les sommets marqués avec la marque AMarkNumber. Un sommet est modifié si au moins un brin de son orbite sommet est marqué.
Si ADirectInfoVertex est positif ou nul, la rotation est appliquée sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, l'attribut sommet est directement modifié.
Si ADirectInfoParam est positif ou nul, l'angle de rotation est pondéré avec la valeur stockée dans le champ directInfo[ADirectInfoParam].
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer la rotation |
AAxeVertex | Un sommet de l'axe de rotation |
AAxeDirection | Un vecteur directeur de l'axe de rotation |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
ADirectInfoParam | Indique où récupérer le paramètre de pondération |
!ALineDirection.isNull()
void scale | ( | int | AMarkNumber, |
const CVertex & | ACenter, | ||
const CVertex & | ACoef, | ||
int | ADirectInfoVertex = -1 , |
||
int | ADirectInfoParam = -1 |
||
) |
Applique un étirement sur tous les sommets marqués avec la marque AMarkNumber. Un sommet est modifié si au moins un brin de son orbite sommet est marqué.
Si ADirectInfoVertex est positif ou nul, l'étirement est appliqué sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, l'attribut sommet est directement modifié.
Si ADirectInfoParam est positif ou nul, l'étirement est pondéré avec la valeur stockée dans le champ directInfo[ADirectInfoParam].
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer l'étirement |
ACenter | Le centre d'étirement |
ACoef | Les coefficients d'étirement |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
ADirectInfoParam | Indique où récupérer le paramètre de pondération |
void scale | ( | int | AMarkNumber, |
const CVertex & | ACenter, | ||
TCoordinate | ACoef, | ||
int | ADirectInfoVertex = -1 , |
||
int | ADirectInfoParam = -1 |
||
) |
Applique un étirement sur tous les sommets marqués avec la marque AMarkNumber. Pour plus d'informations, voir la méthode 'scale' ci-dessus.
Remarque: La différence avec la méthode précédente réside dans le coefficient d'homothétie. Ici ce coefficient est un nombre réel, ce qui correspond à une homothétie avec des coefficients identiques dans les trois dimensions.
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer l'étirement |
ACenter | Le centre d'étirement |
ACoef | Le coefficient d'étirement |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
ADirectInfoParam | Indique où récupérer le paramètre de pondération |
void translate | ( | int | AMarkNumber, |
const CVertex & | AVector, | ||
int | ADirectInfoVertex = -1 , |
||
int | ADirectInfoParam = -1 |
||
) |
Applique une translation sur tous les sommets marqués avec la marque AMarkNumber. Un sommet est modifié si au moins un brin de son orbite sommet est marqué.
Si ADirectInfoVertex est positif ou nul, la translation est appliquée sur le sommet stocké dans le champ directInfo correspondant du brin, et le résultat est placé dans l'attribut sommet (stocké dans la liste d'embeddings). Si ADirectInfoVertex est strictement négatif, l'attribut sommet est directement modifié.
Si ADirectInfoParam est positif ou nul, la translation est pondérée avec la valeur stockée dans le champ directInfo[ADirectInfoParam].
AMarkNumber | Un numéro de marque permettant de reconnaître les sommets sur lesquels il faut appliquer la translation |
AVector | Le vecteur de translation |
ADirectInfoVertex | Indique où récupérer les coordonnées initiales |
ADirectInfoParam | Indique où récupérer le paramètre de pondération |