GMap3d::CGMapVertex Class Reference

#include <g-map-vertex.hh>

Inherits GMap3d::CGMapGeneric.

Collaboration diagram for GMap3d::CGMapVertex:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 CGMapVertex ()
virtual ~CGMapVertex ()
void empty ()
virtual CDartnewDart ()
virtual void delDart (CDart *ADart)
CDartaddMapDart ()
CDartVertexaddMapDart (const CVertex &AVertex)
TCoordinate getBurstCoef (int ADim) const
void setBurstCoef (int ADim, TCoordinate ACoef)
CAttributeVertexfindVertex (CDart *ADart)
CAttributeVertexgetVertex (CDart *ADart) const
void setVertex (CDart *ADart, const CVertex &AVertex)
void setVertex (CDart *ADart, CAttributeVertex *AVertex)
void updateVertex (CDart *ADart, const CVertex &AVertex)
void delVertex (CDart *ADart)
CAttributeVertexremoveVertex (CDart *ADart)
CVertexgetBurstVertex (CDart *ADart) const
void setBurstVertex (CDart *ADart, const CVertex &AVertex)
CVertex computeBurstExtremity (CDart *ADart) const
CAttributeVertexgetDirectInfoAsAttributeVertex (CDart *ADart, int ADirectInfoIndex) const
CVertexgetDirectInfoAsVertex (CDart *ADart, int ADirectInfoIndex) const
TCoordinategetDirectInfoAsCoord (CDart *ADart, int ADirectInfoIndex) const
CDartprolongPolyline (CDart *ADart, const CVertex &AVertex)
bool isPlanarPolyline (CDart *ADart)
bool markNonPlanarPolylines (int AMarkNumber)
CDartcreatePolyline (const std::vector< CVertex > &AVector)
CDartcreatePole (int An, const CVertex &AVertex)
CDartcreateOpenedPole (int An, const CVertex &AVertex)
CDartcreateRegularPolygon (int An)
void createSphere (int AMeridians, int AParallels, CDart **ASouthPole, CDart **ANorthPole)
CDartcreateSphere (int AMeridians, int AParallels)
void createCylinder (int AMeridians, int AParallels, CDart **ABorder1, CDart **ABorder2, bool AClose1=true, bool AClose2=true)
CDartcreateCylinder (int AMeridians, int AParallels, bool AClose1=true, bool AClose2=true)
void createPyramid (int AMeridians, int AParallels, CDart **ABaseDart, CDart **APoleDart, bool ACloseBase=true)
CDartcreatePyramid (int AMeridians, int AParallels, bool ACloseBase=true)
void createTorus (int AMeridians, int AParallels, TCoordinate ARadiusProportion, CDart **AEquator)
CDartcreateTorus (int AMeridians, int AParallels, TCoordinate ARadiusProportion)
void createSquareIMeshed (int ASx, int ASy, int AMeshDimension, CDart *ASquareCorners[2][2])
CDartcreateSquareIMeshed (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 computeRegressionLine (int AMarkNumber, CVertex *ABarycenter, CVertex *ADirection)
void computeRegressionPlane (int AMarkNumber, TCoordinate *AA, TCoordinate *AB, TCoordinate *AC, TCoordinate *AD)
bool canPlate (CDart *ADart1, CDart *ADart2)
int getPlateDimension (CDart *ADart1, CDart *ADart2)
void plate (CDart *ADart1, CDart *ADart2, int ADimbool, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true)
bool intuitivePlate (CDart *ADart1, CDart *ADart2, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true)
void borderPlate (CDart *ADart1, CDart *ADart2, int ADim, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true)
void geoSew (CDart *ADart1, CDart *ADart2, int ADim, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true)
bool intuitiveGeoSew (CDart *ADart1, CDart *ADart2, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true)
void geoBorderSew (CDart *ADart1, CDart *ADart2, int ADim, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true)
bool intuitiveGeoBorderSew (CDart *ADart1, CDart *ADart2, bool ARotateCells=true, bool AScaleCells=true, bool ATranslateCells=true)
CDartinsertVertex (CDart *ADart)
int deleteNullLengthEdges ()
int deleteMarkedNullLengthEdges (int AMarkNumber)
CDartmaterializeBarycenter (int AMarkNumber)
CDartmaterializeAxe (CDart *ADart1, CDart *ADart2)
CDartmaterializePlane (CDart *ADart1, CDart *ADart2, CDart *ADart3)
CDartmaterializeNormalVector (CDart *ADart)
CDartmaterializeNormalPlane (CDart *ADart1, CDart *ADart2)
CDartmaterializeReferential ()
CDartimportOff2D (std::istream &AStream)
CDartimportOff3D (std::istream &AStream)
CDartaddEdgeOFF (std::vector< CVertex > &AInitVertices, unsigned int AV1, unsigned int AV2, int AIndex, CDart *APrec)
void linkFaceAlpha2OFF (std::vector< std::list< CDart * > > &ATestVertices, int AIndex, CDart *ADart)
int getOffDimension (const char *AFilename)
CDartimportOff (const char *AFilename)
bool exportOff2D (std::ostream &AStream)
bool exportOff3D (std::ostream &AStream)
bool exportOff (const char *AFilename)
bool exportOff3D (const char *AFilename)
int dualOfMarkedDarts (int ADim, int AMarkNumber)
void stopUp (CDart *ADart, int ADim)
CDarttriangulateEdge (CDart *ADart)
CDarttriangulateFace (CDart *ADart)
CDarttriangulateVolume (CDart *ADart)
bool shouldSwapEdge (CDart *AEdge, int AVertexDI=-1)
bool swapEdge (CDart *AEdge, int AVertexDI=-1)
void triangulateGeoFace (CDart *AFace, int ANewEdgesMark=-1, int AVertexDI=-1)
void triangulateMarkedFaces (int AMark, int ANewEdgesMark=-1, int AVertexDI=-1)
bool isPointInTriangle (const CVertex &APoint, const CVertex &AVertex1, const CVertex &AVertex2, const CVertex &AVertex3, const CVertex &ANormal)
TCoordinate getTriangleCoef (const CVertex &AVertex1, const CVertex &AVertex2, const CVertex &AVertex3)
CDartquadrangulateFace (CDart *ADart, bool AInsertVertices=true)
void allocCoordToDirectInfo (int AMarkNumber, int ADirectInfoIndex, TOrbit AOrbitUsed=ORBIT_NONE)
void allocCoordToDirectInfo (CDart *ADart, TOrbit AOrbit, int ADirectInfoIndex, TOrbit AOrbitUsed=ORBIT_NONE)
void duplicateVertexToDirectInfo (int AMarkNumber, int ADirectInfoNumber)
void deleteDuplicatedVertex (int ADirectInfoNumber)
void updateDirectInfoWithVertex (int ADirectInfoNumber)
void pointDirectInfoToAttributeVertex (int ADirectInfoIndex)
void pointDirectInfoToAttributeVertex (int ADirectInfoIndex, CDart *ADart)
void pointDirectInfoToAttributeVertex (int ADirectInfoIndex, CDart *ADart, TOrbit AOrbit)
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)
int thickenMarkedDarts (int AMarkNumber, TCoordinate AExtrusionCoef)
int mergeMarkedColinearEdges (int AMarkNumber, bool ADeleteDarts)
int mergeMarkedCoplanarFaces (int AMarkNumber, bool ADeleteDarts)
int mergeMarkedAlignedCells (int ADim, int AMarkNumber, bool ADeleteDarts)
bool exportToPov (std::ofstream &AOutStream)
int findMotif (CGMapVertex *AMap)
unsigned int countNumberOfMotifs (CGMapVertex *AMap)
bool findMotifFrom (CDart *AFromDart, unsigned int AMarkTreated, unsigned int AIndex, CGMapVertex *AMap, CDart *ADestDart, unsigned int AMarkTreated2)
void unmarkMotifMark (CDart *ADart, int AMark, int AIndex, CGMapVertex *AMap, CDart *ADart2, int AMark2)

Private Attributes

TCoordinate FBurstCoef [4]
TBurstMethod FBurstMethod
enum  TEmbedMethod { GMV_NO = 0, GMV_YES, GMV_CHECK }
void diveMesh1 (CDart *AFirstDart, CMesh1Diver &ADiver, TEmbedMethod ADiveBorders=GMV_YES, int AMeshDimension=1)
void diveMesh2 (CDart *AFirstDart, CMesh2Diver &ADiver, TEmbedMethod ADiveBorders=GMV_YES, int AMeshDimension=2)
void diveMesh3 (CDart *AFirstDart, CMesh3Diver &ADiver, TEmbedMethod ADiveBorders=GMV_YES)
void createMesh1 (int ASx, CDart *AMesh1Corners[2], CMesh1Diver &ADiver)
CDartcreateMesh1 (int ASx, CMesh1Diver &ADiver)
CDartcreateMesh1 (int ASx)
void createMesh2 (int ASx, int ASy, CDart *AFaceCorners[2][2], CMesh2Diver &ADiver)
CDartcreateMesh2 (int ASx, int ASy, CMesh2Diver &ADiver)
CDartcreateMesh2 (int ASx, int ASy)
void createMesh3 (int ASx, int ASy, int ASz, CDart *AMesh3Corners[2][2][2], CMesh3Diver &ADiver)
CDartcreateMesh3 (int ASx, int ASy, int ASz, CMesh3Diver &ADiver)
CDartcreateMesh3 (int ASx, int ASy, int ASz)
CVertex basicBarycenter (CDart *ADart, TOrbit AOrbit, int AOrbitMark, int ATreatedMark, int ADirectInfoVertex=-1)
CVertex barycenter (CDart *ADart, TOrbit AOrbit, int ADirectInfoVertex=-1)
CVertex barycenter (int AMarkNumber)
CVertex directInfoBarycenter (int ADirectInfoVertex)
void boundingBox (int AMarkNumber, CVertex &AMin, CVertex &AMax)
CVertex centerOfBoundingBox (int AMarkNumber)
void boundingBox (CDart *ADart, TOrbit AOrbit, CVertex &AMin, CVertex &AMax)
CVertex centerOfBoundingBox (CDart *ADart, TOrbit AOrbit)
TCoordinate edgeLength (CDart *ADart)
TCoordinate facePerimeter (CDart *ADart)
TCoordinate border1Length (CDart *ADart)
TCoordinate border2Length (CDart *ADart)
CVertex edgeVector (CDart *ADart)
CVertex edgeNormalVector (CDart *ADart)
CVertex faceNormalVector (CDart *ADart)
CVertex cellNormalVector (int ADim, CDart *ADart)
CVertex border2NormalVector (CDart *ADart)
CVertex regionNormalVector (CDart *ADart, int ADim)
CVertex regionNormalVector (CDart *ADart, int ADim, int AMarkNumber)
CVertex cellDimensionNormalVector (CDart *ADart, int ADim)
TCoordinate orbitLength (CDart *ADart, TOrbit AOrbit)
CVertex orbitNormalVector (CDart *ADart, TOrbit AOrbit)
void giveNumberToDarts (int ADirectInfoIndex)
bool save (const char *AFilename, TSaveFormat AFormat)
virtual bool save (std::ostream &AStream, TSaveFormat AFormat)
CDartload (const char *AFilename, TSaveFormat AFormat)
virtual CDartload (std::istream &AStream, TSaveFormat AFormat)
CDartload (const char *AFilename)
static TSaveFormat getFileFormat (const char *AFilename)
static const char * getFileHeader (TSaveFormat AFormat)
void setBurstMethod (TBurstMethod AMethod)
TBurstMethod getBurstMethod () const
void updateAllBurstDarts ()
void updateMarkedBurstDarts (int AMarkNumber, bool AUpdateIncidentVolumes=true)
void updateMarkedDartsMethodScale (int AMarkNumber, bool AUpdateIncidentVolumes)
void updateMarkedDartsMethodShift (int AMarkNumber, bool AUpdateIncidentVolumes)
void updateFaceMethodShift (int AMarkNumber, int AMarkI, CDart *ADart, const CVertex &ABaryVol, int ADirectIndex)
CDartextrudeByNormal (CDart *ADart, int ADim, bool AExtrusionWithAdjacentSews, TCoordinate AExtrusionCoef, int AMarkToExtrude=-1, int AMarkExtruded=-1)
CDartextrudeByPath (CDart *ADart, int ADim, CDart *APath, bool AExtrusionWithAdjacentSews, bool ARotateExtrudedCells, bool AScaleExtrudedCells, CDart *APonderationPath=NULL, int AMarkExtruded=-1, int ADirectInfoIndex=-1)
int extrudeByPathMarkedCells (int AMarkNumber, int ADim, CDart *APath, bool AExtrusionWithAdjacentSews, int AInitialTranslateExtrudedCells, int AInitialRotateExtrudedCells, bool ARotateExtrudedCells, bool AScaleExtrudedCells, CDart *APonderationPath=NULL)
CDartcreateRevolutionPath (const CVertex &AAxeVertex, const CVertex &AAxeDirection, const CVertex &AFirstVertex, TCoordinate AAngle, int ANbEdges)
CDartextrudeByRevolution (CDart *ADart, int ADim, const CVertex &AAxeVertex, const CVertex &AAxeDirection, const CVertex &AFirstVertex, TCoordinate AAngle, int ANbEdges, bool AExtrusionWithAdjacentSews, bool ARotateExtrudedCells, bool AScaleExtrudedCells, CDart *APonderationPath=NULL, int AMarkExtruded=-1, int ADirectInfoIndex=-1)
int extrudeByRevolutionMarkedCells (int AMarkNumber, int ADim, const CVertex &AAxeVertex, const CVertex &AAxeDirection, TCoordinate AAngle, int ANbEdges, bool AExtrusionWithAdjacentSews, int AInitialTranslateExtrudedCells, int AInitialRotateExtrudedCells, bool ARotateExtrudedCells, bool AScaleExtrudedCells, CDart *APonderationPath=NULL)
void markCellsToBeExtrudedByNormal (int ADim, int AMarkNumberSrce, int AMarkNumberDest)


