======Commit 2014-06-06====== Modifications de la stratégie de reset des boundingBoxes en vue de préparer le prochain commit sur le système hiérarchique de boundingBoxes =====Reset des boundingBoxes===== Auparavant, l’opération de reset des boundingBoxes (''needToBeComuted(True)'') était incluse dans la méthode ''resetShortCuts()'' des classes ''mtGeoCurve'' et ''mtGeoSurface''. Le reset des boundingBoxes était dès lors en grande partie orchestré par les appels aux méthodes de mise à jour des classes ''RadialLoading'', ''RotativeLoading'' et ''UniformLoading'' ainsi qu’à chaque début de détection du contact pour le maillage. Désormais, le chemin poursuivi pour réaliser le reset des boundingBoxes est modifié. Le reset des boundingBoxes est découplé des méthodes ''resetShortCuts()'' et est réalisé non plus à partir de l’objet géométrique de la classe ''DBLoading'' mais à partir du ou des outils de contact de l'interaction. Le reset des boundingBoxes est opéré en amont dans les routines de détection du contact. =====Motivations de la nouvelle stratégie de reset des boîtes===== Au moyen de la précédente stratégie de reset des boîtes, si l’objet géométrique sur lequel était imposé le chargement est de plus bas niveau que celui de l’outil de contact, des boundingBoxes immobiles seraient observées pour quelques cas-tests de la batterie au commit suivant, c’est-à-dire des boîtes qui ne suivent pas leur objet géométrique - ces boîtes étant privées de toutes opérations de reset - amenant ainsi des problèmes de convergence et/ou de contacts manqués. Ensuite, l’animation ci-dessous du cas-test ''apps.bImp.laursenContact3D'' est une illustration manifeste de la résolution des quelques problèmes de boîtes clignotantes qui pouvaient être observés lors du commit précédent suite à des resets de boîtes mal contrôlés. {{url>https://www.youtube.com/embed/ILc4GrQ8YVI?rel=0 noborder allowfullscreen}} =====Boucle sur les éléments des interactions dans la détection du contact===== Dans les routines de détection du contact, on peut relever un petit gaspillage du temps CPU puisque la boucle sur les éléments est réalisée quel que soit le type d’interactions. Pour éliminer ce gaspillage, la ligne de code ''getElementSet().initIterations()'' dans la méthode ''initIterations()'' est déplacée de la classe ''Interaction'' vers la classe ''ContactInteraction''. =====Affichage des bounding boxes ===== Nettoyage partiel des routines. ==== Fichiers ajoutés/supprimés ==== --- //[[Y.Crutzen@ulg.ac.be|Yanick Crutzen]] 2014/06/06 //