src/lib-gmapkernel/g-map-vertex/gmv-deformation.hh File Reference

This graph shows which files directly or indirectly include this file:

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)


Function Documentation

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".

Parameters:
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,
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.

Parameters:
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 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.

Parameters:
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 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].

Parameters:
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 'CGMapGenericallocMemoryToDirectInfo' avec ABytes = sizeof(TCoordinate) et AOrbitUsed = ORBIT_VERTEX.

Parameters:
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 'CGMapGenericallocMemoryToDirectInfo' avec ABytes = sizeof(TCoordinate) et AOrbitUsed = ORBIT_VERTEX.

Parameters:
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 'CGMapGenericallocMemoryToDirectInfo' avec ABytes = sizeof(TCoordinate) et AOrbitUsed = ORBIT_VERTEX.

Parameters:
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.

Parameters:
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.

Parameters:
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].

Parameters:
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].

Parameters:
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,
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.

Parameters:
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 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].

Parameters:
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 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].

Parameters:
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


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