Detailed Description

Définit la classe CGMapVertex (carte plongée sommets).

Author:
MOKA TEAM

Definition at line 51 of file g-map-vertex.hh.


Member Enumeration Documentation

Enumerator:
GMV_NO 
GMV_YES 
GMV_CHECK 

Definition at line 333 of file g-map-vertex.hh.


Constructor & Destructor Documentation

CGMapVertex::CGMapVertex (  ) 

Constructeur par défaut Construction d'une nouvelle instance de la classe. La g-carte créée est vide.

Returns:
Une nouvelle instance de la classe

Definition at line 28 of file gmv-instance.cc.

CGMapVertex::~CGMapVertex (  )  [virtual]

Destructeur Tous les brins de la carte ainsi que leurs plongements sont détruits.

Definition at line 40 of file gmv-instance.cc.


Member Function Documentation

CDart* GMap3d::CGMapVertex::addEdgeOFF ( std::vector< CVertex > &  AInitVertices,
unsigned int  AV1,
unsigned int  AV2,
int  AIndex,
CDart APrec 
)

Sous fonction utile pour ajouter une arête entre les sommets numéros AV1 et AV2. AInitVertices contient les sommets de départ AIndex est le numéro du direct info permettant d'étiquetter les brins par leur sommet incident, et APrec est le brin précédent de la face en cours de construction.

INLINE CDartVertex * GMap3d::CGMapVertex::addMapDart ( const CVertex AVertex  ) 

Crée une nouvelle instance de CDartVertex, dont le plongement est donné par AVertex.

Parameters:
AVertex Un sommet
Returns:
Un nouveau brin de type CDartVertex

Definition at line 59 of file gmv-inline.icc.

INLINE CDart * GMap3d::CGMapVertex::addMapDart (  ) 

Crée une nouvelle instance de CDartVertex. Le brin créé n'est pas plongé.

Returns:
Un nouveau brin, de type CDartVertex

Reimplemented from GMap3d::CGMapBasic.

Definition at line 53 of file gmv-inline.icc.

void CGMapVertex::allocCoordToDirectInfo ( CDart ADart,
TOrbit  AOrbit,
int  ADirectInfoIndex,
TOrbit  AOrbitUsed = ORBIT_NONE 
)

Alloue et si nécessaire initialise (dans le cas où la librairie GMP est utilisée) l'espace mémoire nécessaire pour stocker une valeur de type TCoordinate, ceci pour le champ directInfo[ADirectInfoIndex] des brins correspondant à l'orbite donnée par le couple (ADart, AOrbit).

Si AOrbitUsed est différent de ORBIT_NONE, l'allocation n'est faite que pour le brin porteur du plongement AOrbitUsed de chaque cellule d'orbite AOrbitUsed dont un brin au moins est sur l'orbite (ADart, AOrbit).

Parameters:
ADart Un brin quelconque de la carte
AOrbit Une orbite
ADirectInfoIndex L'indice du champ directInfo à utiliser
AOrbitUsed Une orbite quelconque

Definition at line 64 of file gmv-direct-info.cc.

void CGMapVertex::allocCoordToDirectInfo ( int  AMarkNumber,
int  ADirectInfoIndex,
TOrbit  AOrbitUsed = ORBIT_NONE 
)

Alloue et si nécessaire initialise (dans le cas où la librairie GMP est utilisée) l'espace mémoire nécessaire pour stocker une valeur de type TCoordinate, ceci pour le champ directInfo[ADirectInfoIndex] des brins marqués avec la marque AMarkNumber.

Si AOrbitUsed est différent de ORBIT_NONE, l'allocation n'est faite que pour le brin porteur du plongement AOrbitUsed de chaque cellule d'orbite AOrbitUsed dont un brin au moins est marqué.

Parameters:
AMarkNumber Un numéro de marque
ADirectInfoIndex L'indice du champ directInfo à utiliser
AOrbitUsed Une orbite quelconque

Definition at line 28 of file gmv-direct-info.cc.

void CGMapVertex::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

Definition at line 253 of file gmv-deformation.cc.

void CGMapVertex::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

Definition at line 43 of file gmv-deformation.cc.

void CGMapVertex::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

Definition at line 29 of file gmv-deformation.cc.

void CGMapVertex::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()

Definition at line 455 of file gmv-deformation.cc.

CVertex CGMapVertex::barycenter ( int  AMarkNumber  ) 

Calcule le barycentre d'un ensemble de sommets marqués avec la marque AMarkNumber.

Parameters:
AMarkNumber Un numéro de marque

Definition at line 118 of file gmv-geometry.cc.

CVertex CGMapVertex::barycenter ( CDart ADart,
TOrbit  AOrbit,
int  ADirectInfoVertex = -1 
)

Calcule le barycentre d'un ensemble de sommets déterminé par un brin ADart et une orbite AOrbit.

Si ADirectInfoVertex est positif ou nul, le plongement des sommets n'est pas recherché à l'aide de la méthode 'findVertex' mais est accédé directement à l'aide du champ directInfo[ADirectInfoVertex].

Parameters:
ADart Un brin de la carte
AOrbit Une orbite quelconque
ADirectInfoVertex Un indice correspondant à un champ directInfo

Definition at line 64 of file gmv-geometry.cc.

CVertex CGMapVertex::basicBarycenter ( CDart ADart,
TOrbit  AOrbit,
int  AOrbitMark,
int  ATreatedMark,
int  ADirectInfoVertex = -1 
)

Calcule le barycentre d'un ensemble de sommets déterminé par un brin ADart et une orbite AOrbit. Les brins marqués ne sont pas démarqués à la fin du parcours.

La méthode utilise un itérateur qui marque les brins avec les marques ATreatedMark et AOrbitMark et qui n'effectue pas de démarquage à la fin.

Si ADirectInfoVertex est positif ou nul, le plongement des sommets n'est pas recherché à l'aide de la méthode 'findVertex' mais est accédé directement à l'aide du champ directInfo[ADirectInfoVertex].

Parameters:
ADart Un brin de la carte
AOrbit Une orbite quelconque
AOrbitMark Le numéro de marque utilisé par l'itérateur pour le marquage des brins atteints
ATreatedMark Le numéro de marque utilisé pour le marquage des brins déjà traités
ADirectInfoVertex Un indice correspondant à un champ directInfo
AOrbit==ORBIT012 || AOrbit==ORBIT123 || AOrbit==ORBIT0123

Definition at line 29 of file gmv-geometry.cc.

TCoordinate CGMapVertex::border1Length ( CDart ADart  ) 

Calcule la longueur d'un 1-bord, c'est-à-dire la longueur de l'arête qui permettrait de boucher ce 1-bord.

Parameters:
ADart Un brin de la carte
Returns:
La longueur du 1-bord incident à ADart

Definition at line 337 of file gmv-geometry.cc.

TCoordinate CGMapVertex::border2Length ( CDart ADart  ) 

Calcule la longueur d'une 2-bord, c'est-à-dire la somme de la longueur de toutes les arêtes qui le constituent.

Parameters:
ADart Un brin de la carte
Returns:
La longueur du 2-bord incident à ADart

Definition at line 343 of file gmv-geometry.cc.

CVertex CGMapVertex::border2NormalVector ( CDart ADart  ) 

Calcule le vecteur normal d'un 2-bord. Ce vecteur n'est jamais nul. Le 2-bord n'est pas forcément plan. Il peut être ouvert. Il peut comporter moins de 3 sommets (le résultat est alors OZ).

Parameters:
ADart Un brin de la carte
Returns:
Le vecteur normal du 2-bord incident à ADart

Definition at line 503 of file gmv-geometry.cc.

void CGMapVertex::borderPlate ( CDart ADart1,
CDart ADart2,
int  ADim,
bool  ARotateCells = true,
bool  AScaleCells = true,
bool  ATranslateCells = true 
)

Effectue un placage des bords de dimension ADim incidents aux brins ADart1 et ADart2. Tout comme pour la méthode 'plate', c'est le bord incident à ADart1 qui est déplacé vers le bord incident à ADart2.

Parameters:
ADart1 Un brin de la carte
ADart2 Un brin de la carte
ADim Une dimension
ARotateCells Un booléen pour modifier ou non l'orientation
AScaleCells Un booléen pour modifier ou non la taille
ATranslateCells Un booléen pour modifier ou non la position

Definition at line 133 of file gmv-plating.cc.

void CGMapVertex::boundingBox ( CDart ADart,
TOrbit  AOrbit,
CVertex AMin,
CVertex AMax 
)

Calcule la boîte englobante d'un ensemble de sommets situés sur l'orbite (ADart, AOrbit).

Parameters:
ADart Un brin de la carte
AOrbit Une orbite quelconque
AMin Le point minimum de la boîte englobante
AMax Le point maximum de la boîte englobante

Definition at line 211 of file gmv-geometry.cc.

void CGMapVertex::boundingBox ( int  AMarkNumber,
CVertex AMin,
CVertex AMax 
)

