• Aucun résultat trouvé

Contraintes

Dans le document Modélisation automatique de zones urbaines (Page 103-108)

2.2 Mise en œuvre

2.2.3 Contraintes

Les contraintes pr´esentes au sein de notre modeleur sont bas´ees sur celles propos´ees par Philippe Charman dans son m´emoire de th`ese [Cha95]. Nous utilisons des contraintes binaires, qui mettent en relation seulement deux objets. Nos contraintes d´ecrivent un probl`eme local de placement que le solveur peut facilement traiter afin de trouver une solution satisfaisante. N´eanmoins, de telles contraintes peuvent ˆetre ais´ement combin´ees dans le but de cr´eer des propri´et´es de plus haut niveau. Par exemple, placer cinq objets A autour d’un objet B et tourn´evers B.

Toutes nos contraintes utilisent la terminologie de Vandeloise [Van86] dans laquelle l’objet cible est `a placer relativement `a l’objet site :

ObjetcibleContrainte(p) Objetsite

Lorsque que l’utilisateur veut ajouter un Objetcibleau sein de la sc`ene, il s´electionne un Objetsite

dans la fenˆetre o`u la sc`ene tridimensionnelle est visualis´ee et exprime les contraintes de la section suivante qui doivent ˆetre satisfaites entre ces deux objets. La Figure 2.6 pr´esente ce processus.

Dans cette image, l’utilisateur a choisi d’ajouter une chaise en bois `a la sc`ene, alors qu’une chaise `a roulettes ´etait s´electionn´ee dans la fenˆetre 3D. Le modeleur propose les choix possibles de contraintes entre ces objets.

Figure 2.6. Choix des contraintes `a satisfaire lors de l’ajout d’un nouvel objet dans la sc`ene.

Dans la suite de cette section, nous pr´esentons une liste non exhaustive des contraintes mises en œuvre dans notre outil. Ces contraintes fournissent un r´esultat exprimant, en pourcentage, leur degr´e de satisfaction. Pr´ef´er´ee aux classiques r´eponses bool´eennes, cette approche permet une notation plus fine de la qualit´e d’une solution. Ces contraintes sont dites explicites ou implicites.

Une contrainte est implicite si elle n’a pas besoin d’ˆetre sp´ecifiquement ´enonc´ee par l’utilisateur (contrainte de non-chevauchement).

2.2.3.1 Contraintes topologiques

Cette cat´egorie rassemble les contraintes qui d´efinissent la position des objets les uns par rapport aux autres.

Voici quelques-unes de ces contraintes : – au dessus, – `a l’int´erieur, – en face de, – derri`ere, – `a gauche, – `a droite.

La premi`ere contrainte, dite de superposition, utilise une liste de surfaces de support, propres `

a l’objet site. Ces surfaces correspondent `a la partie sup´erieure de l’objet site. Si l’on prend l’exemple d’une biblioth`eque, la liste des surfaces de support serait restreinte `a la partie sup´erieure du meuble.

La seconde contrainte, dite d’inclusion, utilise aussi une liste de surfaces correspondant aux zones sur lesquelles on peut placer l’objet cible pour qu’il soit `a l’int´erieur de l’objet site. En reprenant l’exemple de la biblioth`eque, la liste des surfaces supports contiendrait toutes les ´etag`eres. Ces contraintes sont bas´ees sur la diff´erence de Minkowski. Les objets ´etant plac´es soit sur le sol, soit sur un autre objet, il faut ´egalement v´erifier que l’objet ne d´eborde pas du haut de la sc`ene ou hors de la surface support de l’objet site.

Les quatre autres contraintes sont calcul´ees comme les contraintes d’orientation.

2.2.3.2 Contraintes physiques

Les contraintes physiques de disjonction et de gravit´e sont actuellement les seules contraintes implicites pr´esentes au sein de notre modeleur.

La premi`ere, la contrainte de disjonction ou non-chevauchement, est ajout´ee automatiquement entre tout nouvel objet du monde et chacun des objets d´ej`a plac´es sur la mˆeme surface de support. La contrainte de disjonction fait g´en´eralement l’objet de beaucoup d’attention dans le d´eveloppement d’un modeleur d´eclaratif. En effet, pour un monde contenant n objets, cette

contrainte est utilis´ee n(n−1)2 fois. De son efficacit´e et de sa robustesse d´ependent le confort d’utilisation et la r´eactivit´e d’un modeleur. Pour ces raisons, nous avons d´ecid´e d’utiliser les op´erateurs de Minkowski sur les polygones pour calculer cette contrainte.

La seconde contrainte physique, celle de gravit´e, n’est pas encore r´eellement prise en compte par notre modeleur mais le placement des objets est restreint aux surfaces horizontales valides (i.e. de support). La prise en charge de cette contrainte serait facilit´ee par l’utilisation d’un moteur physique, mais la mise en œuvre d’un tel outil d´epasse les limites de notre cadre de travail.

2.2.3.3 Contraintes de distance

Les contraintes de distance sont param´etr´ees par une variable d. Nous utilisons trois contraintes de ce type :

– distance ´egale `a d, – distance inf´erieure `a d, – distance sup´erieure `a d.

