• Aucun résultat trouvé

L’éclatement d’une arête est l’opération qui consiste à remplacer une arête par une suite d’arêtes élémentaires. L’algorithme insère successivement des sommets sur l’arête à diviser jusqu’à obtenir uni- quement des arêtes élémentaires. Nous étudions dans un premier temps l’insertion de sommets sur une arête, puis nous développons l’algorithme qui insère successivement tous les sommets sur l’arête à éclater.

5.1.1 Insertion de sommet

L’insertion d’un sommet sur une arête est l’opération de base de l’éclatement d’arêtes. L’opération se déroule en deux temps : d’abord au niveau topologique puis au niveau géométrique. Il s’agit d’insérer

82 CHAPITRE 5 - ÉCLATEMENT ET DIVISION DE RÉGIONS

dans la carte combinatoire les brins correspondants au nouveau sommet. Ensuite nous attribuons le plongement géométrique au sommet inséré.

L’Algorithme 15 présente l’insertion d’un sommet dans la carte topologique. Il prend en paramètres une carte topologique, un brin désignant l’arête à éclater ainsi que les coordonnées d’un pointel. L’al- gorithme insère un sommet sur l’arête désignée avec le plongement géométrique donné par le pointel.

Algorithme 15 : Insertion d’un sommet sur une arête Données : Une carte topologiqueM ;

Un brinb ; Un pointelp.

Résultat : Insertion d’un sommet de plongementp sur l’arête incidente à b dans M pour chaque brinb0 ∈ hβ2, β3i(b) faire

b1← nouveau brin; β1(b1) ← β1(b0); β1(b0) ← d1;

si le brinβ2(b0) a déjà été traité alors b3←β2(b0);

b2←β21(b0);

coudre parβ2les brinsb1etb3; coudre parβ2les brinsb0etb2; si le brinβ3(b0) a déjà été traité alors

b2←β3(b0); b3←β31(b0);

coudre parβ3les brinsb1etb2; coudre parβ3les brinsb0etb3; allumer le pointelp;

pour chaque brinbi ∈ hβ21, β31i(β1(b)) faire pointel(bi) ← p;

Le principe de l’algorithme est illustré par la Figure 5.1. Pour chaque brinb0 de l’orbite de l’arête incidente àb, nous ajoutons à la carte M un nouveau brin appelé b1qui est incident au sommet inséré comme le montre la Figure 5.1b. Le brinb1est inséré entreb0etβ1(b0).

Ensuite nous modifions les relationsβ2etβ3 afin de donner la bonne topologie au sommet et aux deux arêtes que nous construisons. Pour cela nous regardons si :

1. le brin image parβ2deb0a déjà été traité ; 2. le brin image parβ3deb0a déjà été traité.

Dans le premier cas, illustré Figure 5.1c, le brinb2 = β21(b0) est un nouveau brin qui ne possède pas encore de relationβ2. Nous relions alors les quatre brins (b0,b1,b2etβ2(b0)) par β2 de manière à ce que les brins qui doivent être mis en correspondance dans l’orbite de l’arête soient convenablement reliés.

Dans le deuxième cas, illustré Figure 5.1d, le brinb3= β31(b0) est un nouveau brin qui ne possède pas encore de relationβ3. Nous relions alors les quatre brins (b0,b1,b3etβ3(b0)) par β3 de manière à ce que les brins qui doivent être mis en correspondance dans l’orbite de l’arête soient convenablement reliés.

La Figure 5.1e montre le résultat après le traitement du brin suivant et la Figure 5.1f illustre le résultat final de l’opération.

5.1. Éclatement d’une arête 83

(a) (b)

(c) (d)

(e) (f)

FIG. 5.1: Illustration de l’insertion d’un sommet sur une arête composée de six brins. (a) Configuration initiale avec six brins représentant l’arête incidente à b. La légende des relations entre les brins est donnée sur la figure. Les brins en gris clair sont les brins des arêtes incidentes. (b) Insertion deb1entre b0etβ1(b0). Les brins β2(b0) et β3(b0) n’ont pas encore été traités : nous ne modifions pas les relations β2 ou β3. (c) Lors du traitement du brin suivant, le brin β2(b0) a été traité. Nous modifions donc les relationsβ2pour rendre conforme l’orbite des deux arêtes en cours de création. (d) Lors du traitement du brin suivant, le brinβ3(b0) a été traité. Nous modifions alors les relations β3pour être conforme aux orbites des deux nouvelles arêtes. (e) Traitement du brin suivant. (f) Résultat une fois que tous les brins ont été traités.

84 CHAPITRE 5 - ÉCLATEMENT ET DIVISION DE RÉGIONS

(a) (b)

FIG. 5.2: Insertion d’un sommet sur une arête illustrée en 3D. (a) Configuration initiale avec une arête représentée par six brins. (b) Résultat de l’insertion du sommet sur l’arête. Les brins dessinés en foncé sont les nouveaux brins et forment l’orbite sommet.

La Figure 5.2 illustre l’insertion d’un sommet sur une arête composée de six brins placés en 3D. À ce stade, la topologie du sommet sur l’arête est définie. Nous mettons à jour la géométrie. Pour cela, nous allumons le pointelp et nous attribuons à chaque brin de l’orbite sommet le pointel p. Le triplet effectif de chaque brin dépend de l’arête et de la face incidente à ce brin. Notons que l’opération d’insertion de sommets n’est pas définie pour les arêtes fictives car celles-ci n’ont pas de plongement.

5.1.2 Itération sur une arête

En utilisant l’opération d’insertion d’un sommet, nous définissons l’opération d’éclatement d’une arête. Le principe de l’algorithme est d’insérer successivement sur l’arête des sommets de sorte que, pour chaque sommet, nous divisons l’arête en deux : une arête élémentaire et une autre arête sur laquelle nous itérons le processus. La fin du processus est atteinte lorsque l’arête restant à diviser est élémentaire. L’Algorithme 16 présente le processus d’éclatement d’une arête en arêtes élémentaires. Il prend en paramètres une carte topologiqueM et un brin b de la carte qui désigne l’arête à éclater. L’algo- rithme ajoute des sommets dans la carte topologique de manière à ce que l’arête soit éclatée en arêtes élémentaires.

Algorithme 16 : Éclatement d’une arête Données : Une carte topologiqueM ;

Un brinb.

Résultat : Éclatement dansM de l’arête incidente à b en arêtes élémentaires p ← pointel(b);

sip est éteint alors allumerp;

p0 ← prochain sommet de l’arête tel quepp0 soit un lignel; tant quep0est éteintfaire

insérer sommet(M, b, p0); b ← β1(b);

p ← p0;