Calcule la boîte englobante d'un ensemble de sommets dont un brin au moins est marqué avec la marque AMarkNumber.

Parameters:
AMarkNumber Un numéro de marque
AMin Le point minimum de la boîte englobante
AMax Le point maximum de la boîte englobante

Definition at line 161 of file gmv-geometry.cc.

bool CGMapVertex::canPlate ( CDart ADart1,
CDart ADart2 
)

Teste si les deux cellules incidentes aux brins passés en paramètres peuvent être plaquées (c'est le cas si elles ne sont pas dans la même composante connexe).

Parameters:
ADart1 Un brin de la carte
ADart2 Un brin de la carte
Un booléen indiquant si les deux cellules incidentes aux brins donnés peuvent être plaquées

Definition at line 28 of file gmv-plating.cc.

CVertex CGMapVertex::cellDimensionNormalVector ( CDart ADart,
int  ADim 
)

Calcule la moyenne des vecteurs normaux des faces de la cellule de dimension ADim incidente à ADart. Si la cellule n'est pas orientable, le vecteur retourné est nul.

Parameters:
ADart Un brin de la carte
ADim Une dimension (3 ou 4)
Returns:
Un vecteur (éventuellement nul)

Definition at line 610 of file gmv-geometry.cc.

CVertex CGMapVertex::cellNormalVector ( int  ADim,
CDart ADart 
)

Calcule le vecteur normal d'une cellule en s'appuyant sur les méthodes 'edgeNormalVector' et 'faceNormalVector'.

Parameters:
ADim La dimension de la cellule (0, 1 ou 2)
ADart Un brin incident à la cellule
Returns:
Le vecteur normal de la cellule

Definition at line 490 of file gmv-geometry.cc.

CVertex CGMapVertex::centerOfBoundingBox ( CDart ADart,
TOrbit  AOrbit 
)

Calcule la boîte englobante d'un ensemble de sommets situés sur l'orbite (ADart, AOrbit) puis retourne le centre de cette boîte englobante.

Parameters:
ADart Un brin de la carte
AOrbit Une orbite quelconque
Returns:
Le centre de la boîte englobante

Definition at line 251 of file gmv-geometry.cc.

CVertex CGMapVertex::centerOfBoundingBox ( int  AMarkNumber  ) 

Calcule la boîte englobante d'un ensemble de sommets dont un brin au moins est marqué avec la marque AMarkNumber puis retourne le centre de cette boîte englobante.

Parameters:
AMarkNumber Un numéro de marque
Returns:
Le centre de la boîte englobante

Definition at line 202 of file gmv-geometry.cc.

INLINE CVertex GMap3d::CGMapVertex::computeBurstExtremity ( CDart ADart  )  const

Retourne le plongement éclaté de la deuxième extrémité du brin ADart donné.

Parameters:
ADart Un brin de la carte
Returns:
Le plongement éclaté de l'extrémité du brin ADart donné

Definition at line 166 of file gmv-inline.icc.

void CGMapVertex::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()

Definition at line 110 of file gmv-deformation.cc.

void CGMapVertex::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()

Definition at line 145 of file gmv-deformation.cc.

void CGMapVertex::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

Definition at line 80 of file gmv-deformation.cc.

void CGMapVertex::computeRegressionLine ( int  AMarkNumber,
CVertex ABarycenter,
CVertex ADirection 
)

Calcule la droite de régression correspondant aux sommets dont un brin au moins est marqué avec la marque AMarkNumber. Cette droite est décrite par un sommet lui appartenant et un vecteur directeur.

Parameters:
AMarkNumber Un numéro de marque
ABarycenter Un sommet de la droite
ADirection Un vecteur directeur de la droite

Definition at line 28 of file gmv-regression.cc.

void CGMapVertex::computeRegressionPlane ( int  AMarkNumber,
TCoordinate AA,
TCoordinate AB,
TCoordinate AC,
TCoordinate AD 
)

Calcule le plan de régression correspondant aux sommets dont un brin au moins est marqué avec la marque AMarkNumber. Ce plan alpha pour équation cartésienne alpha*x + b*y + c*z + d = 0. Les paramètres alpha, b, c et d sont placés dans les paramètres A?.

Parameters:
AMarkNumber Un numéro de marque
A? Des pointeurs sur les paramètres de l'équation du plan

Definition at line 86 of file gmv-regression.cc.

unsigned int CGMapVertex::countNumberOfMotifs ( CGMapVertex AMap  ) 

Compte le nombre de fois que la carte *this est motif de la carte AMap.

Returns:
le nombre de motifs trouvés.

Definition at line 86 of file gmv-isomorphisme.cc.

void CGMapVertex::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

Definition at line 420 of file gmv-primitive.cc.

void CGMapVertex::createCubeIMeshed ( int  ASx,
int  ASy,
int  ASz,
int  AMeshDimension,
bool  ACreatedFaces[3][2],
CDart AFacesCorners[3][2][2][2] 
)

Appelle la méthode 'CGMapGenericcreateCubeIMeshed' puis plonge le cube créé. Le cube obtenu est centré sur l'origine et son côté vaut 1.

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
AFacesCorners Un tableau de dimension 3*2*2*2 de pointeurs sur brin

Definition at line 336 of file gmv-primitive.cc.

CDart * CGMapVertex::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.

Parameters:
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)
Returns:
Un brin du cylindre

Definition at line 170 of file gmv-primitive.cc.

void CGMapVertex::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

Definition at line 129 of file gmv-primitive.cc.

CDart * CGMapVertex::createMesh1 ( int  ASx  ) 

Cette méthode appelle 'createMesh1' ci dessus. Le plongement est déterminé par le plongeur: CMesh1BasicDiver(-OX/2, OX, ASx).

Parameters:
ASx Le nombre d'arêtes de la polyligne
Returns:
Un brin 1-libre de la polyligne

Definition at line 179 of file gmv-primitive-mesh.cc.

CDart * CGMapVertex::createMesh1 ( int  ASx,
CMesh1Diver ADiver 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createMesh1' ci-dessus et retourne le brin correspondant à AExtremity1.

Parameters:
ASx Le nombre d'arêtes de la polyligne
ADiver Un calculateur des plongements du maillage 1d
Returns:
Un brin 1-libre de la polyligne

Definition at line 170 of file gmv-primitive-mesh.cc.

void CGMapVertex::createMesh1 ( int  ASx,
CDart AMesh1Corners[2],
CMesh1Diver ADiver 
)

Appelle la méthode CGMapGeneric::createMesh1 et plonge la polyligne obtenue en utilisant ADiver.

Parameters:
ASx Le nombre d'arêtes de la polyligne
AMesh1Corners Un tableau de 2 pointeurs sur brin
AExtremity2 L'adresse d'un pointeur sur brin
ADiver Un calculateur des plongements du maillage 1d

Definition at line 160 of file gmv-primitive-mesh.cc.

CDart * CGMapVertex::createMesh2 ( int  ASx,
int  ASy 
)

Cette méthode appelle 'createMesh2' ci dessus. Le plongement est déterminé par le plongeur: CMesh2BasicDiver(-(OX+OY)/2, OX, ASx, OY, ASy).

Parameters:
ASx Le nombre (non nul) de subdivisions de la grille sur l'axe OX
ASy Le nombre (non nul) de subdivisions de la grille sur l'axe OY
Returns:
Un brin 1-libre de la grille

Definition at line 206 of file gmv-primitive-mesh.cc.

CDart * CGMapVertex::createMesh2 ( int  ASx,
int  ASy,
CMesh2Diver ADiver 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createMesh2' ci-dessus et retourne le brin correspondant à ACornerBL.

Parameters:
ASx Le nombre (non nul) de subdivisions de la grille sur l'axe OX
ASy Le nombre (non nul) de subdivisions de la grille sur l'axe OY
ADiver Un calculateur des plongements de la grille
Returns:
Un brin de la grille

Definition at line 197 of file gmv-primitive-mesh.cc.

void CGMapVertex::createMesh2 ( int  ASx,
int  ASy,
CDart AFaceCorners[2][2],
CMesh2Diver ADiver 
)

Appelle la méthode CGMapGeneric::createMesh2 et plonge la grille obtenue en utilisant ADiver.

Parameters:
ASx Le nombre (non nul) de subdivisions de la grille sur l'axe OX
ASy Le nombre (non nul) de subdivisions de la grille sur l'axe OY
AMesh2Corners Un tableau de taille 2*2 de pointeurs sur brin correspondant aux coins du maillage 2d
ADiver Un calculateur des plongements de la grille

Definition at line 185 of file gmv-primitive-mesh.cc.

CDart * CGMapVertex::createMesh3 ( int  ASx,
int  ASy,
int  ASz 
)

Cette méthode appelle 'createMesh3' ci dessus. Le plongement est déterminé par le plongeur: CMesh3BasicDiver(-(OX+OY+OZ)/2, OX, ASx, OY, ASy, OZ, ASz).

Parameters:
ASx Le nombre (non nul) de subdivisions de la grille sur l'axe OX
ASy Le nombre (non nul) de subdivisions de la grille sur l'axe OY
ASz Le nombre (non nul) de subdivisions de la grille sur l'axe OY
Returns:
Un brin 1-libre de la grille

Definition at line 234 of file gmv-primitive-mesh.cc.

CDart * CGMapVertex::createMesh3 ( int  ASx,
int  ASy,
int  ASz,
CMesh3Diver ADiver 
)

Cette méthode est fournie dans le but de faciliter l'exploitation du noyau. Elle appelle simplement la méthode 'createMesh3' ci-dessus et retourne le brin correspondant à AMesh3Corners[0][0][0].

Parameters:
ASx Le nombre (non nul) de subdivisions du maillage 3d sur l'axe OX
ASy Le nombre (non nul) de subdivisions du maillage 3d sur l'axe OY
ASz Le nombre (non nul) de subdivisions du maillage 3d sur l'axe OZ
ADiver Un calculateur des plongements du maillage 3d
Returns:
Un brin du maillage 3d

Definition at line 225 of file gmv-primitive-mesh.cc.

void CGMapVertex::createMesh3 ( int  ASx,
int  ASy,
int  ASz,
CDart AMesh3Corners[2][2][2],
CMesh3Diver ADiver 
)

Appelle la méthode CGMapGeneric::createMesh3 et plonge le maillage 3d obtenu en utilisant ADiver.

Parameters:
ASx Le nombre (non nul) de subdivisions du maillage 3d sur l'axe OX
ASy Le nombre (non nul) de subdivisions du maillage 3d sur l'axe OY
ASz Le nombre (non nul) de subdivisions du maillage 3d sur l'axe OZ
AMesh3Corners Un tableau de taille 2*2*2 de pointeurs sur brin correspondant aux coins du maillage 3d
ADiver Un calculateur des plongements du maillage 3d

Definition at line 212 of file gmv-primitive-mesh.cc.

CDart * CGMapVertex::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.

Parameters:
An Le nombre de triangles qui composent le pôle
AVertex Le plongement du sommet central du pôle
Returns:
Un brin 2-libre du sommet central du pôle

Definition at line 44 of file gmv-primitive.cc.

CDart * CGMapVertex::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.

Parameters:
An Le nombre de triangles qui composent le pôle
AVertex Le plongement du sommet central du pôle
Returns:
Un brin du sommet central du pôle

Definition at line 35 of file gmv-primitive.cc.

CDart* GMap3d::CGMapVertex::createPolyline ( const std::vector< CVertex > &  AVector  ) 

Utilise la méthode createMesh1 avec un CMesh1VectorDiver.

Parameters:
AVector Un vecteur contenant les sommets de la polyline
Returns:
Un brin extrémité de la polyline

CDart * CGMapVertex::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.

Parameters:
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)
Returns:
Un brin du cylindre

Definition at line 224 of file gmv-primitive.cc.

void CGMapVertex::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

Definition at line 183 of file gmv-primitive.cc.

CDart * CGMapVertex::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

Definition at line 53 of file gmv-primitive.cc.

CDart * CGMapVertex::createRevolutionPath ( const CVertex AAxeVertex,
const CVertex AAxeDirection,
const CVertex AFirstVertex,
TCoordinate  AAngle,
int  ANbEdges 
)

Crée un chemin d'extrusion composé de ANbEdges arêtes, ouvert ou fermé selon la valeur de AAngle. Ce chemin est utilisé pour simuler l'extrusion par révolution autour d'un axe.

Parameters:
AAxeVertex Un sommet de l'axe de révolution
AAxeDirection Un vecteur directeur de l'axe de révolution
AFirstVertex La position du 1er sommet du chemin
AAngle L'angle de révolution (compris entre -360 et +360)
ANbEdges Le nombre d'arêtes du chemin
Returns:
Un brin extrémité du chemin
!AAxeDirection.isNull() ANbEdges >= 3

Definition at line 568 of file gmv-extrusion.cc.

CDart * CGMapVertex::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.

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
Returns:
Un brin de la sphère

Definition at line 117 of file gmv-primitive.cc.

void CGMapVertex::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

Definition at line 73 of file gmv-primitive.cc.

CDart * CGMapVertex::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].

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

