Переглянути джерело

Adding precise option for OnIntersectionEnter and OnIntersectionExit (see doc here: http://doc.babylonjs.com/page.php?p=22531)

David Catuhe 10 роки тому
батько
коміт
7366b1a21b

+ 3 - 2
Babylon/babylon.scene.js

@@ -962,8 +962,9 @@ var BABYLON;
                 for (var actionIndex = 0; actionIndex < sourceMesh.actionManager.actions.length; actionIndex++) {
                     var action = sourceMesh.actionManager.actions[actionIndex];
                     if (action.trigger === BABYLON.ActionManager.OnIntersectionEnterTrigger || action.trigger === BABYLON.ActionManager.OnIntersectionExitTrigger) {
-                        var otherMesh = action.getTriggerParameter();
-                        var areIntersecting = otherMesh.intersectsMesh(sourceMesh, false);
+                        var parameters = action.getTriggerParameter();
+                        var otherMesh = parameters instanceof BABYLON.AbstractMesh ? parameters : parameters.mesh;
+                        var areIntersecting = otherMesh.intersectsMesh(sourceMesh, parameters.usePreciseIntersection);
                         var currentIntersectionInProgress = sourceMesh._intersectionsInProgress.indexOf(otherMesh);
                         if (areIntersecting && currentIntersectionInProgress === -1) {
                             if (action.trigger === BABYLON.ActionManager.OnIntersectionEnterTrigger) {

+ 3 - 2
Babylon/babylon.scene.ts

@@ -1264,9 +1264,10 @@
                     var action = sourceMesh.actionManager.actions[actionIndex];
 
                     if (action.trigger === ActionManager.OnIntersectionEnterTrigger || action.trigger === ActionManager.OnIntersectionExitTrigger) {
-                        var otherMesh = action.getTriggerParameter();
+                        var parameters = action.getTriggerParameter();
+                        var otherMesh = parameters instanceof AbstractMesh ? parameters : parameters.mesh;
 
-                        var areIntersecting = otherMesh.intersectsMesh(sourceMesh, false);
+                        var areIntersecting = otherMesh.intersectsMesh(sourceMesh, parameters.usePreciseIntersection);
                         var currentIntersectionInProgress = sourceMesh._intersectionsInProgress.indexOf(otherMesh);
 
                         if (areIntersecting && currentIntersectionInProgress === -1) {

+ 3 - 2
babylon.2.0-beta.debug.js

@@ -8349,8 +8349,9 @@ var BABYLON;
                 for (var actionIndex = 0; actionIndex < sourceMesh.actionManager.actions.length; actionIndex++) {
                     var action = sourceMesh.actionManager.actions[actionIndex];
                     if (action.trigger === BABYLON.ActionManager.OnIntersectionEnterTrigger || action.trigger === BABYLON.ActionManager.OnIntersectionExitTrigger) {
-                        var otherMesh = action.getTriggerParameter();
-                        var areIntersecting = otherMesh.intersectsMesh(sourceMesh, false);
+                        var parameters = action.getTriggerParameter();
+                        var otherMesh = parameters instanceof BABYLON.AbstractMesh ? parameters : parameters.mesh;
+                        var areIntersecting = otherMesh.intersectsMesh(sourceMesh, parameters.usePreciseIntersection);
                         var currentIntersectionInProgress = sourceMesh._intersectionsInProgress.indexOf(otherMesh);
                         if (areIntersecting && currentIntersectionInProgress === -1) {
                             if (action.trigger === BABYLON.ActionManager.OnIntersectionEnterTrigger) {

Різницю між файлами не показано, бо вона завелика
+ 2 - 2
babylon.2.0-beta.js