• Aucun résultat trouvé

a des organisations Cellule.

se (( suicideront ))) et d’ajouter les nouveaux constituants (les ph´enom`enes se chargeront d’ins-tancier les nouvelles r´eactions).

´

Etudions maintenant comment la position de la cellule peut se trouver perturb´ee.

5.3 Organisation m´ecanique

5.3.1 Introduction de mod`eles m´ecaniques

Plutˆot que de doter la cellule d’un simple constituant position, il nous paraˆıt souhaitable de la doter d’une existence physique dans l’univers en trois dimensions. Ainsi, nous d´efinissons un nouveau type de constituant, le Corps3D. Un corps est une forme en trois dimensions `a laquelle sont associ´es une position, un rep`ere de r´ef´erence et une masse. Par l’interm´ediaire de leur corps, les cellules peuvent alors interagir dans une organisation m´ecanique (voir figure 5.8).

La figure 5.9 montre donc l’introduction de quatre nouvelles classes : Corps3D, Collision, CollisionPh´enom`eneet OrganisationM´ecanique.

L’organisation m´ecanique maintient sa topologie en s’inscrivant aupr`es de la structure pour recevoir un ´ev´enement `a la cr´eation de chaque corps. Le m´ecanisme garantit alors que tous les corps du monde virtuel font partie de l’organisation.

Deux types de corps ont ´et´e cr´e´es : sph´erique et triangulaire. La forme sph´erique est adapt´ee `a la mod´elisation de cellules. La forme triangulaire permet de construire d’autres formes compos´ees de facettes.

Collision CollisionPhenomene Interaction * * Structure Constituant * * Organisation * * Phenomene * * <<cree>> * 1 Corps3D +_position: reel3 +_masse: reel +_forme: Object3D +_rayon: reel CollisionSphereTriangle Corps3DTriangle +_sommetA: reel3 +_sommetB: reel3 +_sommetC: reel3 <<cree>> OrganisationMecanique

Fig. 5.9: Le diagramme UML repr´esente l’h´eritage des classes permettant la r´ealisation des collisions m´ecaniques.

deux sph`eres englobantes sont `a proximit´e, le ph´enom`ene cr´ee une interaction collision adapt´ee (collision entre corps ind´eformables : sph`ere/sph`ere ou triangle/sph`ere...).

Une interaction de collision m´ecanique a pour but de repousser deux corps si elle per¸coit qu’ils sont en contact. Plusieurs solutions sont alors envisageables pour repousser les corps. Pour la collision entre sph`eres nous avons choisi un d´eplacement ´elastique d´ependant de la distance de contact, de la diff´erence de masse et du temps. De cette fa¸con nous pouvons par exemple observer l’´evolution d’amas de cellules (voit figure 5.10).

Avec le mˆeme principe, il est possible d’´etablir des interactions d’adh´esion (entre corps), ou d’agitation (entre un corps et un compartiment (( milieu ))).

5.3.2 Optimisations

La d´etection des collisions est toujours un probl`eme extrˆemement coˆuteux lors de la simu-lation de mod`eles en trois dimensions. Pour ˆetre capable d’introduire un nombre cons´equent de corps dans un univers r´ealisant d´ej`a la simulation d’autres ph´enom`enes (chimiques par exemple), il faut utiliser un certain nombre de techniques d’optimisation des calculs de d´etection des collisions.

La premi`ere optimisation, celle que nous avons pr´ec´edemment indiqu´ee, est le fait que le ph´enom`ene re¸coit un ´ev´enement `a chaque ajout/suppression d’un corps. Ainsi le ph´enom`ene d´etient la liste de tous les corps pr´esents.

Le ph´enom`ene peut alors structurer ces corps dans une grille en trois dimensions. Le maillage de la grille poss`ede un pas sup´erieur au plus grand diam`etre de la sph`ere englobante du plus grand des corps. `A chaque mouvement d’un corps un ´ev´enement est ´emis. Il est re¸cu par le ph´enom`ene qui v´erifie si le corps est toujours dans la mˆeme case. S’il change de case, alors il cr´ee les nouvelles interactions Collision n´ecessaires.

fr´equen-Organisation m´ecanique

a) b)

d) c)

Fig. 5.10: La figure repr´esente un exemple d’application que permet le syst`eme de gestion des collisions. On observe ce qu’il se passe lorsque la cellule bleue se divise en une cellule bleue et une verte.

ce d’activation aussi ´elev´ee que les r´eactions chimiques. En effet, lorsqu’on souhaite mod´eliser des syst`emes tissulaires au niveau cellulaire, il y a finalement assez peu de mouvement. L`a ou les r´eactions chimiques se r´ealisent `a des pas de temps de l’ordre de la milliseconde, les collisions peuvent intervenir tous les dixi`emes de seconde voire toutes les demi secondes.