Definition at line 327 of file gmv-primitive.cc.

void CGMapVertex::createSquareIMeshed ( int  ASx,
int  ASy,
int  AMeshDimension,
CDart ASquareCorners[2][2] 
)

Appelle la méthode 'CGMapGenericcreateTopoSquareIMeshed' 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).

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

Definition at line 294 of file gmv-primitive.cc.

CDart * CGMapVertex::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.

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)
Returns:
Un brin du tore

Definition at line 281 of file gmv-primitive.cc.

void CGMapVertex::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

Definition at line 237 of file gmv-primitive.cc.

INLINE void GMap3d::CGMapVertex::delDart ( CDart ADart  )  [virtual]

Supprime le brin passé en paramètre (de type CDartVertex)

Parameters:
ADart Le brin à supprimer

Reimplemented from GMap3d::CGMapBasic.

Definition at line 45 of file gmv-inline.icc.

void CGMapVertex::deleteDuplicatedVertex ( int  ADirectInfoNumber  ) 

Libère l'espace mémoire alloué par la méthode 'duplicateVertexToDirectInfo'. Les champs directInfo libérés ne sont pas positionnés à NULL.

Attention: les brins sélectionnés devraient être les mêmes qu'au moment de l'appel à duplicateVertexToDirectInfo!

Parameters:
ADirectInfoNumber Un indice indiquant quel directInfo utiliser

Definition at line 110 of file gmv-direct-info.cc.

int CGMapVertex::deleteMarkedNullLengthEdges ( int  AMarkNumber  ) 

Supprime les arêtes de longueur nulle dont un brin au moins est marqué.

Returns:
Le nombre d'arêtes supprimées

Definition at line 38 of file gmv-null-length-edge.cc.

int CGMapVertex::deleteNullLengthEdges (  ) 

Supprime toutes les arêtes de longueur nulle de la carte.

Returns:
Le nombre d'arêtes supprimées

Definition at line 28 of file gmv-null-length-edge.cc.

INLINE void GMap3d::CGMapVertex::delVertex ( CDart ADart  ) 

Supprime s'il existe le plongement sommet du brin ADart.

Parameters:
ADart Un brin de la carte

Definition at line 134 of file gmv-inline.icc.

CVertex CGMapVertex::directInfoBarycenter ( int  ADirectInfoVertex  ) 

Calcule le barycentre d'un ensemble de sommets se trouvant dans le champ directInfo d'indice ADirectInfoVertex. Les champs directinfo doivent être initialisés avec la méthode duplicateVertexToDirectInfo.

Parameters:
ADirectInfoVertex Un indice correspondant à un champ directInfo

Definition at line 146 of file gmv-geometry.cc.

void CGMapVertex::diveMesh1 ( CDart AFirstDart,
CMesh1Diver ADiver,
TEmbedMethod  ADiveBorders = GMV_YES,
int  AMeshDimension = 1 
)

Plonge les sommets d'un maillage 1d généralement créé avec la méthode 'CGMapGenericcreateTopoMesh1'.

Si AMeshDimension > 1, le plongement est effectué le long du bord d'un maillage 2d ou 3d.

Le passage d'une arête à la suivante se fait de manières différentes en fonction de la valeur de AMeshDimension: Si AMeshDimension == 1 : alpha01 Si AMeshDimension == 2 : alpha0121 Si AMeshDimension == 3 : alpha012321

Parameters:
AFirstDart Un brin situé à l'origine du maillage 1d
ADiver Un calculateur des plongements du maillage 1d
ADiveBorders Indique s'il faut plonger le bord du maillage 1d (2 sommets)
AMeshDimension Un entier indiquant la dimension du maillage à plonger (1, 2 ou 3)

Definition at line 31 of file gmv-primitive-mesh.cc.

void CGMapVertex::diveMesh2 ( CDart AFirstDart,
CMesh2Diver ADiver,
TEmbedMethod  ADiveBorders = GMV_YES,
int  AMeshDimension = 2 
)

Plonge les sommets d'un maillage 2d généralement créé avec la méthode 'CGMapGenericcreateTopoMesh2'.

Si AMeshDimension == 3, le plongement est effectué le long du bord d'un maillage 3d.

Le passage d'une face à la suivante se fait de manières différentes en fonction de la valeur de AMeshDimension: Si AMeshDimension == 2 : alpha0121 Si AMeshDimension == 3 : alpha012321

Parameters:
AFirstDart Un brin situé à l'origine du maillage 2d
ADiver Un calculateur des plongements du maillage 2d
ADiveBorders Indique s'il faut plonger le bord du maillage 2d (4 arêtes)
AMeshDimension Un entier indiquant la dimension du maillage à plonger (2 ou 3)

Definition at line 62 of file gmv-primitive-mesh.cc.

void CGMapVertex::diveMesh3 ( CDart AFirstDart,
CMesh3Diver ADiver,
TEmbedMethod  ADiveBorders = GMV_YES 
)

Plonge les sommets d'un maillage 3d généralement créé avec la méthode 'CGMapGenericcreateTopoMesh3'.

Parameters:
AFirstDart Un brin situé à l'origine du maillage 3d
ADiver Un calculateur des plongements du maillage 3d
ADiveBorders Indique s'il faut plonger le bord du maillage 3d (6 faces)

Definition at line 107 of file gmv-primitive-mesh.cc.

int CGMapVertex::dualOfMarkedDarts ( int  ADim,
int  AMarkNumber 
)

Calcule le dual en dimension ADim d'un ensemble de brins. À chaque cellule C de dimension ADim de l'objet initial est associé un sommet S placé sur le barycentre de C.

Parameters:
ADim La dimension dans laquelle le dual est calculé
AMarkNumber Un numéro de marque
Returns:
Le nombre de brins dupliqués
(ADim == 2) || (ADim == 3)

Definition at line 30 of file gmv-dual.cc.

void CGMapVertex::duplicateVertexToDirectInfo ( int  AMarkNumber,
int  ADirectInfoNumber 
)

Duplique le plongement sommet des sommets sélectionnés. Le sommet dupliqué est rattaché à un brin de l'orbite sommet, qui est le même que celui qui porte l'attribut original.

Un sommet est sélectionné si au moins un de ses brins est marqué avec la marque AMarkNumber.

L'espace alloué par cette méthode peut être libéré à l'aide de la méthode 'deleteDuplicatedVertex'.

Parameters:
AMarkNumber Un numéro de marque
ADirectInfoNumber Un indice indiquant quel directInfo utiliser

Definition at line 79 of file gmv-direct-info.cc.

TCoordinate CGMapVertex::edgeLength ( CDart ADart  ) 

Calcule la longueur d'une arête.

Parameters:
ADart Un brin de la carte
Returns:
La longueur de l'arête incidente à ADart

Definition at line 321 of file gmv-geometry.cc.

CVertex CGMapVertex::edgeNormalVector ( CDart ADart  ) 

Calcule le vecteur normal d'une arête. Ce vecteur n'est jamais nul. Si l'arête est de longueur nulle, la méthode retourne OX, sinon elle appelle 'CGeometrygetNormalVector'.

Parameters:
ADart Un brin de la carte
Returns:
Le vecteur normal de l'arête incidente à ADart

Definition at line 472 of file gmv-geometry.cc.

CVertex CGMapVertex::edgeVector ( CDart ADart  ) 

Calcule * findVertex(alpha0(ADart)) - * findVertex(ADart).

Parameters:
ADart Un brin de la carte
Returns:
Le vecteur correpondant à l'arête incidente à ADart

Definition at line 465 of file gmv-geometry.cc.

INLINE void GMap3d::CGMapVertex::empty (  )  [virtual]

Destruction de tous les brins de la carte. Cette méthode appelle la méthode 'empty' de la classe CGMapBasic, puis sélectionne l'orbite ORBIT_VERTEX comme orbite utilisée.

Reimplemented from GMap3d::CGMapBasic.

Definition at line 31 of file gmv-inline.icc.

bool CGMapVertex::exportOff ( const char *  AFilename  ) 

Exporte la carte courante au format off2D ou off3D selon la dimension de la carte courante.

Parameters:
AFilename Le nom du fichier dans lequel écrire le contenu de la carte
Returns:
'vrai' si l'export s'est bien déroulé

Definition at line 553 of file gmv-off.cc.

bool CGMapVertex::exportOff2D ( std::ostream &  AStream  ) 

Exporte la carte courante au format off2D.

Parameters:
AStream Un flot dans lequel écrire le contenu de la carte
Returns:
'vrai' si l'export s'est bien déroulé

Definition at line 397 of file gmv-off.cc.

bool CGMapVertex::exportOff3D ( const char *  AFilename  ) 

Exporte la carte courante au format off3D.

Parameters:
AFilename Le nom du fichier dans lequel écrire le contenu de la carte
Returns:
'vrai' si l'export s'est bien déroulé

Definition at line 568 of file gmv-off.cc.

bool CGMapVertex::exportOff3D ( std::ostream &  AStream  ) 

Exporte la carte courante au format off3D.

Parameters:
AStream Un flot dans lequel écrire le contenu de la carte
Returns:
'vrai' si l'export s'est bien déroulé

Definition at line 462 of file gmv-off.cc.

bool GMap3d::CGMapVertex::exportToPov ( std::ofstream &  AOutStream  ) 

Exporte la carte vers le format PoV (Persistence of Vision). PoV-ray est un lanceur de rayons. (voir www.povray.org).

Parameters:
AOutStream Le flot dans lequel sera écrit le fichier.
Returns:
Un booléen indiquant si l'opération s'est bien déroulée.

CDart * CGMapVertex::extrudeByNormal ( CDart ADart,
int  ADim,
bool  AExtrusionWithAdjacentSews,
TCoordinate  AExtrusionCoef,
int  AMarkToExtrude = -1,
int  AMarkExtruded = -1 
) [virtual]

