This is an old revision of the document!
−Table of Contents
Commit 2017-08-16
Ce commit est pour améliorer quelques routines liées au contact et pour mettre progressivement mes développements sur la version courante.
Cas Test - Schéma d'augmentation alternative
Afin de conserver une trace de l'interface des nouvelles méthodologies, j'ai ajouté les cas tests implémentés et présentés lors de la conférence ICCCM 2017.
Boundary Volume Hierarchy
La détection du contact dans Metafor peut être séparée en deux phases distinctes : détection globale et détection locale. La détection globale indique grossièrement sur quelle portion de l'entité maître le nœud esclave sera potentiellement en contact tandis que la détection locale détermine la projection du nœud esclave sur cette portion de l'entité maître. La phase de détection globale se fait en général à l'aide de boites alignées selon les axes Cartésiens et elle est critique dans le cas du contact entre corps déformable. En effet, dans ce cas là, nous devons parcourir l'ensemble des facettes du corps maître et répertorier toutes les projections valides avant décider laquelle d'entre elles sera la bonne projection. Dans ce cas là, on constate que le temps de calcul peut littéralement exploser si on augmente le nombre d'éléments sur la surface du corps maître, car on a une tendance du type O(N*M) avec N = le nombre de facettes du corps maître et M = le nombre de nœuds du corps esclave.
Pour améliorer l'efficacité de l'algorithme de détection du contact, un algorithme de recherche sous forme d'arbre binaire a été implémenté dans Metafor. Cet algorithme permet de récupérer aisément les facettes sur laquelle nous devons effectuer la détection locale.
Je vous fournis aussi les références utilisées pour l'implémentation :
Implémentation
Les routines de parcours sur l'arbre se fait au moyen d'un appel à fonction récursif au lieu
Cas Test
Extensions possibles
Fichiers ajoutés/supprimés
[a]: [r]:
Cas tests ajoutés/supprimés
[a]: [r]:
— gaëtan 2017/08/16 12:00