Просмотр исходного кода

Updating intersectsPoint functions to use engine.Epsilon values

David Catuhe 12 лет назад
Родитель
Сommit
f44be1bd9c

+ 5 - 3
Babylon/Culling/babylon.BoundingBox.ts

@@ -84,13 +84,15 @@
         }
 
         public intersectsPoint(point: Vector3): boolean {
-            if (this.maximumWorld.x < point.x || this.minimumWorld.x > point.x)
+            var delta = Engine.Epsilon;
+
+            if (this.maximumWorld.x - point.x < delta || delta > point.x - this.minimumWorld.x)
                 return false;
 
-            if (this.maximumWorld.y < point.y || this.minimumWorld.y > point.y)
+            if (this.maximumWorld.y - point.y < delta || delta > point.y - this.minimumWorld.y)
                 return false;
 
-            if (this.maximumWorld.z < point.z || this.minimumWorld.z > point.z)
+            if (this.maximumWorld.z - point.z < delta || delta > point.z - this.minimumWorld.z)
                 return false;
 
             return true;

+ 5 - 3
Babylon/Culling/babylon.boundingBox.js

@@ -79,13 +79,15 @@
         };
 
         BoundingBox.prototype.intersectsPoint = function (point) {
-            if (this.maximumWorld.x < point.x || this.minimumWorld.x > point.x)
+            var delta = BABYLON.Engine.Epsilon;
+
+            if (this.maximumWorld.x - point.x < delta || delta > point.x - this.minimumWorld.x)
                 return false;
 
-            if (this.maximumWorld.y < point.y || this.minimumWorld.y > point.y)
+            if (this.maximumWorld.y - point.y < delta || delta > point.y - this.minimumWorld.y)
                 return false;
 
-            if (this.maximumWorld.z < point.z || this.minimumWorld.z > point.z)
+            if (this.maximumWorld.z - point.z < delta || delta > point.z - this.minimumWorld.z)
                 return false;
 
             return true;

+ 1 - 1
Babylon/Culling/babylon.boundingSphere.js

@@ -37,7 +37,7 @@
 
             var distance = Math.sqrt((x * x) + (y * y) + (z * z));
 
-            if (this.radiusWorld < distance)
+            if (Math.abs(this.radiusWorld - distance) < BABYLON.Engine.Epsilon)
                 return false;
 
             return true;

+ 1 - 1
Babylon/Culling/babylon.boundingSphere.ts

@@ -40,7 +40,7 @@
 
             var distance = Math.sqrt((x * x) + (y * y) + (z * z));
 
-            if (this.radiusWorld < distance)
+            if (Math.abs(this.radiusWorld - distance) < Engine.Epsilon)
                 return false;
 
             return true;

Разница между файлами не показана из-за своего большого размера
+ 2 - 2
babylon.1.12-beta.js