Extrude la cellule de dimension ADim incidente à ADart. Si AMarkToExtrude est positive ou nulle, cette marque indique les cellules qui doivent être extrudées. Selon que les cellules voisines de la cellule en cours doivent être extrudées ou pas et selon la valeur que renvoie la méthode 'CGMapGenericgetExtrusionWithAdacentSews', les plongements ne sont pas calculés de la même manière.

La méthode appelle 'CGMapGenericextrudeByNormal' puis calcule les plongements des sommets topologiques créés.

Pour la signification du paramètre AMarkToExtrude, se reporter à la méthode 'CGMapGenericextrudeByNormal'. Pour la signification des paramètres AMarkExtruded et AExtrusionWithAdjacentSews, se reporter à la méthode 'CGMapGenerictopoExtrude'.

Parameters:
ADart Un brin de la carte
ADim Une dimension (0, 1 ou 2)
AExtrusionWithAdjacentSews Un booléen
AExtrusionCoef Un TCoordinate fixant le coefficient d'extrusion. Ce coefficient est utilisé pour pondérer le vecteur d'extrusion.
AMarkToExtrude Une marque indiquant les cellules à extruder
AMarkExtruded Une marque indiquant les cellules déjà extrudées
Returns:
Un brin de la cellule créée, situé à l'opposé de ADart
canExtrudeCell(ADart, ADim)

Reimplemented from GMap3d::CGMapGeneric.

Definition at line 29 of file gmv-extrusion.cc.

CDart * CGMapVertex::extrudeByPath ( CDart ADart,
int  ADim,
CDart APath,
bool  AExtrusionWithAdjacentSews,
bool  ARotateExtrudedCells,
bool  AScaleExtrudedCells,
CDart APonderationPath = NULL,
int  AMarkExtruded = -1,
int  ADirectInfoIndex = -1 
)

Extrude la cellule de dimension ADim incidente à ADart selon le chemin donné par APath (orbite O1).

La méthode appelle 'CGMapGenericextrudeByPath' puis calcule les plongements des sommets topologiques créés.

Pour la signification du paramètre AMarkExtruded, se reporter à la méthode 'CGMapGenerictopoExtrude'.

Pour la signification du paramètre ADirectInfoIndex, se reporter à la méthode 'CGMapGenericextrudeByPath'.

Si APonderationPath est différent de NULL, une homothétie est appliquée sur chaque section de l'objet obtenu après extrusion. Chaque homothétie est centrée sur le sommet du chemin d'extrusion lui correspondant. APonderationDart désigne un chemin dont les sommets (plus précisément la valeur donnée par 'CVertexgetY' appliquée sur ces sommets) donnent les coefficients d'homothétie.

Remarque: Le nombre d'arêtes du chemin peut être différent du nombre d'arêtes de la fonction de pondération. Si c'est le cas, le paramètre de pondération est calculé par interpolation linéaire.

Remarque: Si la fonction de pondération s'annule pour une valeur donnée, tous les sommets de la section correspondante sont confondus. Cette section réduite à un sommet se propage alors jusqu'à la fin de l'extrusion.

Parameters:
ADart Un brin de la carte incident à la cellule à extruder
ADim Une dimension (1 ou 2)
APath Un brin de la carte incident au chemin d'extrusion
APonderationPath Un brin de la carte
AExtrusionWithAdjacentSews Un booléen
ARotateExtrudedCells Un booléen indiquant si les objets extrudés doivent être orientés
AScaleExtrudedCells Un booléen indiquant si les objets extrudés doivent être redimensionnés
AMarkExtruded Une marque indiquant les cellules déjà extrudées
ADirectInfoIndex Un indice de champ directInfo
Returns:
Un brin de la dernière cellule créée, situé à l'opposé de ADart
canExtrudeByPath(ADart, ADim, APath) APonderationPath==NULL || ! isClosedPolyline(APonderationPath)

Definition at line 109 of file gmv-extrusion.cc.

int CGMapVertex::extrudeByPathMarkedCells ( int  AMarkNumber,
int  ADim,
CDart APath,
bool  AExtrusionWithAdjacentSews,
int  AInitialTranslateExtrudedCells,
int  AInitialRotateExtrudedCells,
bool  ARotateExtrudedCells,
bool  AScaleExtrudedCells,
CDart APonderationPath = NULL 
)

Surcharge la méthode 'CGMapGenericextrudeByPathMarkedCells'. Les cellules sont éventuellement positionnées perpendiculairement au chemin avant d'effectuer l'extrusion (voir méthodes 'setExtrusionInitialPosition' et 'setExtrusionInitialDirection').

Attention: si 'getExtrusionInitialDirection' retourne la valeur 'vrai', le vecteur normal de chaque cellule à extruder est calculé, ce qui implique qu'un brin sur deux au maximum pour chaque cellule doit être sélectionné pour éviter toute ambiguïté.

Pour la signification des paramètres APonderationDart,ARotateExtrudedCells et AScaleExtrudedCells, se reporter à la méthode 'extrudeByPath'.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension (1 ou 2)
APath Un brin de la carte incident au chemin d'extrusion
AExtrusionWithAdjacentSews Un booléen
AInitialTranslateExtrudedCells Un entier indiquant si les objets extrudés doivent être translatés sur le premier sommet du chemin. 0 : Aucune translation. 1 : Les objets extrudés sont initialement translatés sur le chemin. 2 : Le chemin est initialement déplacé sur le barycentre des cellules à extruder.
AInitialRotateExtrudedCells Un entier indiquant comment les objets à extruder et le chemin doivent être orientés l'un par rapport à l'autre avant l'extrusion. 0 : Aucune rotation. 1 : Les objets extrudés sont initialement orientés perpendiculairement à la première arête du chemin. 2 : Le chemin est initialement orienté de manière à être perpendiculaire aux cellules à extruder.
ARotateExtrudedCells Un booléen
AScaleExtrudedCells Un booléen
APonderationPath Un brin de la carte
Returns:
Le nombre de cellules extrudées selon le chemin donné

Definition at line 340 of file gmv-extrusion.cc.

CDart * CGMapVertex::extrudeByRevolution ( CDart ADart,
int  ADim,
const CVertex AAxeVertex,
const CVertex AAxeDirection,
const CVertex AFirstVertex,
TCoordinate  AAngle,
int  ANbEdges,
bool  AExtrusionWithAdjacentSews,
bool  ARotateExtrudedCells,
bool  AScaleExtrudedCells,
CDart APonderationPath = NULL,
int  AMarkExtruded = -1,
int  ADirectInfoIndex = -1 
)

Extrude la cellule de dimension ADim incidente à ADart selon autour d'un axe. La méthode crée un chemin constitué de ANbEdges arêtes qui est fermé ou ouvert selon la valeur de AAngle puis appelle la méthode 'extrudeByPath'.

Pour la signification des paramètres AMarkExtruded, ADirectInfoIndex, APonderationPath, AExtrusionWithAdjacentSews, ARotateExtrudedCells, AScaleExtrudedCells se reporter à la méthode 'extrudeByPath'.

Parameters:
ADart Un brin de la carte incident à la cellule à extruder
ADim Une dimension (1 ou 2)
AAxeVertex Un sommet de l'axe de révolution
AAxeDirection Un vecteur directeur de l'axe de révolution
AFirstVertex La position du barycentre des cellules à extruder
AAngle L'angle de révolution (compris entre -360 et +360)
ANbEdges Le nombre de sections à créer
AExtrusionWithAdjacentSews Un booléen
ARotateExtrudedCells Un booléen
AScaleExtrudedCells Un booléen
APonderationPath Un brin de la carte
AMarkExtruded Un numéro de marque
ADirectInfoIndex Un indice de champ directInfo
Returns:
Un brin de la dernière cellule créée, situé à l'opposé de ADart
canExtrudeByRevolution(ADart, ADim, closed), avec closed = vrai si AAngle/360 est une valeur entière !AAxeDirection.isNull() ANbEdges >= 3

Definition at line 602 of file gmv-extrusion.cc.

int CGMapVertex::extrudeByRevolutionMarkedCells ( int  AMarkNumber,
int  ADim,
const CVertex AAxeVertex,
const CVertex AAxeDirection,
TCoordinate  AAngle,
int  ANbEdges,
bool  AExtrusionWithAdjacentSews,
int  AInitialTranslateExtrudedCells,
int  AInitialRotateExtrudedCells,
bool  ARotateExtrudedCells,
bool  AScaleExtrudedCells,
CDart APonderationPath = NULL 
)

Calcule le chemin correspondant à l'axe donné et appelle la méthode 'extrudeByPathMarkedCells'. Les cellules sont éventuellement positionnées perpendiculairement au chemin avant d'effectuer l'extrusion (voir la méthode 'setExtrusionInitialDirection').

Attention: si 'getExtrusionInitialDirection' retourne la valeur 'vrai', le vecteur normal de chaque cellule à extruder est calculé, ce qui implique qu'un brin sur deux au maximum pour chaque cellule doit être sélectionné pour éviter toute ambiguïté.

Pour la signification du paramètre APonderationDart, AExtrusionWithAdjacentSews, ARotateExtrudedCells et AScaleExtrudedCells se reporter à la méthode 'extrudeByPath'. Pour la signification des paramètres AInitialTranslateExtrudedCells et AInitialRotateExtrudedCells, voir la méthode 'extrudeByPathMarkedCells'.

Parameters:
AMarkNumber Un numéro de marque
ADim Une dimension (1 ou 2)
AAxeVertex Un sommet de l'axe de révolution
AAxeDirection Un vecteur directeur de l'axe de révolution
ANbEdges Le nombre de sections à créer
AExtrusionWithAdjacentSews Un booléen
AInitialTranslateExtrudedCells Un entier
AInitialRotateExtrudedCells Un entier
APonderationPath Un brin de la carte
Returns:
Le nombre de cellules extrudées selon l'axe donné
!AAxeDirection.isNull() ANbEdges >= 3

Definition at line 640 of file gmv-extrusion.cc.

CVertex CGMapVertex::faceNormalVector ( CDart ADart  ) 

Calcule le vecteur normal d'une face. Ce vecteur n'est jamais nul. La face n'est pas forcément plane. Elle peut être ouverte. Elle peut comporter moins de 3 sommets (le résultat est alors OZ).

Parameters:
ADart Un brin de la carte
Returns:
Le vecteur normal de la face incidente à ADart

Definition at line 484 of file gmv-geometry.cc.

TCoordinate CGMapVertex::facePerimeter ( CDart ADart  ) 

Calcule le périmètre d'une face.

Parameters:
ADart Un brin de la carte
Returns:
Le périmètre de la face incidente à ADart

Definition at line 331 of file gmv-geometry.cc.

int CGMapVertex::findMotif ( CGMapVertex AMap  ) 

Cherche si la carte *this est un motif de la carte AMap.

Returns:
-1 si motif non trouvé, le numéro du direct info contenant l'injection sinon (valide pour les brins marqués pour AMarkToTest) Retourne le premier motif trouvé.

Definition at line 31 of file gmv-isomorphisme.cc.

bool CGMapVertex::findMotifFrom ( CDart AFromDart,
unsigned int  AMarkTreated,
unsigned int  AIndex,
CGMapVertex AMap,
CDart ADestDart,
unsigned int  AMarkTreated2 
)

Cherche si la carte *this est un motif de la carte AMap à partir du brin AFromDart dans la carte this et ADestDart dans la carte AMap. AMarkTreated est le numéro de marque utilisé pour marquer les brins déjà traités.