Nous disposons actuellement de 2 mani`eres de traiter ces contraintes. La premi`ere est bas´ee sur les op´erations de Minkowski sur les polygones convexes, la seconde sur le calcul de distance polygone-polygone (calcul sommets-arˆetes).

En effet, pour placer un objet `a moins d’une distance d d’un autre objet, nous r´eduisons le domaine de placement `a la somme de Minkowski des enveloppes convexes des deux objets et d’un cercle de rayon d2 alors que pour placer un objet exactement `a la distance d d’un autre objet, nous r´eduisons le domaine de placement au contour de cette somme. Enfin, pour placer un objet `a plus d’une certaine distance d d’un autre objet, nous ne restreignons pas le domaine de placement et ´evaluons a posteriori la distance entre les objets.

2.2.3.4 Contrainte d’orientation

Comme pr´ecis´e en Annexe D.2.1, il existe deux types d’orientations possibles pour les objets : d´eictique et intrins`eque.

D´eictique : ´el´ement de linguistique qui sert `a montrer, `a d´esigner, un objet singulier d´etermin´e dans la situation.

A est l’objet site et B est l’objet cible. Soit ~vB, le vecteur de direction de B.

SoitvAB~ , le vecteur allant du point de r´ef´erence de A au point de r´ef´erence de B. Les contraintes suivantes entre A et B peuvent ˆetre ´evalu´ee grˆace au produit scalaire : B est en face de A si et seulement si ~vA · vAB~ = 1.

B est orient´e vers A si et seulement si ~vB · vAB~ < 0.

B est dans la mˆeme direction que A si et seulement si ~vB · ~vA= 0.

B est plutˆot orient´e dans la direction oppos´e `a A si et seulement si ~vB · vAB~ > 0. B est orient´e dos `a A si et seulement si ~vA · vAB~ = −1.

Figure 2.7. Contraintes d’orientation

Intrins`eque : la gauche intrins`eque d’un objet est fixe (ou inexistante dans le cas d’un objet sans direction privil´egi´ee, ex : une boule), alors que sa gauche d´eictique d´epend de la position d’un r´ef`erent.

Dans un modeleur, o`u l’utilisateur peut placer et orienter le point de vue comme bon lui semble (voire en inversant la direction verticale), il a ´et´e choisi de ne g´erer que les orientations in- trins`eques. Ce choix r´esulte d’un souci de simplification au niveau de la gestion des interactions entre l’utilisateur et le modeleur.

Ce choix fait, il est encore possible de trier les objets selon la possibilit´e d’appliquer ou non ces orientations. Par exemple, parler de la gauche intrins`eque d’une table rectangulaire n’a pas de sens.

Les contraintes d’orientation n´ecessitent qu’au moins l’un des deux objets cible et site dispose d’une orientation intrins`eque. Elles sont au nombre de cinq, et sont d´etaill´ees dans la Figure 2.7 :

– En face de : les objets sont exactement face-`a-face, ils ont tous les deux une orientation intrins`eque,

– Orient´e vers : l’objet B (qui a une orientation intrins`eque) est tourn´e vers l’objet A (qui n’a pas forcement une orientation intrins`eque),

– Parall`ele : les deux objets partagent la mˆeme orientation, ils ont tous les deux une orientation intrins`eque,

– Orient´e oppos´e `a : l’objet B (qui a une orientation intrins`eque) est tourn´e dans la direction oppos´ee `a l’objet A (qui n’a pas forcement une orientation intrins`eque),

– Dos `a : les objets sont exactement dos `a dos, ils ont tous les deux une orientation intrins`eque.

Comme montr´e dans la Figure 2.7 nous ´evaluons ces contraintes par un calcul de produit scalaire.

Dans le document Modélisation automatique de zones urbaines (Page 103-108)