Enfin, dans le cas o`u la collision agit sur deux objets tr`es proches mais qui demeurent immobiles, il n’est pas n´ecessaire de v´erifier leur position en permanence. L’interaction peut alors s’inscrire au mˆeme ´ev´enement que pr´ec´edemment (qui se d´eclenche lorsqu’un corps est d´eplac´e) et s’endormir pour ne plus consommer de ressources de calcul jusqu’`a ce que l’un des corps qui la concerne ne la r´eveille en bougeant. Ce m´ecanisme all`ege fortement la simulation quand il y a tr`es peu de mouvement.

Le choix des m´ethodes utilis´ees a ´et´e effectu´e en fonction des applications r´ealis´ees. C’est un compromis entre temps de calcul et d´eveloppement. `A chaque application, il faut faire un compromis pour trouver la solution et les param`etres optimaux. Ce qu’il faut retenir, c’est que toutes les sp´ecificit´es inh´erentes `a la d´etection des collisions sont encapsul´ees dans la classe CollisionPh´enom`eneet la classe Collision. Si le mod´elisateur souhaite modifier ce ph´enom`ene, alors il peut le faire de mani`ere ind´ependante ; c’est l’int´erˆet de la modularit´e et de la r´eification des interactions.

5.3.3 Interaction ponctuelle, cas limite d’utilisation

La prise en compte des collisions est int´eressante parce qu’elle s’attaque `a un cas limite d’application du mod`ele propos´e. Il existe de nombreux travaux sur la d´etection des colli-sions [Meseure and Kheddar, 2006]. En g´en´eral, le traitement des collicolli-sions se fait lors du d´eplacement des entit´es ; on d´etecte si la position d’arriv´ee est valide. S’il elle ne l’est pas, on traite la collision en cons´equence. La collision est donc instantan´ee.

Le fait de r´eifier les interactions n’est pas adapt´e aux interactions ponctuelles. Il est ´evidemment inutile de cr´eer une instance d’interaction si elle n’agit qu’une seule fois sur le

syst`eme, autant r´ealiser directement l’interaction. Deux solutions s’offrent alors `a nous pour traiter le ph´enom`ene ´ev´enementiel de la d´etection des collisions : chercher `a l’adapter `a notre mod`ele ou lui adapter notre mod`ele.

Dans un premier temps, nous nous sommes donc interrog´es sur ce que devenait le ph´e-nom`ene de collision dans le mod`ele g´en´erique. Le principe d’autonomie nous am`ene `a traiter s´epar´ement le ph´enom`ene de collision et d’autres ph´enom`enes ´eventuels qui d´eplaceraient les corps. Il ne s’agit alors plus de traiter la collision pendant le d´eplacement, puisque ce sont deux actions qui sont ind´ependantes, mais de cr´eer une interaction l`a o`u il peut y avoir un recouvrement. C’est ce que nous venons de pr´esenter. L’avantage de cette fa¸con de faire est de pouvoir observer simplement le r´esultats d’un nombre cons´equent de collisions `a partir d’interactions ´el´ementaires, l`a o`u une gestion classique aurait des difficult´es `a proposer un mod`ele physique r´ealiste ou alors risquerait d’ˆetre redondante (A interagit avec B et B in-teragit avec A). L’application d´ecrite au chapitre 6 montrera de plus que cette gestion des collisions est largement suffisante en terme de performance pour nos besoins.

La solution impl´ement´ee contourne alors le probl`eme des interactions ponctuelles en les rendant persistantes et d´ependantes du temps. Toutefois, il peut ˆetre bon d’imaginer une solution pour mod´eliser ce genre d’interaction pour le cas o`u l’on ne pourrait contourner le probl`eme. La solution apparaˆıt d’elle-mˆeme si l’on revient `a la d´efinition de l’interaction que nous avons donn´ee au chapitre pr´ec´edent. L’interaction est en effet per¸cue comme une manifestation particuli`ere d’un ph´enom`ene. Pour ´eviter que le ph´enom`ene ne perde du temps `

a instancier une interaction `a activation unique, il est possible d’imaginer que le ph´enom`ene r´ealise directement cette action. Ainsi, il y aurait bien une interaction ponctuelle. Cela signifie que l’on permet au ph´enom`ene de modifier directement la structure du mod`ele.

La raison pour laquelle nous n’avons pas encore introduit cette possibilit´e dans le mod`ele g´en´erique est que nous n’avons d´ecrit que l’ordonnancement des interactions. Cela m´eriterait donc une r´eflexion sur l’ordonnancement des actions r´ealis´ees par les ph´enom`enes sur les constituants. Autrement dit, il faudrait s’assurer que l’action d’un ph´enom`ene soit stricte-ment ´equivalente en terme de r´esultat, `a la cr´eation d’une interaction, `a son activation par l’ordonnanceur, puis `a son suicide. De plus, r´ealiser concr`etement cet aspect du mod`ele n’est pas une priorit´e actuellement. Nous pr´ef´erons donc ne pas le formaliser dans cette th`ese qui n’est qu’une ´etape, nous gardons n´eanmoins cette possibilit´e en perspective. Il temps maintenant de nous pencher sur (( le )) mod`ele de la r´ealit´e virtuelle : l’utilisateur.