David Catuhe 9 years ago
parent
commit
0a73722682

File diff suppressed because it is too large
+ 22 - 22
dist/preview release/babylon.core.js


File diff suppressed because it is too large
+ 2009 - 2005
dist/preview release/babylon.d.ts


File diff suppressed because it is too large
+ 30 - 30
dist/preview release/babylon.js


File diff suppressed because it is too large
+ 33 - 8
dist/preview release/babylon.max.js


File diff suppressed because it is too large
+ 29 - 29
dist/preview release/babylon.noworker.js


+ 3 - 2
src/Culling/babylon.ray.js

@@ -230,10 +230,11 @@ var BABYLON;
             sc = (Math.abs(sN) < Ray.smallnum ? 0.0 : sN / sD);
             tc = (Math.abs(tN) < Ray.smallnum ? 0.0 : tN / tD);
             // get the difference of the two closest points
-            var dP = w.add(u.multiplyByFloats(sc, sc, sc)).subtract(v.multiplyByFloats(tc, tc, tc)); // = S1(sc) - S2(tc)
+            var qtc = v.multiplyByFloats(tc, tc, tc);
+            var dP = w.add(u.multiplyByFloats(sc, sc, sc)).subtract(qtc); // = S1(sc) - S2(tc)
             var isIntersected = (tc > 0) && (tc <= this.length) && (dP.lengthSquared() < (threshold * threshold)); // return intersection result
             if (isIntersected) {
-                return tc;
+                return qtc.length();
             }
             return -1;
         };

+ 2 - 2
src/Culling/babylon.ray.ts

@@ -277,7 +277,7 @@
             }
             return -1;
         }
-        
+
         // Statics
         public static CreateNew(x: number, y: number, viewportWidth: number, viewportHeight: number, world: Matrix, view: Matrix, projection: Matrix): Ray {
             var start = Vector3.Unproject(new Vector3(x, y, 0), viewportWidth, viewportHeight, world, view, projection);
@@ -313,4 +313,4 @@
             return new Ray(newOrigin, newDirection, ray.length);
         }
     }
-}
+}

+ 24 - 0
src/Math/babylon.math.js

@@ -1172,6 +1172,9 @@ var BABYLON;
             this.w *= num;
             return this;
         };
+        Vector4.prototype.toVector3 = function () {
+            return new Vector3(this.x, this.y, this.z);
+        };
         Vector4.prototype.clone = function () {
             return new Vector4(this.x, this.y, this.z, this.w);
         };
@@ -1664,6 +1667,9 @@ var BABYLON;
             this.m[14] = vector3.z;
             return this;
         };
+        Matrix.prototype.getTranslation = function () {
+            return new Vector3(this.m[12], this.m[13], this.m[14]);
+        };
         Matrix.prototype.multiply = function (other) {
             var result = new Matrix();
             this.multiplyToRef(other, result);
@@ -1805,6 +1811,24 @@ var BABYLON;
             result.m[14] = initialM43;
             result.m[15] = initialM44;
         };
+        Matrix.prototype.getRow = function (index) {
+            if (index < 0 || index > 3) {
+                return null;
+            }
+            var i = index * 4;
+            return new Vector4(this.m[i + 0], this.m[i + 1], this.m[i + 2], this.m[i + 3]);
+        };
+        Matrix.prototype.setRow = function (index, row) {
+            if (index < 0 || index > 3) {
+                return this;
+            }
+            var i = index * 4;
+            this.m[i + 0] = row.x;
+            this.m[i + 1] = row.y;
+            this.m[i + 2] = row.z;
+            this.m[i + 3] = row.w;
+            return this;
+        };
         Matrix.FromValues = function (initialM11, initialM12, initialM13, initialM14, initialM21, initialM22, initialM23, initialM24, initialM31, initialM32, initialM33, initialM34, initialM41, initialM42, initialM43, initialM44) {
             var result = new Matrix();
             result.m[0] = initialM11;

+ 9 - 7
src/Math/babylon.math.ts

@@ -22,7 +22,7 @@
 
             return str.toUpperCase();
         }
-        
+
         // Returns -1 when value is a negative number and
         // +1 when value is a positive number. 
         public static Sign(value: number): number {
@@ -2047,7 +2047,7 @@
 
             return this;
         }
-        
+
         public getTranslation(): Vector3 {
             return new Vector3(this.m[12], this.m[13], this.m[14]);
         }
@@ -2244,9 +2244,9 @@
             return new Vector4(this.m[i + 0], this.m[i + 1], this.m[i + 2], this.m[i + 3]);
         }
 
-        public setRow(index: number, row: Vector4): boolean {
+        public setRow(index: number, row: Vector4): Matrix {
             if (index < 0 || index > 3) {
-                return false;
+                return this;
             }
 
             var i = index * 4;
@@ -2254,6 +2254,8 @@
             this.m[i + 1] = row.y;
             this.m[i + 2] = row.z;
             this.m[i + 3] = row.w;
+
+            return this;
         }
 
         public static FromValues(initialM11: number, initialM12: number, initialM13: number, initialM14: number,
@@ -2632,7 +2634,7 @@
 
         public static PerspectiveFovLHToRef(fov: number, aspect: number, znear: number, zfar: number, result: Matrix, isVerticalFovFixed = true): void {
             var tan = 1.0 / (Math.tan(fov * 0.5));
-            
+
             if (isVerticalFovFixed) {
                 result.m[0] = tan / aspect;
             }
@@ -3362,7 +3364,7 @@
             }
             return new Curve3(bez);
         }
-        
+
         /**
          * Returns a Curve3 object along a Cubic Bezier curve : http://doc.babylonjs.com/tutorials/How_to_use_Curve3#cubic-bezier-curve  
          * @param v0 (Vector3) the origin point of the Cubic Bezier
@@ -3568,4 +3570,4 @@
             Matrix.Zero(), Matrix.Zero(),
             Matrix.Zero(), Matrix.Zero()];                      // 6 temp Matrices at once should be enough
     }
-}
+}

+ 5 - 5
src/Tools/babylon.observable.js

@@ -5,11 +5,11 @@ var BABYLON;
      */
     var EventState = (function () {
         /**
-        * If the callback of a given Observer set skipNextObervers to true the following observers will be ignored
+        * If the callback of a given Observer set skipNextObservers to true the following observers will be ignored
         */
-        function EventState(skipNextObervers) {
-            if (skipNextObervers === void 0) { skipNextObervers = false; }
-            this.skipNextObervers = skipNextObervers;
+        function EventState(skipNextObservers) {
+            if (skipNextObservers === void 0) { skipNextObservers = false; }
+            this.skipNextObservers = skipNextObservers;
         }
         return EventState;
     })();
@@ -85,7 +85,7 @@ var BABYLON;
                 if (obs.mask & mask) {
                     obs.callback(eventData, state);
                 }
-                if (state.skipNextObervers) {
+                if (state.skipNextObservers) {
                     break;
                 }
             }

+ 3 - 4
src/Tools/babylon.observable.ts

@@ -13,7 +13,7 @@
     }
 
     export class Observer<T> {
-        constructor(public callback: (eventData: T, eventState: EventState) => void, public mask:number) {
+        constructor(public callback: (eventData: T, eventState: EventState) => void, public mask: number) {
         }
     }
 
@@ -80,7 +80,7 @@
          * @param eventData
          * @param mask
          */
-        public notifyObservers(eventData: T, mask:number = -1): void {
+        public notifyObservers(eventData: T, mask: number = -1): void {
             var state = new EventState();
 
             for (var obs of this._observers) {
@@ -118,5 +118,4 @@
             return result;
         }
     }
-}
-
+}