• Aucun résultat trouvé

Chapitre IV --- Amélioration d’un aménagement

4. Modification d’un aménagement

4.1. Les opérateurs de modifications de bas niveau

4.1.1. Les opérateurs sur les pièces

Les opérateurs sur les pièces sont des traitements qui impactent l’emplacement et la forme des pièces. Les opérateurs en question sont :

- Créer un sommet ;

- Fusionner deux sommets ; - Déplacer un sommet ;

- Permuter deux pièces.

Comme on peut le constater cette liste ne contient aucun opérateur sur les murs. La raison en est que toute opération sur un mur est une combinaison d’opérateurs de cette liste. Par exemple, translater un mur équivaut à déplacer ses deux extrémités.

De plus, les opérateurs sont appliqués à la structure filaire du logement. Par conséquent, à chaque fois qu’un de ces opérateurs modifie la forme d'une pièce (c'est le cas des quatre derniers), un traitement est lancé pour recalculer l’ensemble des pourtours des pièces modifiées, ce qui vaut aussi pour les couloirs (voir le Chapitre II.6).

4.1.1.1. Créer un sommet

La création d’un sommet est l’insertion d’un nouveau sommet dans un segment à une proportion donnée de la longueur du segment (Figure 109). Si le segment à modifier est partagé par deux polygones, le nouveau sommet appartient aux deux.

Notons que cet opérateur ne modifie pas la forme du polygone, il sert uniquement de base pour les autres opérateurs.

L’opération échoue quand le sommet est situé dans l’intervalle réservé à une porte ou est trop proche d'une des extrémités.

Exemple de l’ajout d’un sommet sur un mur partagé 4.1.1.2. Fusionner deux sommets / Scinder un sommet

La fusion de deux sommets prend deux sommets en paramètres, un sommet à supprimer ���� (Figure 110: disque blanc) et un sommet à conserver ����� (disque noir). Elle consiste à remplacer ���� par

����� dans tous les polygones qui utilisent ����. Ces derniers sont donc déformés si ���� n'est pas exactement superposé à �����.

Exemple de la fusion de deux sommets

Ce traitement peut être amené à supprimer un ou plusieurs segments de la structure de données quand la fusion conduit des segments à se superposer. La Figure 111 illustre cette configuration : le sommet à supprimer est représenté par un disque blanc, le sommet à garder par un disque noir, le segment partagé est en pointillés.

Exemple de la fusion de deux sommets avec un segment en doublon

La raison principale pour laquelle nous avons défini cet opérateur est qu’aucune combinaison d’opérations de bas niveau ne permet la création ou la suppression d'une pièce. À priori, cela pourrait être vu comme un bénéfice, étant donné que l'optimisation d'un aménagement est supposée se faire à nombre constant de pièces. Pourtant, il est nécessaire, pour atteindre une réelle diversité dans les aménagements construits, que des couloirs apparaissent ou disparaissent. L'opérateur de fusion est donc nécessaire.

La Figure 112 et la Figure 113 illustrent cette possibilité de créer ou supprimer une pièce avec cet opérateur. Dans la première, on fusionne A et B. Ceci a pour conséquence de faire disparaître la pièce interne en forme de losange.

Suppression d’une pièce avec la fusion de sommets

Dans le cas de la Figure 112, les deux sommets impliqués sont dans un même polygone et leur fusion a cette fois pour effet de scinder la pièce à laquelle ils appartiennent, ce qui provoque l’appartition d’une pièce supplémentaire.

Exemple de scission d’une pièce

Pour que la fusion de deux sommets soit tolérée, plusieurs conditions doivent être satisfaites : - quand les deux sommets sont dans une même pièce (ce qui va créer une pièce supplémentaire),

la pièce doit être un couloir. Nous tolérons la création et la suppression de couloirs mais pas de pièces car leur nombre est défini au départ par l’occupant et doit rester constant ;