Returns:
vrai ssi motif trouvé, faux sinon. Dans les 2 cas, le champ directInfo[AIndex] contient l'injection affectée (partiellement en cas d'échec.

Definition at line 164 of file gmv-isomorphisme.cc.

INLINE CAttributeVertex * GMap3d::CGMapVertex::findVertex ( CDart ADart  ) 

Renvoie le sommet associé à un brin, en parcourant si nécessaire tous les brins du sommet.

Parameters:
ADart Un brin de la carte
Returns:
Le plongement sommet du brin

Definition at line 84 of file gmv-inline.icc.

void CGMapVertex::geoBorderSew ( CDart ADart1,
CDart ADart2,
int  ADim,
bool  ARotateCells = true,
bool  AScaleCells = true,
bool  ATranslateCells = true 
)

Plaque le bord dimension ADim incident à ADart1 sur le bord de dimension ADim incident à ADart2 (si cela est possible) avant de les coudre entre eux.

Parameters:
ADart1 Un brin de la carte
ADart2 Un brin de la carte
ADim La dimension dans laquelle doit se faire la couture
ARotateCells Un booléen pour modifier ou non l'orientation
AScaleCells Un booléen pour modifier ou non la taille
ATranslateCells Un booléen pour modifier ou non la position
0 <= ADim <= 3 canSew(ADart1, ADart2, ADim)

Definition at line 58 of file gmv-geo-sew.cc.

void CGMapVertex::geoSew ( CDart ADart1,
CDart ADart2,
int  ADim,
bool  ARotateCells = true,
bool  AScaleCells = true,
bool  ATranslateCells = true 
)

Plaque la cellule de dimension ADim incidente à ADart1 sur la cellule de dimension ADim incidente à ADart2 (si cela est possible) avant de les coudre entre elles.

Parameters:
ADart1 Un brin de la carte
ADart2 Un brin de la carte
ADim La dimension dans laquelle doit se faire la couture
ARotateCells Un booléen pour modifier ou non l'orientation
AScaleCells Un booléen pour modifier ou non la taille
ATranslateCells Un booléen pour modifier ou non la position
0 <= ADim <= 3 canSew(ADart1, ADart2, ADim)

Definition at line 28 of file gmv-geo-sew.cc.

INLINE TCoordinate GMap3d::CGMapVertex::getBurstCoef ( int  ADim  )  const

Retourne le coefficient d'éclatement de la dimension ADim.

Parameters:
ADim Une dimension
Returns:
Une valeur comprise entre 0 et 1

Definition at line 67 of file gmv-inline.icc.

TBurstMethod CGMapVertex::getBurstMethod (  )  const

Definition at line 34 of file gmv-burstview.cc.

INLINE CVertex & GMap3d::CGMapVertex::getBurstVertex ( CDart ADart  )  const

Retourne le plongement éclaté de la première extrémité du brin ADart donné.

Parameters:
ADart Un brin de la carte
Returns:
Le plongement éclaté de ADart

Definition at line 152 of file gmv-inline.icc.

INLINE CAttributeVertex * GMap3d::CGMapVertex::getDirectInfoAsAttributeVertex ( CDart ADart,
int  ADirectInfoIndex 
) const

Retourne le champ directInfo demandé du brin ADart après l'avoir retypé en pointeur sur un attribut sommet.

Parameters:
ADart Un brin de la carte
ADirectInfoIndex Un indice de champ directInfo
Returns:
Un pointeur sur un attribut sommet

Definition at line 185 of file gmv-inline.icc.

INLINE TCoordinate * GMap3d::CGMapVertex::getDirectInfoAsCoord ( CDart ADart,
int  ADirectInfoIndex 
) const

Retourne le champ directInfo demandé du brin ADart après l'avoir retypé en pointeur sur une coordonnée (TCoordinate).

Parameters:
ADart Un brin de la carte
ADirectInfoIndex Un indice de champ directInfo
Returns:
Un pointeur sur une coordonnée

Definition at line 202 of file gmv-inline.icc.

INLINE CVertex * GMap3d::CGMapVertex::getDirectInfoAsVertex ( CDart ADart,
int  ADirectInfoIndex 
) const

Retourne le champ directInfo demandé du brin ADart après l'avoir retypé en pointeur sur un sommet.

Parameters:
ADart Un brin de la carte
ADirectInfoIndex Un indice de champ directInfo
Returns:
Un pointeur sur un sommet

Definition at line 194 of file gmv-inline.icc.

TSaveFormat CGMapVertex::getFileFormat ( const char *  AFilename  )  [static]

Détermine le format du fichier dont le nom est passé en paramètre.

Parameters:
AFilename Un nom de fichier
Returns:
Le format du fichier

Definition at line 40 of file gmv-save.cc.

const char * CGMapVertex::getFileHeader ( TSaveFormat  AFormat  )  [static]

Retourne la chaîne de caractère placée en début d'un fichier de sauvegarde et permettant la reconnaissance du format utilisé lors de la sauvegarde.

Parameters:
AFormat Un type de format
Returns:
Une chaîne de caractères

Definition at line 54 of file gmv-save.cc.

int CGMapVertex::getOffDimension ( const char *  AFilename  ) 

Returns:
la dimension du fichier off en lisant l'entête: 2, 3 ou -1 si erreur

Definition at line 369 of file gmv-off.cc.

int CGMapVertex::getPlateDimension ( CDart ADart1,
CDart ADart2 
)

Calcule la dimension maximum des cellules incidentes aux brins donnés qui peuvent être plaquées, en tenant compte de l'état des coutures de chacun de ces brins (par exemple, pour faire un placage de faces, il faut qu'au moins un des brins soit 3-cousu). Si le placage est impossible, la valeur -1 est retournée, sinon la valeur retournée vaut 0, 1 ou 2.

Parameters:
ADart1 Un brin de la carte
ADart2 Un brin de la carte
Returns:
Un entier indiquant la dimension des cellules incidentes aux brins donnés pouvant être plaquées

Definition at line 34 of file gmv-plating.cc.

TCoordinate CGMapVertex::getTriangleCoef ( const CVertex AVertex1,
const CVertex AVertex2,
const CVertex AVertex3 
)

Returns:
le coefficient du triangle (AVertex1, AVertex2, AVertex3)

Definition at line 274 of file gmv-triangulation.cc.

INLINE CAttributeVertex * GMap3d::CGMapVertex::getVertex ( CDart ADart  )  const

Renvoie le sommet associé à un brin. La méthode renvoie NULL si le plongement sommet n'est pas porté par ADart.

Parameters:
ADart Un brin de la carte
Returns:
Le plongement sommet du brin

Definition at line 93 of file gmv-inline.icc.

void CGMapVertex::giveNumberToDarts ( int  ADirectInfoIndex  ) 

Numérote les n brins de la carte de 0 à n-1 en utilisant un champ directInfo.

Parameters:
ADirectInfoIndex Un indice indiquant où placer les numéros des brins

Definition at line 32 of file gmv-save.cc.

CDart * CGMapVertex::importOff ( const char *  AFilename  ) 

Importe une carte à partir d'un fichier au format ASCII Object File Format. en lisant l'entête pour savoir si c'est un fichier off2D ou off3D. Les brins qui composent la carte avant le chargement ne sont pas détruits.

Parameters:
AFilename Un nom de fichier
Returns:
Un brin de la carte chargée si le chargement s'est bien déroulé, NULL sinon

Definition at line 383 of file gmv-off.cc.

CDart * CGMapVertex::importOff2D ( std::istream &  AStream  ) 

Importe une carte 2D à partir d'un flot au format ASCII Object File Format. Les brins qui composent la carte avant le chargement ne sont pas détruits.

Parameters:
AStream Un flot dans lequel lire le contenu de la carte à charger
Returns:
Un brin de la carte chargée si le chargement s'est bien déroulé, NULL sinon

Definition at line 139 of file gmv-off.cc.

CDart * CGMapVertex::importOff3D ( std::istream &  AStream  ) 

Importe une carte 3D à partir d'un flot au format ASCII Object File Format. Les brins qui composent la carte avant le chargement ne sont pas détruits.

Parameters:
AStream Un flot dans lequel lire le contenu de la carte à charger
Returns:
Un brin de la carte chargée si le chargement s'est bien déroulé, NULL sinon

Definition at line 280 of file gmv-off.cc.

CDart * CGMapVertex::insertVertex ( CDart ADart  )  [virtual]

Insère un sommet sur une arête. Le plongement du sommet créé correspond au milieu de l'arête initiale.

Parameters:
ADart Un brin de la carte
Returns:
Un brin du sommet nouvellement créé

Reimplemented from GMap3d::CGMapGeneric.

Definition at line 28 of file gmv-insertion.cc.

bool CGMapVertex::intuitiveGeoBorderSew ( CDart ADart1,
CDart ADart2,
bool  ARotateCells = true,
bool  AScaleCells = true,
bool  ATranslateCells = true 
)

Appelle la méthode 'geoSewBorders' après avoir déterminé la dimension dans laquelle doit se faire la couture à l'aide de la méthode 'getBorderDimension'.

Parameters:
ADart1 Un brin de la carte
ADart2 Un brin de la carte
ARotateCells Un booléen pour modifier ou non l'orientation
AScaleCells Un booléen pour modifier ou non la taille
ATranslateCells Un booléen pour modifier ou non la position
Returns:
Un booléen indiquant si la couture alpha pu se faire

Definition at line 72 of file gmv-geo-sew.cc.

bool CGMapVertex::intuitiveGeoSew ( CDart ADart1,
CDart ADart2,
bool  ARotateCells = true,
bool  AScaleCells = true,
bool  ATranslateCells = true 
)

Appelle la méthode 'geoSew' après avoir déterminé la dimension dans laquelle doit se faire la couture à l'aide de la méthode 'getSewDimension'.

Parameters:
ADart1 Un brin de la carte
ADart2 Un brin de la carte
ARotateCells Un booléen pour modifier ou non l'orientation
AScaleCells Un booléen pour modifier ou non la taille
ATranslateCells Un booléen pour modifier ou non la position
Returns:
Un booléen indiquant si la couture alpha pu se faire

Definition at line 42 of file gmv-geo-sew.cc.

bool CGMapVertex::intuitivePlate ( CDart ADart1,
CDart ADart2,
bool  ARotateCells = true,
bool  AScaleCells = true,
bool  ATranslateCells = true 
)

Effectue un placage comme la méthode 'plate'. La dimension du placage est déterminée par la méthode 'getPlateDimension'.

Parameters:
ADart1 Un brin de la carte
ADart2 Un brin de la carte
ARotateCells Un booléen pour modifier ou non l'orientation
AScaleCells Un booléen pour modifier ou non la taille
ATranslateCells Un booléen pour modifier ou non la position
Returns:
true si le placage alpha été possible

Definition at line 119 of file gmv-plating.cc.

bool CGMapVertex::isPlanarPolyline ( CDart ADart  ) 

Teste si une face est plane.

Parameters:
ADart Un brin quelconque de la carte
Returns:
'vrai' si tous les sommets de la face sont situés sur un même plan

Definition at line 36 of file gmv-polyline.cc.

bool CGMapVertex::isPointInTriangle ( const CVertex APoint,
const CVertex AVertex1,
const CVertex AVertex2,
const CVertex AVertex3,
const CVertex ANormal 
)

Returns:
vrai ssi le point APoint se trouve à l'intérieur du triangle (AVertex1, AVertex2, AVertex3) de normale ANormal.

