src/lib-gmapkernel/g-map-generic/gmg-insertion.hh File Reference

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

Go to the source code of this file.

Functions

virtual CDart * insertVertex (CDart *ADart)
int insertVertexOnMarkedEdges (int AMarkNumber)
virtual CDart * insertEdge (CDart *ADart1, CDart *ADart2)
int insertEdgeOnMarkedFaces (int AMarkNumber, bool ANoCrossedFace=false, bool ANoTwoEdgesFace=false)
bool canInsertFace (CDart *ADart, int AMarkNumber, bool ANoCrossedVolume=false, bool ANoTwoEdgesFace=false, bool ANoTwoFacesVolume=false)
virtual CDart * insertFace (CDart *ADart, int AMarkNumber, bool ANoCrossedVolume=false)
int insertFaceOnMarkedVolumes (int AMarkNumber, bool ANoCrossedVolume=false, bool ANoTwoEdgesFace=false, bool ANoTwoFacesVolume=false)
bool turnAroundVertex (CDart *ADart, bool ANoCrossedVolume, int AMarkNumber, CDart *&ANext, bool &ACrossed)


Function Documentation

bool canInsertFace ( CDart *  ADart,
int  AMarkNumber,
bool  ANoCrossedVolume = false,
bool  ANoTwoEdgesFace = false,
bool  ANoTwoFacesVolume = false 
)

Teste s'il est possible d'insérer une face topologique dans un volume. Si ANoCrossedVolume est vrai, au moins un brin de chaque demi-arête du volume (orbite 0) correspondant à la face à créer doit être sélectionné. Si ANoCrossedVolume est faux, au moins un brin de chaque arête du volume (orbite 02) correspondant à la face à créer doit être sélectionné.

Parameters:
ADart Un brin marqué du volume dans lequel insérer la face
AMarkNumber Un numéro de marque
ANoCrossedVolume Un booléen indiquant s'il faut vérifier qu'on ne va pas créer un volume 'croisé', c'est-à-dire un volume en forme de 8, avec deux faces 3-cousues qui se croisent
ANoTwoEdgesFace Un booléen indiquant s'il faut vérifier qu'on ne va pas créer de face fermée composée de seulement deux arêtes
ANoTwoFacesVolume Un booléen indiquant s'il faut vérifier qu'on ne va pas créer de volume fermé composé de seulement deux faces
Returns:
Un booléen

virtual CDart* insertEdge ( CDart *  ADart1,
CDart *  ADart2 
) [virtual]

Insère une arête topologique entre les sommets incidents aux brins ADart1 et ADart2.

Parameters:
ADart1 Un pointeur sur un brin
ADart2 Un pointeur sur un brin
Returns:
Un brin de l'arête topologique insérée
canInsertEdge(ADart1, ADart2)

int insertEdgeOnMarkedFaces ( int  AMarkNumber,
bool  ANoCrossedFace = false,
bool  ANoTwoEdgesFace = false 
)

Insère une arête sur chaque face dont deux sommets sont sélectionnés, lorsque cela est possible. Si ANoCrossedFace est faux, une arête n'est insérée sur une face que si exactement 2 brins de cette face sont marqués. Si ANoCrossedFace est vrai, une arête n'est insérée sur une face que si 2 sommets de cette face sont marqués (2, 3 ou 4 brins marqués).

Parameters:
AMarkNumber Un numéro de marque
ANoCrossedFace Un booléen indiquant s'il faut vérifier qu'on ne va pas créer une face 'croisée', c'est-à-dire une face en forme de 8, avec deux arêtes 2-cousues qui se croisent
ANoTwoEdgesFace Un booléen indiquant s'il faut vérifier qu'on ne va pas créer de face fermée composée de seulement deux arêtes
Returns:
Le nombre d'arêtes insérées

virtual CDart* insertFace ( CDart *  ADart,
int  AMarkNumber,
bool  ANoCrossedVolume = false 
) [virtual]

Insère une face le long des arêtes sélectionnées du volume donné.

Parameters:
ADart Un brin marqué du volume dans lequel insérer la face
AMarkNumber Un numéro de marque
ANoCrossedVolume Un booléen indiquant s'il faut vérifier qu'on ne va pas créer un volume 'croisé', c'est-à-dire un volume en forme de 8, avec deux faces 3-cousues qui se croisent
Returns:
Un brin de la face créée
canInsertFace(ADart, AMarkNumber)

int insertFaceOnMarkedVolumes ( int  AMarkNumber,
bool  ANoCrossedVolume = false,
bool  ANoTwoEdgesFace = false,
bool  ANoTwoFacesVolume = false 
)

Insère une face sur chaque volume dont plusieurs arêtes sont sélectionnées, lorsque cela est possible.

Parameters:
AMarkNumber Un numéro de marque
ANoCrossedVolume Un booléen indiquant s'il faut vérifier qu'on ne va pas créer un volume 'croisé', c'est-à-dire un volume en forme de 8, avec deux faces 3-cousues qui se croisent
ANoTwoEdgesFace Un booléen indiquant s'il faut vérifier qu'on ne va pas créer de face fermée composée de seulement deux arêtes
ANoTwoFacesVolume Un booléen indiquant s'il faut vérifier qu'on ne va pas créer de volume fermé composé de seulement deux faces
Returns:
Le nombre de faces insérées

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

Insère un sommet topologique sur l'arête incidente au brin ADart.

Parameters:
ADart Un pointeur sur un brin
Returns:
Un brin du sommet topologique inséré
canInsertVertex(ADart)

int insertVertexOnMarkedEdges ( int  AMarkNumber  ) 

Insère un sommet sur chaque arête dont un brin au moins est marqué, lorsque cela est possible.

Parameters:
AMarkNumber Un numéro de marque
Returns:
Le nombre d'insertions effectuées

bool turnAroundVertex ( CDart *  ADart,
bool  ANoCrossedVolume,
int  AMarkNumber,
CDart *&  ANext,
bool &  ACrossed 
) [protected]

Cette méthode est utilisée par les méthodes 'canInsertFace' et 'insertFace'. Elle permet de se déplacer le long des arêtes marquées d'une volume. Partant d'un brin donné elle tourne autour d'un sommet (orbite 12) jusqu'à trouver s'il existe un brin marqué d'une autre arête que celle sur laquelle se trouve ADart. Les deux derniers paramètres sont des paramètres en sortie.

Parameters:
ADart Un brin de la carte, par lequel on est arrivé sur ce sommet
ANoCrossedVolume Un booléen indiquant si l'insertion de face doit ne pas entraîner l'apparition d'un volume croisé (voir la méthode 'insertFace')
AMarkNumber Un numéro de marque permettant de repérer les brins sélectionnés
ANext Un pointeur sur un brin (paramètre en sortie uniquement)
ACrossed Un booléen indiquant si le brin ANext est tel que la face à insérer est croisée (paramètre en sortie uniquement)
Returns:
Un booléen indiquant si le sommet est valide, c'est-à-dire si au plus de 2 des arêtes qui lui sont incidentes sont sélectionnées


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