- le sommet à déplacer ne soit pas être un sommet du contour extérieur, pour éviter de modifier la forme du plateau ;

- La fusion ne doit pas engendrer des situations de recouvrements comme illustré dans la Figure 114.

Recouvrement suite à la fusion de deux sommets

L'opérateur de scission d'un sommet � est le symétrique de l'opérateur de fusion : il crée un deuxième sommet �′ superposé au premier ; dans la Figure 115 �′ est matérialisé par un disque blanc et il est écarté de � pour faciliter la compréhension. En entrée, en plus de �, l'opérateur reçoit la liste des polygones qui conservent � dans leur pourtour (grisés dans la figure). Dans les autres polygones qui utilisaient �, � est remplacé par �′.

Scission d’un sommet

Comme le montre la Figure 115, cet opérateur peut aussi être amené à dupliquer certains murs : les segments issus de � subissent les opérations suivantes :

- ceux qui sont partagés par un polygone grisé et un polygone non grisé (en pointillés) sont dupliqués ; c'est le cas une fois dans l'exemple, deux fois au maximum ; les segments originaux restent dans les polygones grisés, les autres voient leur origine (�) remplacée par �′ et remplacent les segments originaux dans les polygones blancs ;

- ceux qui appartiennent seulement à un polygone blanc (en traits épais) subissent juste un remplacement de (�) par (�′) ;

- les autres sont inchangés.

Ce type de traitement ne se conçoit que si un polygone au moins est concerné, et si les polygones d'une catégorie (concernés ou pas) sont adjacents les uns aux autres. Si ces conditions ne sont pas

4.1.1.3. Déplacer un sommet

Cet opérateur permet de changer la position d’un sommet. L’opération a pour conséquence la modification de la longueur et de la position des segments associés au sommet à déplacer (Figure 116).

Exemple de déplacement d’un sommet

On refuse le déplacement d’un sommet si : - c’est un sommet du contour extérieur ;

- sa nouvelle position est celle d'un autre sommet ;

- le déplacement provoque un chevauchement ou un croisement entre des murs. 4.1.1.4. Supprimer un sommet

Supprimer un sommet est une opération qui consiste à retirer le sommet de tous les polygones auxquels il est associé. Cette opération remplace chaque paire de segments associé au sommet supprimé par un seul segment allant de l'origine du segment précédent à l'extrémité du segment suivant (Figure 117).

- un des polygones du sommet est un polygone avec trois sommets. La suppression d’un sommet invaliderait ce polygone ;

- le sommet à supprimer appartient au contour extérieur ; - les segments créés coupent d'autres segments.

4.1.1.5. Permuter deux pièces

La permutation de deux pièces consiste à inverser le rôle des deux pièces données en paramètres. On ne modifie pas la forme des pièces mais uniquement leurs noms (Figure 118).

Cet opérateur peut toujours être exécuté. Il se peut que, dans l'évaluation qui suivra la modification, on constate que l'une des pièces échangées ne satisfasse pas certains critères et que la note du logement soit globalement moins bonne mais ce n'est pas une raison pour interdire l'échange.

Exemple de permutation de deux pièces

Notons que dans le cas où deux couloirs sont adjacents suite à une permutation de deux pièces (une pièce quelconque et un couloir) ces deux couloirs sont fusionnés en un seul et les murs communs sont supprimés (Figure 119).

Exemple de la fusion de deux couloirs

Nous estimons qu’un logement ne doit pas avoir deux couloirs adjacents car c’est une perte d’espace pour aucune valeur ajoutée. Cette fusion est effectuée lors de la détection automatique des couloirs qui est déclenchée au début de l'évaluation du logement, aussitôt après la fin de l'exécution de l'opérateur. Autrement dit, il est exact que les formes des pièces ne sont pas altérées pendant

l'échange mais, si un couloir est impliqué, ce dernier peut voir sa forme changer juste après l'échange.