Definition at line 260 of file gmv-triangulation.cc.

void GMap3d::CGMapVertex::linkFaceAlpha2OFF ( std::vector< std::list< CDart * > > &  ATestVertices,
int  AIndex,
CDart ADart 
)

La face incidente à ADart vient d'être créé. Cherche à coudre toute ses arêtes par alpha2 en utilisant pour cela les arêtes existantes se trouvant dans ATestVertices et le directInfo AIndex étiquettant les brins avec le numéro du sommets incident.

CDart * CGMapVertex::load ( const char *  AFilename  ) 

Charge la carte à partir d'un fichier en détectant automatiquement le format.. Les brins qui composent la carte avant le chargement ne sont pas détruits.

Parameters:
AFilename Un nom de fichier
Returns:
Un brin de la carte chargée si le chargement s'est bien déroulé, NULL sinon

Definition at line 255 of file gmv-save.cc.

virtual CDart* GMap3d::CGMapVertex::load ( std::istream &  AStream,
TSaveFormat  AFormat 
) [virtual]

Charge la carte à partir d'un flot. Les brins qui composent la carte avant le chargement ne sont pas détruits.

Parameters:
AStream Un flot dans lequel lire le contenu de la carte à charger
AFormat Un type de format de fichier
Returns:
Un brin de la carte chargée si le chargement s'est bien déroulé, NULL sinon

CDart * CGMapVertex::load ( const char *  AFilename,
TSaveFormat  AFormat 
)

Charge la carte à partir d'un fichier. Les brins qui composent la carte avant le chargement ne sont pas détruits.

Parameters:
AFilename Un nom de fichier
AFormat Un type de format de fichier
Returns:
Un brin de la carte chargée si le chargement s'est bien déroulé, NULL sinon

Definition at line 80 of file gmv-save.cc.

void CGMapVertex::markCellsToBeExtrudedByNormal ( int  ADim,
int  AMarkNumberSrce,
int  AMarkNumberDest 
) [protected, virtual]

Marque un brin sur deux des cellules de dimension ADim qui doivent être extrudées. Voir CGMapGeneric::markCellsToBeExtruded pour plus d'informations.

Parameters:
ADim Une dimension (0, 1 ou 2)
AMarkNumberSrce Un numéro de marque source
AMarkNumberDest Un numéro de marque destination

Reimplemented from GMap3d::CGMapGeneric.

Definition at line 80 of file gmv-extrusion.cc.

bool CGMapVertex::markNonPlanarPolylines ( int  AMarkNumber  ) 

Marque toutes les faces non planaires de la carte.

Parameters:
AMarkNumber Un numéro de marque
Returns:
'vrai' si une face non plane au moins alpha été trouvée

Definition at line 92 of file gmv-polyline.cc.

CDart * CGMapVertex::materializeAxe ( CDart ADart1,
CDart ADart2 
)

Matérialise l'axe déterminé par les deux brins donnés (qui ne doivent pas être sur la même orbite sommet) en créant une nouvelle arête. L'arête créée est constituée de deux brins 0-cousus.

Parameters:
ADart1 Un brin de la carte
ADart2 Un brin de la carte
Returns:
Le brin de l'axe créé correspondant à ADart2

Definition at line 34 of file gmv-materialization.cc.

CDart * CGMapVertex::materializeBarycenter ( int  AMarkNumber  ) 

Insère un brin isolé dans la carte dont les coordonnées sont données par le barycentre des sommets incidents au brins de la carte marqués avec la marque AMarkNumber.

Parameters:
AMarkNumber 
Returns:
Le brin ayant pour plongement le barycentre

Definition at line 29 of file gmv-materialization.cc.

CDart * CGMapVertex::materializeNormalPlane ( CDart ADart1,
CDart ADart2 
)

Matérialise le plan normal du vecteur donné.

Parameters:
ADart1 un brin de la carte
ADart2 un brin de la carte
Returns:
Un brin appartenant au plan créé (un triangle)

Definition at line 75 of file gmv-materialization.cc.

CDart * CGMapVertex::materializeNormalVector ( CDart ADart  ) 

Matérialise le vecteur normal de la face incidente au brin donné.

Parameters:
ADart un brin de la carte
Returns:
Le brin correspondant à la pointe du vecteur normal lorsque ce vecteur "est posé" sur le barycentre de la face incidente à ADart.

Definition at line 60 of file gmv-materialization.cc.

CDart * CGMapVertex::materializePlane ( CDart ADart1,
CDart ADart2,
CDart ADart3 
)

Matérialise le plan déterminé par les trois sommets incidentes aux brins donnés. L'objet créé est un triangle.

Parameters:
ADart1 Un brin de la carte
ADart2 Un brin de la carte
ADart3 Un brin de la carte
Returns:
Un brin du plan créé

Definition at line 45 of file gmv-materialization.cc.

CDart * CGMapVertex::materializeReferential (  ) 

Matérialise le référentiel (OX,OY,OZ) avec 3 faces perpendiculaires 2-cousues. Chaque face est ouverte et n'est composée que de deux arêtes.

Returns:
Un brin du référentiel

Definition at line 99 of file gmv-materialization.cc.

int CGMapVertex::mergeMarkedAlignedCells ( int  ADim,
int  AMarkNumber,
bool  ADeleteDarts 
)

Fusionne lorsque cela est possible les arêtes ou les faces alignées.

Parameters:
ADim La dimension (1 ou 2) des cellules à fusionner
AMarkNumber Un numéro de marque
ADeleteDarts Un booléen indiquant si la fusion doit se faire en supprimant des brins
Returns:
Le nombre de fusions effectuées

Definition at line 39 of file gmv-merge.cc.

int CGMapVertex::mergeMarkedColinearEdges ( int  AMarkNumber,
bool  ADeleteDarts 
)

Fusionne lorsque cela est possible (avec une arête qui leur est incidente) les arêtes dont un brin au moins est marqué, lorsqu'elles sont alignées.

Parameters:
AMarkNumber Un numéro de marque
ADeleteDarts Un booléen indiquant si la fusion doit se faire en supprimant des brins
Returns:
Le nombre de fusions effectuées

Definition at line 29 of file gmv-merge.cc.

int CGMapVertex::mergeMarkedCoplanarFaces ( int  AMarkNumber,
bool  ADeleteDarts 
)

Fusionne lorsque cela est possible (avec une face qui leur est incidente) les faces dont un brin au moins est marqué, lorsqu'elles sont coplanaires.

Parameters:
AMarkNumber Un numéro de marque
ADeleteDarts Un booléen indiquant si la fusion doit se faire en supprimant des brins
Returns:
Le nombre de fusions effectuées

Definition at line 34 of file gmv-merge.cc.

INLINE CDart * GMap3d::CGMapVertex::newDart (  )  [virtual]

Crée une nouvelle instance de la classe CDartVertex.

Returns:
Un nouveau brin, de type CDartVertex

Reimplemented from GMap3d::CGMapBasic.

Definition at line 39 of file gmv-inline.icc.

void CGMapVertex::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

Definition at line 182 of file gmv-deformation.cc.

TCoordinate CGMapVertex::orbitLength ( CDart ADart,
TOrbit  AOrbit 
) [protected]

Calcule la longueur de la circonférence d'une orbite, c'est-à-dire la somme de la longueur de toutes les arêtes qui la constituent. Ce calcul n'alpha de sens que si AOrbit==ORBIT01 ou si AOrbit==ORBIT_BORDER1 ou si AOrbit==ORBIT_BORDER2.

Parameters:
ADart Un brin de la carte
AOrbit Une orbite
Returns:
La longueur de la circonférence de l'orbite

Definition at line 273 of file gmv-geometry.cc.

CVertex CGMapVertex::orbitNormalVector ( CDart ADart,
TOrbit  AOrbit 
) [protected]

Calcule le vecteur normal d'une orbite. Ce calcul n'alpha de sens que si AOrbit==ORBIT01 ou si AOrbit==ORBIT_BORDER1 ou si AOrbit==ORBIT_BORDER2.

Parameters:
ADart Un brin de la carte
AOrbit Une orbite
Returns:
Le vecteur normal de l'orbite

Definition at line 363 of file gmv-geometry.cc.

void CGMapVertex::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

Definition at line 563 of file gmv-deformation.cc.

void CGMapVertex::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()

Definition at line 509 of file gmv-deformation.cc.

void CGMapVertex::plate ( CDart ADart1,
CDart ADart2,
int  ADimbool,
bool  ARotateCells = true,
bool  AScaleCells = true,
bool  ATranslateCells = true 
)

Plaque les cellules de dimension ADim incidentes aux brins ADart1 et ADart2. La cellule incidentes à ADart1 voit son plongement modifié pour se plaquer à la cellule incidente à ADart2. Le plongement de la cellule incidente à ADart2 n'est pas modifié. Le placage tient compte de l'état des booléen 'orientation', 'scale' et 'position'.

Parameters:
ADart1 Un brin de la carte
ADart2 Un brin de la carte
ADim Une dimension
ARotateCells Un booléen pour modifier ou non l'orientation
AScaleCells Un booléen pour modifier ou non la taille
ATranslateCells Un booléen pour modifier ou non la position

Definition at line 48 of file gmv-plating.cc.

void CGMapVertex::pointDirectInfoToAttributeVertex ( int  ADirectInfoIndex,
CDart ADart,
TOrbit  AOrbit 
)

Pour chaque brin b de l'orbite AOrbit correspondant à ADart, fait pointer le champ directInfo numéro ADirectInfoNumber de tous les brins du sommet vers le plongement de ce sommet.

Parameters:
ADirectInfoIndex Un indice indiquant quel directInfo utiliser
ADart Un brin de la carte
AOrbit Une orbite

Definition at line 159 of file gmv-direct-info.cc.

void CGMapVertex::pointDirectInfoToAttributeVertex ( int  ADirectInfoIndex,
CDart ADart 
)

Pour chaque brin b de l'orbite sommet correspondant à ADart, fait pointer le champ directInfo numéro ADirectInfoNumber vers le plongement sommet du sommet auquel b appartient.

Parameters:
ADirectInfoIndex Un indice indiquant quel directInfo utiliser
ADart Un brin de la carte

Definition at line 146 of file gmv-direct-info.cc.

void CGMapVertex::pointDirectInfoToAttributeVertex ( int  ADirectInfoIndex  ) 

Pour chaque brin b de la carte, fait pointer le champ directInfo numéro ADirectInfoNumber vers le plongement sommet du sommet auquel b appartient.

Parameters:
ADirectInfoIndex Un indice indiquant quel directInfo utiliser

Definition at line 125 of file gmv-direct-info.cc.

CDart * CGMapVertex::prolongPolyline ( CDart ADart,
const CVertex AVertex 
)

Prolonge une polyligne (en rajoutant une arête à son bout). Si ADart vaut NULL, crée un premier brin d'une nouvelle polyligne.

Parameters:
ADart Un brin constituant le bout d'une polyligne
AVertex Le plongement du sommet à rajouter au bout de la polyligne

Definition at line 29 of file gmv-polyline.cc.

CDart * CGMapVertex::quadrangulateFace ( CDart ADart,
bool  AInsertVertices = true 
) [virtual]

Surcharge la méthode 'quadrangulateFace' de la classe CGMapGeneric pour plonger le sommet qu'elle crée.

Remarque: Si AInsertVertices vaut 'vrai', les sommets insérés sur les arêtes de la face sont déjà plongés (car insertVertex est virtuelle).

Parameters:
ADart Un brin de la carte
Returns:
Un brin du sommet topologique créé

Reimplemented from GMap3d::CGMapGeneric.

Definition at line 28 of file gmv-quadrangulation.cc.

CVertex CGMapVertex::regionNormalVector ( CDart ADart,
int  ADim,
int  AMarkNumber 
)

Calcule la moyenne des vecteurs normaux des faces incidentes à la cellule de dimension ADim à laquelle ADart appartient. Seules les faces dont un brin commun avec l'orbite (ADart, ORBIT_INF[ADart]) est marqué sont prises en compte. Le vecteur calculé peut être nul.

Parameters:
ADart Un brin de la carte
ADim Une dimension (0, 1 ou 2)
AMarkNumber Un numéro de marque
Returns:
La moyenne des vecteurs normaux des faces de la région donnée

Definition at line 567 of file gmv-geometry.cc.

CVertex CGMapVertex::regionNormalVector ( CDart ADart,
int  ADim 
)

Calcule la moyenne des vecteurs normaux des faces (restreintes au volume auquel appartient ADart) incidentes à la cellule de dimension ADim à laquelle ADart appartient. Les faces 3-cousues ne sont pas prises en compte dans le calcul. Le vecteur calculé peut être nul.

Parameters:
ADart Un brin de la carte
ADim Une dimension (0, 1 ou 2)
Returns:
La moyenne des vecteurs normaux des faces de la région donnée

Definition at line 509 of file gmv-geometry.cc.

INLINE CAttributeVertex * GMap3d::CGMapVertex::removeVertex ( CDart ADart  ) 

Détache le plongement sommet du sommet topologique incident à ADart. Si le sommet n'est pas plongé, la méthode retourne NULL.

Parameters:
ADart Un brin de la carte

Definition at line 142 of file gmv-inline.icc.

void CGMapVertex::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()

Definition at line 344 of file gmv-deformation.cc.

virtual bool GMap3d::CGMapVertex::save ( std::ostream &  AStream,
TSaveFormat  AFormat 
) [virtual]

Sauvegarde le contenu de la carte dans un flot.

Parameters:
AStream Un flot dans lequel écrire le contenu de la carte
AFormat Un type de format de sauvegarde
Returns:
'vrai' si la sauvegarde s'est bien déroulée

bool CGMapVertex::save ( const char *  AFilename,
TSaveFormat  AFormat 
)

Sauvegarde le contenu de la carte dans un fichier.

Parameters:
AFilename Un nom de fichier
AFormat Un type de format de sauvegarde
Returns:
'vrai' si la sauvegarde s'est bien déroulée

Definition at line 67 of file gmv-save.cc.

void CGMapVertex::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

Definition at line 446 of file gmv-deformation.cc.

void CGMapVertex::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

Definition at line 397 of file gmv-deformation.cc.

INLINE void GMap3d::CGMapVertex::setBurstCoef ( int  ADim,
TCoordinate  ACoef 
)

Positionne le coefficient d'éclatement de la dimension ADim à la valeur ACoef.

Parameters:
ADim Une dimension
ACoef Une valeur comprise entre 0 et 1.

Definition at line 75 of file gmv-inline.icc.

void CGMapVertex::setBurstMethod ( TBurstMethod  AMethod  ) 

Sélection de la méthode de calcul des sommets éclatés :.

Definition at line 28 of file gmv-burstview.cc.

INLINE void GMap3d::CGMapVertex::setBurstVertex ( CDart ADart,
const CVertex AVertex 
)

Affecte le plongement éclaté de la première extrémité du brin ADart donné.

Parameters:
ADart Un brin de la carte
AVertex Les nouvelles coordonnées

Definition at line 159 of file gmv-inline.icc.

INLINE void GMap3d::CGMapVertex::setVertex ( CDart ADart,
CAttributeVertex AVertex 
)

Definition at line 111 of file gmv-inline.icc.

INLINE void GMap3d::CGMapVertex::setVertex ( CDart ADart,
const CVertex AVertex 
)

Affecte le plongement AVertex au brin ADart.

Parameters:
ADart Un brin de la carte
AVertex Un sommet
findVertex(ADart)==NULL

Definition at line 102 of file gmv-inline.icc.

bool CGMapVertex::shouldSwapEdge ( CDart AEdge,
int  AVertexDI = -1 
)

Returns:
vrai ssi l'arête incidente à AEdge doit être inversée.

Definition at line 190 of file gmv-triangulation.cc.

void CGMapVertex::stopUp ( CDart ADart,
int  ADim 
) [virtual]

Surcharge la méthode 'stopUp' de la classe CGMapGeneric, pour plonger les sommets créés dans le cas de bouchage de 0-bord.

Parameters:
ADart Un brin quelconque d'un bord de dimension ADim
ADim Une dimension

Reimplemented from GMap3d::CGMapGeneric.

Definition at line 28 of file gmv-stop-up.cc.

bool CGMapVertex::swapEdge ( CDart AEdge,
int  AVertexDI = -1 
)

Tourne l'arête incidente à AEdge. Si AVertexDI est != -1, met à jour le directInfo correspondant pour qu'il pointe sur les bons sommets. L'arête est tournée selon le schéma suivant: p[0] /|#\ / || \ / || \ p[1] === === p[3] \ || / \ || / \||/ p[2]

# brin AEdge || arête d'origine == futur arête

Definition at line 224 of file gmv-triangulation.cc.

int CGMapVertex::thickenMarkedDarts ( int  AMarkNumber,
TCoordinate  AExtrusionCoef 
)

Épaissit les brins marqués avec la marque AMarkNumber. La méthode se réserve 2 champs directInfo puis appelle 'CGMapGenericthickenMarkedDarts'. Elle calcule ensuite le plongement des sommets créés à l'aide de la méthode 'regionNormalVector' (le vecteur obtenu est pondéré avec le coefficient AExtrusionCoef) puis libère les champs directInfo réservés.

Parameters:
AMarkNumber Un numéro de marque
AExtrusionCoef Un coefficient d'épaississement utilisé pour pondérer le vecteur d'extrusion.
Returns:
Le nombre de brins épaissis

Definition at line 31 of file gmv-thickening.cc.

void CGMapVertex::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

Definition at line 295 of file gmv-deformation.cc.

CDart * CGMapVertex::triangulateEdge ( CDart ADart  )  [virtual]

Surcharge la méthode 'triangulateEdge' de la classe CGMapGeneric pour plonger le sommet qu'elle crée.

Parameters:
ADart Un brin de la carte
Returns:
Un brin du sommet topologique créé

Reimplemented from GMap3d::CGMapGeneric.

Definition at line 31 of file gmv-triangulation.cc.

CDart * CGMapVertex::triangulateFace ( CDart ADart  )  [virtual]

Surcharge la méthode 'triangulateFace' de la classe CGMapGeneric pour plonger le sommet qu'elle crée.

Parameters:
ADart Un brin de la carte
Returns:
Un brin du sommet topologique créé

Reimplemented from GMap3d::CGMapGeneric.

Definition at line 42 of file gmv-triangulation.cc.

void CGMapVertex::triangulateGeoFace ( CDart AFace,
int  ANewEdgesMark = -1,
int  AVertexDI = -1 
)

Triangulation "géométrique" de la face incidente à AFace. Si ANewEdgesMark !=-1, les nouvelles arêtes sont marquées avec cette marque. Si AVertexDI, met à jour le directInfo correspondant pour qu'il pointe sur les bons sommets.

Definition at line 67 of file gmv-triangulation.cc.

void CGMapVertex::triangulateMarkedFaces ( int  AMark,
int  ANewEdgesMark = -1,
int  AVertexDI = -1 
)

Triangulation "géométrique" de toutes les faces marquées avec AMark. Si ANewEdgesMark !=-1, les nouvelles arêtes sont marquées avec cette marque. Si AVertexDI, met à jour le directInfo correspondant pour qu'il pointe sur les bons sommets.

Definition at line 154 of file gmv-triangulation.cc.

CDart * CGMapVertex::triangulateVolume ( CDart ADart  )  [virtual]

Surcharge la méthode 'triangulateVolume' de la classe CGMapGeneric pour plonger le sommet qu'elle crée.

Parameters:
ADart Un brin de la carte
Returns:
Un brin du sommet topologique créé

Reimplemented from GMap3d::CGMapGeneric.

Definition at line 53 of file gmv-triangulation.cc.

void CGMapVertex::unmarkMotifMark ( CDart ADart,
int  AMark,
int  AIndex,
CGMapVertex AMap,
CDart ADart2,
int  AMark2 
)

Met le champ directinfo du motif d'origine ADart à Null. Le parcours du motif utilise la marque AMark. En même temps, la carte AMap est démarqué pour la marque AMark2.

Definition at line 128 of file gmv-isomorphisme.cc.

void CGMapVertex::updateAllBurstDarts (  ) 

Met à jour le plongement éclaté de tous les brins de la carte.

Definition at line 37 of file gmv-burstview.cc.

void CGMapVertex::updateDirectInfoWithVertex ( int  ADirectInfoNumber  ) 

Copie les attributs sommets vers le champ directInfo spécifié, pour les brins dont ce champ est non NULL.

Attention: ces brins sélectionnés devraient être les mêmes qu'au moment de l'appel à duplicateVertexToDirectInfo!

Parameters:
ADirectInfoNumber Un indice indiquant quel directInfo utiliser

Definition at line 116 of file gmv-direct-info.cc.

void CGMapVertex::updateFaceMethodShift ( int  AMarkNumber,
int  AMarkI,
CDart ADart,
const CVertex ABaryVol,
int  ADirectIndex 
) [private]

Definition at line 280 of file gmv-burstview.cc.

void CGMapVertex::updateMarkedBurstDarts ( int  AMarkNumber,
bool  AUpdateIncidentVolumes = true 
)

Met à jour le plongement éclaté des brins marqués avec la marque AMarkNumber. Si AUpdateIncidentVolumes vaut 'vrai', c'est le plongement éclaté de tous les brins des volumes incidents à un sommet dont un brin au moins est marqué avec la marque AMarkNumber qui est mis à jour.

Parameters:
AMarkNumber Un numéro de marque
AUpdateIncidentVolumes Un booléen

Definition at line 46 of file gmv-burstview.cc.

void CGMapVertex::updateMarkedDartsMethodScale ( int  AMarkNumber,
bool  AUpdateIncidentVolumes 
) [protected]

Definition at line 63 of file gmv-burstview.cc.

void CGMapVertex::updateMarkedDartsMethodShift ( int  AMarkNumber,
bool  AUpdateIncidentVolumes 
) [protected]

Il faut debugger cette méthode et la suivante

Definition at line 215 of file gmv-burstview.cc.

INLINE void GMap3d::CGMapVertex::updateVertex ( CDart ADart,
const CVertex AVertex 
)

Ecrase s'il existe le plongement sommet du brin ADart avec le sommet AVertex. Si le sommet topologique incident à ADart n'est pas plongé, la méthode est équivalente à un appel à 'setVertex'.

Parameters:
ADart Un brin de la carte
AVertex Un sommet

Definition at line 121 of file gmv-inline.icc.


Member Data Documentation

Coefficients d'éclatement, pour le calcul des plongements éclatés.

Definition at line 3121 of file g-map-vertex.hh.

Méthode de calcul des sommets éclatés.

Definition at line 3124 of file g-map-vertex.hh.


The documentation for this class was generated from the following files:

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