浏览代码

Fixed #2988
Associated with #2982

David Catuhe 7 年之前
父节点
当前提交
8f6a15dab4
共有 75 个文件被更改,包括 11059 次插入10477 次删除
  1. 3415 3415
      dist/preview release/babylon.d.ts
  2. 45 44
      dist/preview release/babylon.js
  3. 847 600
      dist/preview release/babylon.max.js
  4. 3415 3415
      dist/preview release/babylon.module.d.ts
  5. 47 46
      dist/preview release/babylon.worker.js
  6. 930 930
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts
  7. 45 44
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js
  8. 856 611
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js
  9. 930 930
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts
  10. 27 27
      dist/preview release/gui/babylon.gui.js
  11. 54 54
      dist/preview release/inspector/babylon.inspector.js
  12. 9 9
      dist/preview release/loaders/babylon.glTF1FileLoader.js
  13. 8 8
      dist/preview release/loaders/babylon.glTF2FileLoader.js
  14. 15 15
      dist/preview release/loaders/babylon.glTFFileLoader.js
  15. 2 2
      dist/preview release/loaders/babylon.objFileLoader.js
  16. 1 1
      dist/preview release/loaders/babylon.objFileLoader.min.js
  17. 1 1
      dist/preview release/loaders/babylon.stlFileLoader.js
  18. 18 18
      dist/preview release/loaders/babylonjs.loaders.js
  19. 1 1
      dist/preview release/loaders/babylonjs.loaders.min.js
  20. 2 2
      dist/preview release/materialsLibrary/babylon.cellMaterial.js
  21. 7 7
      dist/preview release/materialsLibrary/babylon.customMaterial.js
  22. 2 2
      dist/preview release/materialsLibrary/babylon.fireMaterial.js
  23. 2 2
      dist/preview release/materialsLibrary/babylon.furMaterial.js
  24. 2 2
      dist/preview release/materialsLibrary/babylon.gradientMaterial.js
  25. 2 2
      dist/preview release/materialsLibrary/babylon.gridMaterial.js
  26. 2 2
      dist/preview release/materialsLibrary/babylon.lavaMaterial.js
  27. 2 2
      dist/preview release/materialsLibrary/babylon.legacyPbrMaterial.js
  28. 2 2
      dist/preview release/materialsLibrary/babylon.normalMaterial.js
  29. 2 2
      dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.js
  30. 2 2
      dist/preview release/materialsLibrary/babylon.simpleMaterial.js
  31. 2 2
      dist/preview release/materialsLibrary/babylon.skyMaterial.js
  32. 2 2
      dist/preview release/materialsLibrary/babylon.terrainMaterial.js
  33. 2 2
      dist/preview release/materialsLibrary/babylon.triPlanarMaterial.js
  34. 2 2
      dist/preview release/materialsLibrary/babylon.waterMaterial.js
  35. 35 35
      dist/preview release/materialsLibrary/babylonjs.materials.js
  36. 2 2
      dist/preview release/postProcessesLibrary/babylon.asciiArtPostProcess.js
  37. 2 2
      dist/preview release/postProcessesLibrary/babylon.digitalRainPostProcess.js
  38. 4 4
      dist/preview release/postProcessesLibrary/babylonjs.postProcess.js
  39. 1 1
      dist/preview release/proceduralTexturesLibrary/babylon.brickProceduralTexture.js
  40. 1 1
      dist/preview release/proceduralTexturesLibrary/babylon.cloudProceduralTexture.js
  41. 1 1
      dist/preview release/proceduralTexturesLibrary/babylon.fireProceduralTexture.js
  42. 1 1
      dist/preview release/proceduralTexturesLibrary/babylon.grassProceduralTexture.js
  43. 1 1
      dist/preview release/proceduralTexturesLibrary/babylon.marbleProceduralTexture.js
  44. 1 1
      dist/preview release/proceduralTexturesLibrary/babylon.normalMapProceduralTexture.js
  45. 1 1
      dist/preview release/proceduralTexturesLibrary/babylon.perlinNoiseProceduralTexture.js
  46. 1 1
      dist/preview release/proceduralTexturesLibrary/babylon.roadProceduralTexture.js
  47. 1 1
      dist/preview release/proceduralTexturesLibrary/babylon.starfieldProceduralTexture.js
  48. 1 1
      dist/preview release/proceduralTexturesLibrary/babylon.woodProceduralTexture.js
  49. 10 10
      dist/preview release/proceduralTexturesLibrary/babylonjs.proceduralTextures.js
  50. 1 1
      dist/preview release/serializers/babylon.objSerializer.js
  51. 1 1
      dist/preview release/serializers/babylonjs.serializers.js
  52. 31 17
      src/Cameras/VR/babylon.vrExperienceHelper.ts
  53. 9 9
      src/Cameras/VR/babylon.webVRCamera.ts
  54. 29 29
      src/Cameras/babylon.arcRotateCamera.ts
  55. 8 6
      src/Cameras/babylon.cameraInputsManager.ts
  56. 16 16
      src/Cameras/babylon.freeCamera.ts
  57. 6 6
      src/Cameras/babylon.gamepadCamera.ts
  58. 7 3
      src/Cameras/babylon.targetCamera.ts
  59. 6 6
      src/Cameras/babylon.touchCamera.ts
  60. 6 6
      src/Cameras/babylon.universalCamera.ts
  61. 1 1
      src/Collisions/babylon.collider.ts
  62. 19 10
      src/Collisions/babylon.collisionCoordinator.ts
  63. 4 4
      src/Collisions/babylon.collisionWorker.ts
  64. 5 5
      src/Collisions/babylon.pickingInfo.ts
  65. 2 2
      src/Culling/babylon.ray.ts
  66. 28 21
      src/Debug/babylon.axesViewer.ts
  67. 7 10
      src/Debug/babylon.boneAxesViewer.ts
  68. 43 17
      src/Debug/babylon.physicsViewer.ts
  69. 34 16
      src/Debug/babylon.rayHelper.ts
  70. 3 3
      src/Debug/babylon.skeletonViewer.ts
  71. 1 1
      src/Mesh/babylon.mesh.ts
  72. 2 2
      src/Mesh/babylon.meshBuilder.ts
  73. 8 4
      src/Tools/babylon.decorators.ts
  74. 17 10
      src/Tools/babylon.observable.ts
  75. 1 2
      src/tsconfig.json

文件差异内容过多而无法显示
+ 3415 - 3415
dist/preview release/babylon.d.ts


文件差异内容过多而无法显示
+ 45 - 44
dist/preview release/babylon.js


文件差异内容过多而无法显示
+ 847 - 600
dist/preview release/babylon.max.js


文件差异内容过多而无法显示
+ 3415 - 3415
dist/preview release/babylon.module.d.ts


文件差异内容过多而无法显示
+ 47 - 46
dist/preview release/babylon.worker.js


文件差异内容过多而无法显示
+ 930 - 930
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts


文件差异内容过多而无法显示
+ 45 - 44
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js


文件差异内容过多而无法显示
+ 856 - 611
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js


文件差异内容过多而无法显示
+ 930 - 930
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.module.d.ts


+ 27 - 27
dist/preview release/gui/babylon.gui.js

@@ -22,7 +22,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var AdvancedDynamicTexture = (function (_super) {
+        var AdvancedDynamicTexture = /** @class */ (function (_super) {
             __extends(AdvancedDynamicTexture, _super);
             __extends(AdvancedDynamicTexture, _super);
             function AdvancedDynamicTexture(name, width, height, scene, generateMipMaps, samplingMode) {
             function AdvancedDynamicTexture(name, width, height, scene, generateMipMaps, samplingMode) {
                 if (width === void 0) { width = 0; }
                 if (width === void 0) { width = 0; }
@@ -430,7 +430,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var Measure = (function () {
+        var Measure = /** @class */ (function () {
             function Measure(left, top, width, height) {
             function Measure(left, top, width, height) {
                 this.left = left;
                 this.left = left;
                 this.top = top;
                 this.top = top;
@@ -475,7 +475,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var Vector2WithInfo = (function (_super) {
+        var Vector2WithInfo = /** @class */ (function (_super) {
             __extends(Vector2WithInfo, _super);
             __extends(Vector2WithInfo, _super);
             function Vector2WithInfo(source, buttonIndex) {
             function Vector2WithInfo(source, buttonIndex) {
                 if (buttonIndex === void 0) { buttonIndex = 0; }
                 if (buttonIndex === void 0) { buttonIndex = 0; }
@@ -486,7 +486,7 @@ var BABYLON;
             return Vector2WithInfo;
             return Vector2WithInfo;
         }(BABYLON.Vector2));
         }(BABYLON.Vector2));
         GUI.Vector2WithInfo = Vector2WithInfo;
         GUI.Vector2WithInfo = Vector2WithInfo;
-        var Matrix2D = (function () {
+        var Matrix2D = /** @class */ (function () {
             function Matrix2D(m00, m01, m10, m11, m20, m21) {
             function Matrix2D(m00, m01, m10, m11, m20, m21) {
                 this.m = new Float32Array(6);
                 this.m = new Float32Array(6);
                 this.fromValues(m00, m01, m10, m11, m20, m21);
                 this.fromValues(m00, m01, m10, m11, m20, m21);
@@ -607,7 +607,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var ValueAndUnit = (function () {
+        var ValueAndUnit = /** @class */ (function () {
             function ValueAndUnit(value, unit, negativeValueAllowed) {
             function ValueAndUnit(value, unit, negativeValueAllowed) {
                 if (unit === void 0) { unit = ValueAndUnit.UNITMODE_PIXEL; }
                 if (unit === void 0) { unit = ValueAndUnit.UNITMODE_PIXEL; }
                 if (negativeValueAllowed === void 0) { negativeValueAllowed = true; }
                 if (negativeValueAllowed === void 0) { negativeValueAllowed = true; }
@@ -725,7 +725,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var Control = (function () {
+        var Control = /** @class */ (function () {
             // Functions
             // Functions
             function Control(name) {
             function Control(name) {
                 this.name = name;
                 this.name = name;
@@ -1771,7 +1771,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var Container = (function (_super) {
+        var Container = /** @class */ (function (_super) {
             __extends(Container, _super);
             __extends(Container, _super);
             function Container(name) {
             function Container(name) {
                 var _this = _super.call(this, name) || this;
                 var _this = _super.call(this, name) || this;
@@ -1950,7 +1950,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var StackPanel = (function (_super) {
+        var StackPanel = /** @class */ (function (_super) {
             __extends(StackPanel, _super);
             __extends(StackPanel, _super);
             function StackPanel(name) {
             function StackPanel(name) {
                 var _this = _super.call(this, name) || this;
                 var _this = _super.call(this, name) || this;
@@ -2092,7 +2092,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var Rectangle = (function (_super) {
+        var Rectangle = /** @class */ (function (_super) {
             __extends(Rectangle, _super);
             __extends(Rectangle, _super);
             function Rectangle(name) {
             function Rectangle(name) {
                 var _this = _super.call(this, name) || this;
                 var _this = _super.call(this, name) || this;
@@ -2208,7 +2208,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var Ellipse = (function (_super) {
+        var Ellipse = /** @class */ (function (_super) {
             __extends(Ellipse, _super);
             __extends(Ellipse, _super);
             function Ellipse(name) {
             function Ellipse(name) {
                 var _this = _super.call(this, name) || this;
                 var _this = _super.call(this, name) || this;
@@ -2274,7 +2274,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var Line = (function (_super) {
+        var Line = /** @class */ (function (_super) {
             __extends(Line, _super);
             __extends(Line, _super);
             function Line(name) {
             function Line(name) {
                 var _this = _super.call(this, name) || this;
                 var _this = _super.call(this, name) || this;
@@ -2474,7 +2474,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var Slider = (function (_super) {
+        var Slider = /** @class */ (function (_super) {
             __extends(Slider, _super);
             __extends(Slider, _super);
             function Slider(name) {
             function Slider(name) {
                 var _this = _super.call(this, name) || this;
                 var _this = _super.call(this, name) || this;
@@ -2684,7 +2684,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var Checkbox = (function (_super) {
+        var Checkbox = /** @class */ (function (_super) {
             __extends(Checkbox, _super);
             __extends(Checkbox, _super);
             function Checkbox(name) {
             function Checkbox(name) {
                 var _this = _super.call(this, name) || this;
                 var _this = _super.call(this, name) || this;
@@ -2800,7 +2800,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var RadioButton = (function (_super) {
+        var RadioButton = /** @class */ (function (_super) {
             __extends(RadioButton, _super);
             __extends(RadioButton, _super);
             function RadioButton(name) {
             function RadioButton(name) {
                 var _this = _super.call(this, name) || this;
                 var _this = _super.call(this, name) || this;
@@ -2937,7 +2937,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var TextBlock = (function (_super) {
+        var TextBlock = /** @class */ (function (_super) {
             __extends(TextBlock, _super);
             __extends(TextBlock, _super);
             function TextBlock(name, text) {
             function TextBlock(name, text) {
                 if (text === void 0) { text = ""; }
                 if (text === void 0) { text = ""; }
@@ -3146,7 +3146,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var Image = (function (_super) {
+        var Image = /** @class */ (function (_super) {
             __extends(Image, _super);
             __extends(Image, _super);
             function Image(name, url) {
             function Image(name, url) {
                 var _this = _super.call(this, name) || this;
                 var _this = _super.call(this, name) || this;
@@ -3388,7 +3388,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var Button = (function (_super) {
+        var Button = /** @class */ (function (_super) {
             __extends(Button, _super);
             __extends(Button, _super);
             function Button(name) {
             function Button(name) {
                 var _this = _super.call(this, name) || this;
                 var _this = _super.call(this, name) || this;
@@ -3517,7 +3517,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var ColorPicker = (function (_super) {
+        var ColorPicker = /** @class */ (function (_super) {
             __extends(ColorPicker, _super);
             __extends(ColorPicker, _super);
             function ColorPicker(name) {
             function ColorPicker(name) {
                 var _this = _super.call(this, name) || this;
                 var _this = _super.call(this, name) || this;
@@ -3863,7 +3863,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var InputText = (function (_super) {
+        var InputText = /** @class */ (function (_super) {
             __extends(InputText, _super);
             __extends(InputText, _super);
             function InputText(name, text) {
             function InputText(name, text) {
                 if (text === void 0) { text = ""; }
                 if (text === void 0) { text = ""; }
@@ -4112,12 +4112,12 @@ var BABYLON;
                         return;
                         return;
                 }
                 }
                 // Printable characters
                 // Printable characters
-                if ((keyCode === -1) ||
-                    (keyCode === 32) ||
-                    (keyCode > 47 && keyCode < 58) ||
-                    (keyCode > 64 && keyCode < 91) ||
-                    (keyCode > 185 && keyCode < 193) ||
-                    (keyCode > 218 && keyCode < 223) ||
+                if ((keyCode === -1) || // Direct access
+                    (keyCode === 32) || // Space
+                    (keyCode > 47 && keyCode < 58) || // Numbers
+                    (keyCode > 64 && keyCode < 91) || // Letters
+                    (keyCode > 185 && keyCode < 193) || // Special characters
+                    (keyCode > 218 && keyCode < 223) || // Special characters
                     (keyCode > 95 && keyCode < 112)) {
                     (keyCode > 95 && keyCode < 112)) {
                     if (this._cursorOffset === 0) {
                     if (this._cursorOffset === 0) {
                         this.text += key;
                         this.text += key;
@@ -4276,13 +4276,13 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GUI;
     var GUI;
     (function (GUI) {
     (function (GUI) {
-        var KeyPropertySet = (function () {
+        var KeyPropertySet = /** @class */ (function () {
             function KeyPropertySet() {
             function KeyPropertySet() {
             }
             }
             return KeyPropertySet;
             return KeyPropertySet;
         }());
         }());
         GUI.KeyPropertySet = KeyPropertySet;
         GUI.KeyPropertySet = KeyPropertySet;
-        var VirtualKeyboard = (function (_super) {
+        var VirtualKeyboard = /** @class */ (function (_super) {
             __extends(VirtualKeyboard, _super);
             __extends(VirtualKeyboard, _super);
             function VirtualKeyboard() {
             function VirtualKeyboard() {
                 var _this = _super !== null && _super.apply(this, arguments) || this;
                 var _this = _super !== null && _super.apply(this, arguments) || this;

+ 54 - 54
dist/preview release/inspector/babylon.inspector.js

@@ -1,6 +1,6 @@
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var Inspector = (function () {
+    var Inspector = /** @class */ (function () {
         /** The inspector is created with the given engine.
         /** The inspector is created with the given engine.
          * If the parameter 'popup' is false, the inspector is created as a right panel on the main window.
          * If the parameter 'popup' is false, the inspector is created as a right panel on the main window.
          * If the parameter 'popup' is true, the inspector is created in another popup.
          * If the parameter 'popup' is true, the inspector is created in another popup.
@@ -783,7 +783,7 @@ var INSPECTOR;
      * Represents a html div element.
      * Represents a html div element.
      * The div is built when an instance of BasicElement is created.
      * The div is built when an instance of BasicElement is created.
      */
      */
-    var BasicElement = (function () {
+    var BasicElement = /** @class */ (function () {
         function BasicElement() {
         function BasicElement() {
             this._div = INSPECTOR.Helpers.CreateDiv();
             this._div = INSPECTOR.Helpers.CreateDiv();
         }
         }
@@ -810,7 +810,7 @@ var INSPECTOR;
 
 
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var Adapter = (function () {
+    var Adapter = /** @class */ (function () {
         function Adapter(obj) {
         function Adapter(obj) {
             this._obj = obj;
             this._obj = obj;
         }
         }
@@ -865,7 +865,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var CameraAdapter = (function (_super) {
+    var CameraAdapter = /** @class */ (function (_super) {
         __extends(CameraAdapter, _super);
         __extends(CameraAdapter, _super);
         function CameraAdapter(obj) {
         function CameraAdapter(obj) {
             return _super.call(this, obj) || this;
             return _super.call(this, obj) || this;
@@ -914,7 +914,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var PhysicsImpostorAdapter = (function (_super) {
+    var PhysicsImpostorAdapter = /** @class */ (function (_super) {
         __extends(PhysicsImpostorAdapter, _super);
         __extends(PhysicsImpostorAdapter, _super);
         function PhysicsImpostorAdapter(obj, viewer) {
         function PhysicsImpostorAdapter(obj, viewer) {
             var _this = _super.call(this, obj) || this;
             var _this = _super.call(this, obj) || this;
@@ -975,7 +975,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var GUIAdapter = (function (_super) {
+    var GUIAdapter = /** @class */ (function (_super) {
         __extends(GUIAdapter, _super);
         __extends(GUIAdapter, _super);
         function GUIAdapter(obj) {
         function GUIAdapter(obj) {
             return _super.call(this, obj) || this;
             return _super.call(this, obj) || this;
@@ -1026,7 +1026,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var SoundAdapter = (function (_super) {
+    var SoundAdapter = /** @class */ (function (_super) {
         __extends(SoundAdapter, _super);
         __extends(SoundAdapter, _super);
         function SoundAdapter(obj) {
         function SoundAdapter(obj) {
             return _super.call(this, obj) || this;
             return _super.call(this, obj) || this;
@@ -1082,7 +1082,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var TextureAdapter = (function (_super) {
+    var TextureAdapter = /** @class */ (function (_super) {
         __extends(TextureAdapter, _super);
         __extends(TextureAdapter, _super);
         function TextureAdapter(obj) {
         function TextureAdapter(obj) {
             return _super.call(this, obj) || this;
             return _super.call(this, obj) || this;
@@ -1128,7 +1128,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var LightAdapter = (function (_super) {
+    var LightAdapter = /** @class */ (function (_super) {
         __extends(LightAdapter, _super);
         __extends(LightAdapter, _super);
         function LightAdapter(obj) {
         function LightAdapter(obj) {
             return _super.call(this, obj) || this;
             return _super.call(this, obj) || this;
@@ -1179,7 +1179,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var MaterialAdapter = (function (_super) {
+    var MaterialAdapter = /** @class */ (function (_super) {
         __extends(MaterialAdapter, _super);
         __extends(MaterialAdapter, _super);
         function MaterialAdapter(obj) {
         function MaterialAdapter(obj) {
             return _super.call(this, obj) || this;
             return _super.call(this, obj) || this;
@@ -1223,7 +1223,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var MeshAdapter = (function (_super) {
+    var MeshAdapter = /** @class */ (function (_super) {
         __extends(MeshAdapter, _super);
         __extends(MeshAdapter, _super);
         function MeshAdapter(obj) {
         function MeshAdapter(obj) {
             return _super.call(this, obj) || this;
             return _super.call(this, obj) || this;
@@ -1313,7 +1313,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var DetailPanel = (function (_super) {
+    var DetailPanel = /** @class */ (function (_super) {
         __extends(DetailPanel, _super);
         __extends(DetailPanel, _super);
         function DetailPanel(dr) {
         function DetailPanel(dr) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -1461,7 +1461,7 @@ var INSPECTOR;
     /**
     /**
      * A property is a link between a data (string) and an object.
      * A property is a link between a data (string) and an object.
      */
      */
-    var Property = (function () {
+    var Property = /** @class */ (function () {
         function Property(prop, obj) {
         function Property(prop, obj) {
             this._property = prop;
             this._property = prop;
             this._obj = obj;
             this._obj = obj;
@@ -1509,7 +1509,7 @@ var INSPECTOR;
 
 
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var PropertyFormatter = (function () {
+    var PropertyFormatter = /** @class */ (function () {
         function PropertyFormatter() {
         function PropertyFormatter() {
         }
         }
         /**
         /**
@@ -1536,7 +1536,7 @@ var INSPECTOR;
      * If this instance has no link to other instances, its type is ALWAYS a simple one (see above).
      * If this instance has no link to other instances, its type is ALWAYS a simple one (see above).
      *
      *
      */
      */
-    var PropertyLine = (function () {
+    var PropertyLine = /** @class */ (function () {
         function PropertyLine(prop, parent, level) {
         function PropertyLine(prop, parent, level) {
             if (level === void 0) { level = 0; }
             if (level === void 0) { level = 0; }
             // If the type is complex, this property will have child to update
             // If the type is complex, this property will have child to update
@@ -1975,7 +1975,7 @@ var INSPECTOR;
     /**
     /**
     * Display a very small div corresponding to the given color
     * Display a very small div corresponding to the given color
     */
     */
-    var ColorElement = (function (_super) {
+    var ColorElement = /** @class */ (function (_super) {
         __extends(ColorElement, _super);
         __extends(ColorElement, _super);
         // The color as hexadecimal string
         // The color as hexadecimal string
         function ColorElement(color) {
         function ColorElement(color) {
@@ -2025,7 +2025,7 @@ var INSPECTOR;
      * Represents a html div element.
      * Represents a html div element.
      * The div is built when an instance of BasicElement is created.
      * The div is built when an instance of BasicElement is created.
      */
      */
-    var ColorPickerElement = (function (_super) {
+    var ColorPickerElement = /** @class */ (function (_super) {
         __extends(ColorPickerElement, _super);
         __extends(ColorPickerElement, _super);
         function ColorPickerElement(color, propertyLine) {
         function ColorPickerElement(color, propertyLine) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -2095,7 +2095,7 @@ var INSPECTOR;
     * Display a very small div. A new canvas is created, with a new Babylon.js scene, containing only the
     * Display a very small div. A new canvas is created, with a new Babylon.js scene, containing only the
     * cube texture in a cube
     * cube texture in a cube
     */
     */
-    var CubeTextureElement = (function (_super) {
+    var CubeTextureElement = /** @class */ (function (_super) {
         __extends(CubeTextureElement, _super);
         __extends(CubeTextureElement, _super);
         /** The texture given as a parameter should be cube. */
         /** The texture given as a parameter should be cube. */
         function CubeTextureElement(tex) {
         function CubeTextureElement(tex) {
@@ -2210,7 +2210,7 @@ var INSPECTOR;
     * Display a very small div. A new canvas is created, with a new Babylon.js scene, containing only the
     * Display a very small div. A new canvas is created, with a new Babylon.js scene, containing only the
     * cube texture in a cube
     * cube texture in a cube
     */
     */
-    var HDRCubeTextureElement = (function (_super) {
+    var HDRCubeTextureElement = /** @class */ (function (_super) {
         __extends(HDRCubeTextureElement, _super);
         __extends(HDRCubeTextureElement, _super);
         /** The texture given as a parameter should be cube. */
         /** The texture given as a parameter should be cube. */
         function HDRCubeTextureElement(tex) {
         function HDRCubeTextureElement(tex) {
@@ -2254,7 +2254,7 @@ var INSPECTOR;
      * A search bar can be used to filter elements in the tree panel.
      * A search bar can be used to filter elements in the tree panel.
      * At each keypress on the input, the treepanel will be filtered.
      * At each keypress on the input, the treepanel will be filtered.
      */
      */
-    var SearchBar = (function (_super) {
+    var SearchBar = /** @class */ (function (_super) {
         __extends(SearchBar, _super);
         __extends(SearchBar, _super);
         function SearchBar(tab) {
         function SearchBar(tab) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -2300,7 +2300,7 @@ var INSPECTOR;
     /**
     /**
     * Display a very small div corresponding to the given texture. On mouse over, display the full image
     * Display a very small div corresponding to the given texture. On mouse over, display the full image
     */
     */
-    var TextureElement = (function (_super) {
+    var TextureElement = /** @class */ (function (_super) {
         __extends(TextureElement, _super);
         __extends(TextureElement, _super);
         function TextureElement(tex) {
         function TextureElement(tex) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -2336,7 +2336,7 @@ var INSPECTOR;
     /**
     /**
      * Creates a tooltip for the parent of the given html element
      * Creates a tooltip for the parent of the given html element
      */
      */
-    var Tooltip = (function () {
+    var Tooltip = /** @class */ (function () {
         function Tooltip(elem, tip, attachTo) {
         function Tooltip(elem, tip, attachTo) {
             var _this = this;
             var _this = this;
             this._elem = elem;
             this._elem = elem;
@@ -2357,7 +2357,7 @@ var INSPECTOR;
 
 
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var Helpers = (function () {
+    var Helpers = /** @class */ (function () {
         function Helpers() {
         function Helpers() {
         }
         }
         /**
         /**
@@ -2544,7 +2544,7 @@ var INSPECTOR;
 
 
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var Scheduler = (function () {
+    var Scheduler = /** @class */ (function () {
         function Scheduler() {
         function Scheduler() {
             /** Is this scheduler in pause ? */
             /** Is this scheduler in pause ? */
             this.pause = false;
             this.pause = false;
@@ -2597,7 +2597,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var Tab = (function (_super) {
+    var Tab = /** @class */ (function (_super) {
         __extends(Tab, _super);
         __extends(Tab, _super);
         function Tab(tabbar, name) {
         function Tab(tabbar, name) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -2676,7 +2676,7 @@ var INSPECTOR;
      * in which properties will be displayed.
      * in which properties will be displayed.
      * Both panels are separated by a resize bar
      * Both panels are separated by a resize bar
      */
      */
-    var PropertyTab = (function (_super) {
+    var PropertyTab = /** @class */ (function (_super) {
         __extends(PropertyTab, _super);
         __extends(PropertyTab, _super);
         function PropertyTab(tabbar, name, insp) {
         function PropertyTab(tabbar, name, insp) {
             var _this = _super.call(this, tabbar, name) || this;
             var _this = _super.call(this, tabbar, name) || this;
@@ -2820,7 +2820,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var CameraTab = (function (_super) {
+    var CameraTab = /** @class */ (function (_super) {
         __extends(CameraTab, _super);
         __extends(CameraTab, _super);
         function CameraTab(tabbar, inspector) {
         function CameraTab(tabbar, inspector) {
             return _super.call(this, tabbar, 'Camera', inspector) || this;
             return _super.call(this, tabbar, 'Camera', inspector) || this;
@@ -2853,7 +2853,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var GUITab = (function (_super) {
+    var GUITab = /** @class */ (function (_super) {
         __extends(GUITab, _super);
         __extends(GUITab, _super);
         function GUITab(tabbar, inspector) {
         function GUITab(tabbar, inspector) {
             return _super.call(this, tabbar, 'GUI', inspector) || this;
             return _super.call(this, tabbar, 'GUI', inspector) || this;
@@ -2908,7 +2908,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var PhysicsTab = (function (_super) {
+    var PhysicsTab = /** @class */ (function (_super) {
         __extends(PhysicsTab, _super);
         __extends(PhysicsTab, _super);
         function PhysicsTab(tabbar, inspector) {
         function PhysicsTab(tabbar, inspector) {
             return _super.call(this, tabbar, 'Physics', inspector) || this;
             return _super.call(this, tabbar, 'Physics', inspector) || this;
@@ -2948,7 +2948,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var SoundTab = (function (_super) {
+    var SoundTab = /** @class */ (function (_super) {
         __extends(SoundTab, _super);
         __extends(SoundTab, _super);
         function SoundTab(tabbar, inspector) {
         function SoundTab(tabbar, inspector) {
             return _super.call(this, tabbar, 'Audio', inspector) || this;
             return _super.call(this, tabbar, 'Audio', inspector) || this;
@@ -2985,7 +2985,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var TextureTab = (function (_super) {
+    var TextureTab = /** @class */ (function (_super) {
         __extends(TextureTab, _super);
         __extends(TextureTab, _super);
         function TextureTab(tabbar, inspector) {
         function TextureTab(tabbar, inspector) {
             var _this = _super.call(this, tabbar, 'Textures') || this;
             var _this = _super.call(this, tabbar, 'Textures') || this;
@@ -3160,7 +3160,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var LightTab = (function (_super) {
+    var LightTab = /** @class */ (function (_super) {
         __extends(LightTab, _super);
         __extends(LightTab, _super);
         function LightTab(tabbar, inspector) {
         function LightTab(tabbar, inspector) {
             return _super.call(this, tabbar, 'Light', inspector) || this;
             return _super.call(this, tabbar, 'Light', inspector) || this;
@@ -3193,7 +3193,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var MaterialTab = (function (_super) {
+    var MaterialTab = /** @class */ (function (_super) {
         __extends(MaterialTab, _super);
         __extends(MaterialTab, _super);
         function MaterialTab(tabbar, inspector) {
         function MaterialTab(tabbar, inspector) {
             return _super.call(this, tabbar, 'Material', inspector) || this;
             return _super.call(this, tabbar, 'Material', inspector) || this;
@@ -3227,7 +3227,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var MeshTab = (function (_super) {
+    var MeshTab = /** @class */ (function (_super) {
         __extends(MeshTab, _super);
         __extends(MeshTab, _super);
         function MeshTab(tabbar, inspector) {
         function MeshTab(tabbar, inspector) {
             return _super.call(this, tabbar, 'Mesh', inspector) || this;
             return _super.call(this, tabbar, 'Mesh', inspector) || this;
@@ -3299,7 +3299,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var SceneTab = (function (_super) {
+    var SceneTab = /** @class */ (function (_super) {
         __extends(SceneTab, _super);
         __extends(SceneTab, _super);
         function SceneTab(tabbar, insp) {
         function SceneTab(tabbar, insp) {
             var _this = _super.call(this, tabbar, 'Scene') || this;
             var _this = _super.call(this, tabbar, 'Scene') || this;
@@ -3486,7 +3486,7 @@ var INSPECTOR;
      * - hook all console.log call and display them in this panel (and in the browser console as well)
      * - hook all console.log call and display them in this panel (and in the browser console as well)
      * - display all Babylon logs (called with Tools.Log...)
      * - display all Babylon logs (called with Tools.Log...)
      */
      */
-    var ConsoleTab = (function (_super) {
+    var ConsoleTab = /** @class */ (function (_super) {
         __extends(ConsoleTab, _super);
         __extends(ConsoleTab, _super);
         function ConsoleTab(tabbar, insp) {
         function ConsoleTab(tabbar, insp) {
             var _this = _super.call(this, tabbar, 'Console') || this;
             var _this = _super.call(this, tabbar, 'Console') || this;
@@ -3620,7 +3620,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var StatsTab = (function (_super) {
+    var StatsTab = /** @class */ (function (_super) {
         __extends(StatsTab, _super);
         __extends(StatsTab, _super);
         function StatsTab(tabbar, insp) {
         function StatsTab(tabbar, insp) {
             var _this = _super.call(this, tabbar, 'Stats') || this;
             var _this = _super.call(this, tabbar, 'Stats') || this;
@@ -3909,7 +3909,7 @@ var INSPECTOR;
      * A tab bar will contains each view the inspector can have : Canvas2D, Meshes...
      * A tab bar will contains each view the inspector can have : Canvas2D, Meshes...
      * The default active tab is the first one of the list.
      * The default active tab is the first one of the list.
      */
      */
-    var TabBar = (function (_super) {
+    var TabBar = /** @class */ (function (_super) {
         __extends(TabBar, _super);
         __extends(TabBar, _super);
         function TabBar(inspector, initialTab) {
         function TabBar(inspector, initialTab) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -4103,7 +4103,7 @@ var INSPECTOR;
 
 
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var AbstractTool = (function () {
+    var AbstractTool = /** @class */ (function () {
         function AbstractTool(icon, parent, inspector, tooltip) {
         function AbstractTool(icon, parent, inspector, tooltip) {
             var _this = this;
             var _this = this;
             this._inspector = inspector;
             this._inspector = inspector;
@@ -4150,7 +4150,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var PauseScheduleTool = (function (_super) {
+    var PauseScheduleTool = /** @class */ (function (_super) {
         __extends(PauseScheduleTool, _super);
         __extends(PauseScheduleTool, _super);
         function PauseScheduleTool(parent, inspector) {
         function PauseScheduleTool(parent, inspector) {
             var _this = _super.call(this, 'fa-pause', parent, inspector, 'Pause the automatic update of properties') || this;
             var _this = _super.call(this, 'fa-pause', parent, inspector, 'Pause the automatic update of properties') || this;
@@ -4186,7 +4186,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var PickTool = (function (_super) {
+    var PickTool = /** @class */ (function (_super) {
         __extends(PickTool, _super);
         __extends(PickTool, _super);
         function PickTool(parent, inspector) {
         function PickTool(parent, inspector) {
             var _this = _super.call(this, 'fa-mouse-pointer', parent, inspector, 'Select a mesh in the scene') || this;
             var _this = _super.call(this, 'fa-mouse-pointer', parent, inspector, 'Select a mesh in the scene') || this;
@@ -4247,7 +4247,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var PopupTool = (function (_super) {
+    var PopupTool = /** @class */ (function (_super) {
         __extends(PopupTool, _super);
         __extends(PopupTool, _super);
         function PopupTool(parent, inspector) {
         function PopupTool(parent, inspector) {
             return _super.call(this, 'fa-external-link', parent, inspector, 'Open the inspector in a popup') || this;
             return _super.call(this, 'fa-external-link', parent, inspector, 'Open the inspector in a popup') || this;
@@ -4273,7 +4273,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var RefreshTool = (function (_super) {
+    var RefreshTool = /** @class */ (function (_super) {
         __extends(RefreshTool, _super);
         __extends(RefreshTool, _super);
         function RefreshTool(parent, inspector) {
         function RefreshTool(parent, inspector) {
             return _super.call(this, 'fa-refresh', parent, inspector, 'Refresh the current tab') || this;
             return _super.call(this, 'fa-refresh', parent, inspector, 'Refresh the current tab') || this;
@@ -4299,7 +4299,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var LabelTool = (function (_super) {
+    var LabelTool = /** @class */ (function (_super) {
         __extends(LabelTool, _super);
         __extends(LabelTool, _super);
         function LabelTool(parent, inspector) {
         function LabelTool(parent, inspector) {
             var _this = _super.call(this, 'fa-tags', parent, inspector, 'Display mesh names on the canvas') || this;
             var _this = _super.call(this, 'fa-tags', parent, inspector, 'Display mesh names on the canvas') || this;
@@ -4416,7 +4416,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var Toolbar = (function (_super) {
+    var Toolbar = /** @class */ (function (_super) {
         __extends(Toolbar, _super);
         __extends(Toolbar, _super);
         function Toolbar(inspector) {
         function Toolbar(inspector) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -4482,7 +4482,7 @@ var INSPECTOR;
     /**
     /**
      * Removes the inspector panel
      * Removes the inspector panel
      */
      */
-    var DisposeTool = (function (_super) {
+    var DisposeTool = /** @class */ (function (_super) {
         __extends(DisposeTool, _super);
         __extends(DisposeTool, _super);
         function DisposeTool(parent, inspector) {
         function DisposeTool(parent, inspector) {
             return _super.call(this, 'fa-times', parent, inspector, 'Close the inspector panel') || this;
             return _super.call(this, 'fa-times', parent, inspector, 'Close the inspector panel') || this;
@@ -4508,7 +4508,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var TreeItem = (function (_super) {
+    var TreeItem = /** @class */ (function (_super) {
         __extends(TreeItem, _super);
         __extends(TreeItem, _super);
         function TreeItem(tab, obj) {
         function TreeItem(tab, obj) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -4665,7 +4665,7 @@ var INSPECTOR;
 
 
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var AbstractTreeTool = (function () {
+    var AbstractTreeTool = /** @class */ (function () {
         function AbstractTreeTool() {
         function AbstractTreeTool() {
             /** Is the tool enabled ? */
             /** Is the tool enabled ? */
             this._on = false;
             this._on = false;
@@ -4710,7 +4710,7 @@ var INSPECTOR;
     /**
     /**
      * Checkbox to display/hide the primitive
      * Checkbox to display/hide the primitive
      */
      */
-    var BoundingBox = (function (_super) {
+    var BoundingBox = /** @class */ (function (_super) {
         __extends(BoundingBox, _super);
         __extends(BoundingBox, _super);
         function BoundingBox(obj) {
         function BoundingBox(obj) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -4757,7 +4757,7 @@ var INSPECTOR;
     /**
     /**
      *
      *
      */
      */
-    var CameraPOV = (function (_super) {
+    var CameraPOV = /** @class */ (function (_super) {
         __extends(CameraPOV, _super);
         __extends(CameraPOV, _super);
         function CameraPOV(camera) {
         function CameraPOV(camera) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -4801,7 +4801,7 @@ var INSPECTOR;
     /**
     /**
      *
      *
      */
      */
-    var SoundInteractions = (function (_super) {
+    var SoundInteractions = /** @class */ (function (_super) {
         __extends(SoundInteractions, _super);
         __extends(SoundInteractions, _super);
         function SoundInteractions(playSound) {
         function SoundInteractions(playSound) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -4849,7 +4849,7 @@ var INSPECTOR;
     /**
     /**
      * Checkbox to display/hide the primitive
      * Checkbox to display/hide the primitive
      */
      */
-    var Checkbox = (function (_super) {
+    var Checkbox = /** @class */ (function (_super) {
         __extends(Checkbox, _super);
         __extends(Checkbox, _super);
         function Checkbox(obj) {
         function Checkbox(obj) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -4899,7 +4899,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var INSPECTOR;
 var INSPECTOR;
 (function (INSPECTOR) {
 (function (INSPECTOR) {
-    var DebugArea = (function (_super) {
+    var DebugArea = /** @class */ (function (_super) {
         __extends(DebugArea, _super);
         __extends(DebugArea, _super);
         function DebugArea(obj) {
         function DebugArea(obj) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -4939,7 +4939,7 @@ var INSPECTOR;
     /**
     /**
      * Checkbox to display/hide the primitive
      * Checkbox to display/hide the primitive
      */
      */
-    var Info = (function (_super) {
+    var Info = /** @class */ (function (_super) {
         __extends(Info, _super);
         __extends(Info, _super);
         function Info(obj) {
         function Info(obj) {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;

+ 9 - 9
dist/preview release/loaders/babylon.glTF1FileLoader.js

@@ -11,7 +11,7 @@ var BABYLON;
         // Sets the useRightHandedSystem flag on the scene.
         // Sets the useRightHandedSystem flag on the scene.
         GLTFLoaderCoordinateSystemMode[GLTFLoaderCoordinateSystemMode["FORCE_RIGHT_HANDED"] = 2] = "FORCE_RIGHT_HANDED";
         GLTFLoaderCoordinateSystemMode[GLTFLoaderCoordinateSystemMode["FORCE_RIGHT_HANDED"] = 2] = "FORCE_RIGHT_HANDED";
     })(GLTFLoaderCoordinateSystemMode = BABYLON.GLTFLoaderCoordinateSystemMode || (BABYLON.GLTFLoaderCoordinateSystemMode = {}));
     })(GLTFLoaderCoordinateSystemMode = BABYLON.GLTFLoaderCoordinateSystemMode || (BABYLON.GLTFLoaderCoordinateSystemMode = {}));
-    var GLTFFileLoader = (function () {
+    var GLTFFileLoader = /** @class */ (function () {
         function GLTFFileLoader() {
         function GLTFFileLoader() {
             // V2 options
             // V2 options
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
@@ -218,7 +218,7 @@ var BABYLON;
         return GLTFFileLoader;
         return GLTFFileLoader;
     }());
     }());
     BABYLON.GLTFFileLoader = GLTFFileLoader;
     BABYLON.GLTFFileLoader = GLTFFileLoader;
-    var BinaryReader = (function () {
+    var BinaryReader = /** @class */ (function () {
         function BinaryReader(arrayBuffer) {
         function BinaryReader(arrayBuffer) {
             this._arrayBuffer = arrayBuffer;
             this._arrayBuffer = arrayBuffer;
             this._dataView = new DataView(arrayBuffer);
             this._dataView = new DataView(arrayBuffer);
@@ -364,7 +364,7 @@ var BABYLON;
             ETokenType[ETokenType["UNKNOWN"] = 2] = "UNKNOWN";
             ETokenType[ETokenType["UNKNOWN"] = 2] = "UNKNOWN";
             ETokenType[ETokenType["END_OF_INPUT"] = 3] = "END_OF_INPUT";
             ETokenType[ETokenType["END_OF_INPUT"] = 3] = "END_OF_INPUT";
         })(ETokenType || (ETokenType = {}));
         })(ETokenType || (ETokenType = {}));
-        var Tokenizer = (function () {
+        var Tokenizer = /** @class */ (function () {
             function Tokenizer(toParse) {
             function Tokenizer(toParse) {
                 this._pos = 0;
                 this._pos = 0;
                 this.isLetterOrDigitPattern = /^[a-zA-Z0-9]+$/;
                 this.isLetterOrDigitPattern = /^[a-zA-Z0-9]+$/;
@@ -1292,7 +1292,7 @@ var BABYLON;
         /**
         /**
         * Implementation of the base glTF spec
         * Implementation of the base glTF spec
         */
         */
-        var GLTFLoaderBase = (function () {
+        var GLTFLoaderBase = /** @class */ (function () {
             function GLTFLoaderBase() {
             function GLTFLoaderBase() {
             }
             }
             GLTFLoaderBase.CreateRuntime = function (parsedData, scene, rootUrl) {
             GLTFLoaderBase.CreateRuntime = function (parsedData, scene, rootUrl) {
@@ -1587,7 +1587,7 @@ var BABYLON;
         /**
         /**
         * glTF V1 Loader
         * glTF V1 Loader
         */
         */
-        var GLTFLoader = (function () {
+        var GLTFLoader = /** @class */ (function () {
             function GLTFLoader() {
             function GLTFLoader() {
             }
             }
             GLTFLoader.RegisterExtension = function (extension) {
             GLTFLoader.RegisterExtension = function (extension) {
@@ -1771,7 +1771,7 @@ var BABYLON;
         /**
         /**
         * Utils functions for GLTF
         * Utils functions for GLTF
         */
         */
-        var GLTFUtils = (function () {
+        var GLTFUtils = /** @class */ (function () {
             function GLTFUtils() {
             function GLTFUtils() {
             }
             }
             /**
             /**
@@ -2021,7 +2021,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GLTF1;
     var GLTF1;
     (function (GLTF1) {
     (function (GLTF1) {
-        var GLTFLoaderExtension = (function () {
+        var GLTFLoaderExtension = /** @class */ (function () {
             function GLTFLoaderExtension(name) {
             function GLTFLoaderExtension(name) {
                 this._name = name;
                 this._name = name;
             }
             }
@@ -2175,7 +2175,7 @@ var BABYLON;
         var BinaryExtensionBufferName = "binary_glTF";
         var BinaryExtensionBufferName = "binary_glTF";
         ;
         ;
         ;
         ;
-        var GLTFBinaryExtension = (function (_super) {
+        var GLTFBinaryExtension = /** @class */ (function (_super) {
             __extends(GLTFBinaryExtension, _super);
             __extends(GLTFBinaryExtension, _super);
             function GLTFBinaryExtension() {
             function GLTFBinaryExtension() {
                 return _super.call(this, "KHR_binary_glTF") || this;
                 return _super.call(this, "KHR_binary_glTF") || this;
@@ -2252,7 +2252,7 @@ var BABYLON;
         ;
         ;
         ;
         ;
         ;
         ;
-        var GLTFMaterialsCommonExtension = (function (_super) {
+        var GLTFMaterialsCommonExtension = /** @class */ (function (_super) {
             __extends(GLTFMaterialsCommonExtension, _super);
             __extends(GLTFMaterialsCommonExtension, _super);
             function GLTFMaterialsCommonExtension() {
             function GLTFMaterialsCommonExtension() {
                 return _super.call(this, "KHR_materials_common") || this;
                 return _super.call(this, "KHR_materials_common") || this;

+ 8 - 8
dist/preview release/loaders/babylon.glTF2FileLoader.js

@@ -11,7 +11,7 @@ var BABYLON;
         // Sets the useRightHandedSystem flag on the scene.
         // Sets the useRightHandedSystem flag on the scene.
         GLTFLoaderCoordinateSystemMode[GLTFLoaderCoordinateSystemMode["FORCE_RIGHT_HANDED"] = 2] = "FORCE_RIGHT_HANDED";
         GLTFLoaderCoordinateSystemMode[GLTFLoaderCoordinateSystemMode["FORCE_RIGHT_HANDED"] = 2] = "FORCE_RIGHT_HANDED";
     })(GLTFLoaderCoordinateSystemMode = BABYLON.GLTFLoaderCoordinateSystemMode || (BABYLON.GLTFLoaderCoordinateSystemMode = {}));
     })(GLTFLoaderCoordinateSystemMode = BABYLON.GLTFLoaderCoordinateSystemMode || (BABYLON.GLTFLoaderCoordinateSystemMode = {}));
-    var GLTFFileLoader = (function () {
+    var GLTFFileLoader = /** @class */ (function () {
         function GLTFFileLoader() {
         function GLTFFileLoader() {
             // V2 options
             // V2 options
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
@@ -218,7 +218,7 @@ var BABYLON;
         return GLTFFileLoader;
         return GLTFFileLoader;
     }());
     }());
     BABYLON.GLTFFileLoader = GLTFFileLoader;
     BABYLON.GLTFFileLoader = GLTFFileLoader;
-    var BinaryReader = (function () {
+    var BinaryReader = /** @class */ (function () {
         function BinaryReader(arrayBuffer) {
         function BinaryReader(arrayBuffer) {
             this._arrayBuffer = arrayBuffer;
             this._arrayBuffer = arrayBuffer;
             this._dataView = new DataView(arrayBuffer);
             this._dataView = new DataView(arrayBuffer);
@@ -309,7 +309,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GLTF2;
     var GLTF2;
     (function (GLTF2) {
     (function (GLTF2) {
-        var GLTFLoaderTracker = (function () {
+        var GLTFLoaderTracker = /** @class */ (function () {
             function GLTFLoaderTracker(onComplete) {
             function GLTFLoaderTracker(onComplete) {
                 this._pendingCount = 0;
                 this._pendingCount = 0;
                 this._callback = onComplete;
                 this._callback = onComplete;
@@ -324,7 +324,7 @@ var BABYLON;
             };
             };
             return GLTFLoaderTracker;
             return GLTFLoaderTracker;
         }());
         }());
-        var GLTFLoader = (function () {
+        var GLTFLoader = /** @class */ (function () {
             function GLTFLoader(parent) {
             function GLTFLoader(parent) {
                 this._renderReady = false;
                 this._renderReady = false;
                 this._disposed = false;
                 this._disposed = false;
@@ -1541,7 +1541,7 @@ var BABYLON;
         /**
         /**
         * Utils functions for GLTF
         * Utils functions for GLTF
         */
         */
-        var GLTFUtils = (function () {
+        var GLTFUtils = /** @class */ (function () {
             function GLTFUtils() {
             function GLTFUtils() {
             }
             }
             /**
             /**
@@ -1639,7 +1639,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GLTF2;
     var GLTF2;
     (function (GLTF2) {
     (function (GLTF2) {
-        var GLTFLoaderExtension = (function () {
+        var GLTFLoaderExtension = /** @class */ (function () {
             function GLTFLoaderExtension() {
             function GLTFLoaderExtension() {
                 this.enabled = true;
                 this.enabled = true;
             }
             }
@@ -1715,7 +1715,7 @@ var BABYLON;
         var Extensions;
         var Extensions;
         (function (Extensions) {
         (function (Extensions) {
             // See https://github.com/sbtron/glTF/tree/MSFT_lod/extensions/Vendor/MSFT_lod for more information about this extension.
             // See https://github.com/sbtron/glTF/tree/MSFT_lod/extensions/Vendor/MSFT_lod for more information about this extension.
-            var MSFTLOD = (function (_super) {
+            var MSFTLOD = /** @class */ (function (_super) {
                 __extends(MSFTLOD, _super);
                 __extends(MSFTLOD, _super);
                 function MSFTLOD() {
                 function MSFTLOD() {
                     return _super !== null && _super.apply(this, arguments) || this;
                     return _super !== null && _super.apply(this, arguments) || this;
@@ -1831,7 +1831,7 @@ var BABYLON;
     (function (GLTF2) {
     (function (GLTF2) {
         var Extensions;
         var Extensions;
         (function (Extensions) {
         (function (Extensions) {
-            var KHRMaterialsPbrSpecularGlossiness = (function (_super) {
+            var KHRMaterialsPbrSpecularGlossiness = /** @class */ (function (_super) {
                 __extends(KHRMaterialsPbrSpecularGlossiness, _super);
                 __extends(KHRMaterialsPbrSpecularGlossiness, _super);
                 function KHRMaterialsPbrSpecularGlossiness() {
                 function KHRMaterialsPbrSpecularGlossiness() {
                     return _super !== null && _super.apply(this, arguments) || this;
                     return _super !== null && _super.apply(this, arguments) || this;

+ 15 - 15
dist/preview release/loaders/babylon.glTFFileLoader.js

@@ -11,7 +11,7 @@ var BABYLON;
         // Sets the useRightHandedSystem flag on the scene.
         // Sets the useRightHandedSystem flag on the scene.
         GLTFLoaderCoordinateSystemMode[GLTFLoaderCoordinateSystemMode["FORCE_RIGHT_HANDED"] = 2] = "FORCE_RIGHT_HANDED";
         GLTFLoaderCoordinateSystemMode[GLTFLoaderCoordinateSystemMode["FORCE_RIGHT_HANDED"] = 2] = "FORCE_RIGHT_HANDED";
     })(GLTFLoaderCoordinateSystemMode = BABYLON.GLTFLoaderCoordinateSystemMode || (BABYLON.GLTFLoaderCoordinateSystemMode = {}));
     })(GLTFLoaderCoordinateSystemMode = BABYLON.GLTFLoaderCoordinateSystemMode || (BABYLON.GLTFLoaderCoordinateSystemMode = {}));
-    var GLTFFileLoader = (function () {
+    var GLTFFileLoader = /** @class */ (function () {
         function GLTFFileLoader() {
         function GLTFFileLoader() {
             // V2 options
             // V2 options
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
@@ -218,7 +218,7 @@ var BABYLON;
         return GLTFFileLoader;
         return GLTFFileLoader;
     }());
     }());
     BABYLON.GLTFFileLoader = GLTFFileLoader;
     BABYLON.GLTFFileLoader = GLTFFileLoader;
-    var BinaryReader = (function () {
+    var BinaryReader = /** @class */ (function () {
         function BinaryReader(arrayBuffer) {
         function BinaryReader(arrayBuffer) {
             this._arrayBuffer = arrayBuffer;
             this._arrayBuffer = arrayBuffer;
             this._dataView = new DataView(arrayBuffer);
             this._dataView = new DataView(arrayBuffer);
@@ -364,7 +364,7 @@ var BABYLON;
             ETokenType[ETokenType["UNKNOWN"] = 2] = "UNKNOWN";
             ETokenType[ETokenType["UNKNOWN"] = 2] = "UNKNOWN";
             ETokenType[ETokenType["END_OF_INPUT"] = 3] = "END_OF_INPUT";
             ETokenType[ETokenType["END_OF_INPUT"] = 3] = "END_OF_INPUT";
         })(ETokenType || (ETokenType = {}));
         })(ETokenType || (ETokenType = {}));
-        var Tokenizer = (function () {
+        var Tokenizer = /** @class */ (function () {
             function Tokenizer(toParse) {
             function Tokenizer(toParse) {
                 this._pos = 0;
                 this._pos = 0;
                 this.isLetterOrDigitPattern = /^[a-zA-Z0-9]+$/;
                 this.isLetterOrDigitPattern = /^[a-zA-Z0-9]+$/;
@@ -1292,7 +1292,7 @@ var BABYLON;
         /**
         /**
         * Implementation of the base glTF spec
         * Implementation of the base glTF spec
         */
         */
-        var GLTFLoaderBase = (function () {
+        var GLTFLoaderBase = /** @class */ (function () {
             function GLTFLoaderBase() {
             function GLTFLoaderBase() {
             }
             }
             GLTFLoaderBase.CreateRuntime = function (parsedData, scene, rootUrl) {
             GLTFLoaderBase.CreateRuntime = function (parsedData, scene, rootUrl) {
@@ -1587,7 +1587,7 @@ var BABYLON;
         /**
         /**
         * glTF V1 Loader
         * glTF V1 Loader
         */
         */
-        var GLTFLoader = (function () {
+        var GLTFLoader = /** @class */ (function () {
             function GLTFLoader() {
             function GLTFLoader() {
             }
             }
             GLTFLoader.RegisterExtension = function (extension) {
             GLTFLoader.RegisterExtension = function (extension) {
@@ -1771,7 +1771,7 @@ var BABYLON;
         /**
         /**
         * Utils functions for GLTF
         * Utils functions for GLTF
         */
         */
-        var GLTFUtils = (function () {
+        var GLTFUtils = /** @class */ (function () {
             function GLTFUtils() {
             function GLTFUtils() {
             }
             }
             /**
             /**
@@ -2021,7 +2021,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GLTF1;
     var GLTF1;
     (function (GLTF1) {
     (function (GLTF1) {
-        var GLTFLoaderExtension = (function () {
+        var GLTFLoaderExtension = /** @class */ (function () {
             function GLTFLoaderExtension(name) {
             function GLTFLoaderExtension(name) {
                 this._name = name;
                 this._name = name;
             }
             }
@@ -2175,7 +2175,7 @@ var BABYLON;
         var BinaryExtensionBufferName = "binary_glTF";
         var BinaryExtensionBufferName = "binary_glTF";
         ;
         ;
         ;
         ;
-        var GLTFBinaryExtension = (function (_super) {
+        var GLTFBinaryExtension = /** @class */ (function (_super) {
             __extends(GLTFBinaryExtension, _super);
             __extends(GLTFBinaryExtension, _super);
             function GLTFBinaryExtension() {
             function GLTFBinaryExtension() {
                 return _super.call(this, "KHR_binary_glTF") || this;
                 return _super.call(this, "KHR_binary_glTF") || this;
@@ -2252,7 +2252,7 @@ var BABYLON;
         ;
         ;
         ;
         ;
         ;
         ;
-        var GLTFMaterialsCommonExtension = (function (_super) {
+        var GLTFMaterialsCommonExtension = /** @class */ (function (_super) {
             __extends(GLTFMaterialsCommonExtension, _super);
             __extends(GLTFMaterialsCommonExtension, _super);
             function GLTFMaterialsCommonExtension() {
             function GLTFMaterialsCommonExtension() {
                 return _super.call(this, "KHR_materials_common") || this;
                 return _super.call(this, "KHR_materials_common") || this;
@@ -2415,7 +2415,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GLTF2;
     var GLTF2;
     (function (GLTF2) {
     (function (GLTF2) {
-        var GLTFLoaderTracker = (function () {
+        var GLTFLoaderTracker = /** @class */ (function () {
             function GLTFLoaderTracker(onComplete) {
             function GLTFLoaderTracker(onComplete) {
                 this._pendingCount = 0;
                 this._pendingCount = 0;
                 this._callback = onComplete;
                 this._callback = onComplete;
@@ -2430,7 +2430,7 @@ var BABYLON;
             };
             };
             return GLTFLoaderTracker;
             return GLTFLoaderTracker;
         }());
         }());
-        var GLTFLoader = (function () {
+        var GLTFLoader = /** @class */ (function () {
             function GLTFLoader(parent) {
             function GLTFLoader(parent) {
                 this._renderReady = false;
                 this._renderReady = false;
                 this._disposed = false;
                 this._disposed = false;
@@ -3647,7 +3647,7 @@ var BABYLON;
         /**
         /**
         * Utils functions for GLTF
         * Utils functions for GLTF
         */
         */
-        var GLTFUtils = (function () {
+        var GLTFUtils = /** @class */ (function () {
             function GLTFUtils() {
             function GLTFUtils() {
             }
             }
             /**
             /**
@@ -3745,7 +3745,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GLTF2;
     var GLTF2;
     (function (GLTF2) {
     (function (GLTF2) {
-        var GLTFLoaderExtension = (function () {
+        var GLTFLoaderExtension = /** @class */ (function () {
             function GLTFLoaderExtension() {
             function GLTFLoaderExtension() {
                 this.enabled = true;
                 this.enabled = true;
             }
             }
@@ -3821,7 +3821,7 @@ var BABYLON;
         var Extensions;
         var Extensions;
         (function (Extensions) {
         (function (Extensions) {
             // See https://github.com/sbtron/glTF/tree/MSFT_lod/extensions/Vendor/MSFT_lod for more information about this extension.
             // See https://github.com/sbtron/glTF/tree/MSFT_lod/extensions/Vendor/MSFT_lod for more information about this extension.
-            var MSFTLOD = (function (_super) {
+            var MSFTLOD = /** @class */ (function (_super) {
                 __extends(MSFTLOD, _super);
                 __extends(MSFTLOD, _super);
                 function MSFTLOD() {
                 function MSFTLOD() {
                     return _super !== null && _super.apply(this, arguments) || this;
                     return _super !== null && _super.apply(this, arguments) || this;
@@ -3937,7 +3937,7 @@ var BABYLON;
     (function (GLTF2) {
     (function (GLTF2) {
         var Extensions;
         var Extensions;
         (function (Extensions) {
         (function (Extensions) {
-            var KHRMaterialsPbrSpecularGlossiness = (function (_super) {
+            var KHRMaterialsPbrSpecularGlossiness = /** @class */ (function (_super) {
                 __extends(KHRMaterialsPbrSpecularGlossiness, _super);
                 __extends(KHRMaterialsPbrSpecularGlossiness, _super);
                 function KHRMaterialsPbrSpecularGlossiness() {
                 function KHRMaterialsPbrSpecularGlossiness() {
                     return _super !== null && _super.apply(this, arguments) || this;
                     return _super !== null && _super.apply(this, arguments) || this;

+ 2 - 2
dist/preview release/loaders/babylon.objFileLoader.js

@@ -4,7 +4,7 @@ var BABYLON;
     /**
     /**
      * Class reading and parsing the MTL file bundled with the obj file.
      * Class reading and parsing the MTL file bundled with the obj file.
      */
      */
-    var MTLFileLoader = (function () {
+    var MTLFileLoader = /** @class */ (function () {
         function MTLFileLoader() {
         function MTLFileLoader() {
             // All material loaded from the mtl will be set here
             // All material loaded from the mtl will be set here
             this.materials = [];
             this.materials = [];
@@ -203,7 +203,7 @@ var BABYLON;
         return MTLFileLoader;
         return MTLFileLoader;
     }());
     }());
     BABYLON.MTLFileLoader = MTLFileLoader;
     BABYLON.MTLFileLoader = MTLFileLoader;
-    var OBJFileLoader = (function () {
+    var OBJFileLoader = /** @class */ (function () {
         function OBJFileLoader() {
         function OBJFileLoader() {
             this.name = "obj";
             this.name = "obj";
             this.extensions = ".obj";
             this.extensions = ".obj";

文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/loaders/babylon.objFileLoader.min.js


+ 1 - 1
dist/preview release/loaders/babylon.stlFileLoader.js

@@ -1,7 +1,7 @@
 /// <reference path="../../../dist/preview release/babylon.d.ts"/>
 /// <reference path="../../../dist/preview release/babylon.d.ts"/>
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var STLFileLoader = (function () {
+    var STLFileLoader = /** @class */ (function () {
         function STLFileLoader() {
         function STLFileLoader() {
             this.solidPattern = /solid (\S*)([\S\s]*)endsolid[ ]*(\S*)/g;
             this.solidPattern = /solid (\S*)([\S\s]*)endsolid[ ]*(\S*)/g;
             this.facetsPattern = /facet([\s\S]*?)endfacet/g;
             this.facetsPattern = /facet([\s\S]*?)endfacet/g;

+ 18 - 18
dist/preview release/loaders/babylonjs.loaders.js

@@ -19,7 +19,7 @@ var __extends = (this && this.__extends) || (function () {
         
         
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var STLFileLoader = (function () {
+    var STLFileLoader = /** @class */ (function () {
         function STLFileLoader() {
         function STLFileLoader() {
             this.solidPattern = /solid (\S*)([\S\s]*)endsolid[ ]*(\S*)/g;
             this.solidPattern = /solid (\S*)([\S\s]*)endsolid[ ]*(\S*)/g;
             this.facetsPattern = /facet([\s\S]*?)endfacet/g;
             this.facetsPattern = /facet([\s\S]*?)endfacet/g;
@@ -187,7 +187,7 @@ var BABYLON;
     /**
     /**
      * Class reading and parsing the MTL file bundled with the obj file.
      * Class reading and parsing the MTL file bundled with the obj file.
      */
      */
-    var MTLFileLoader = (function () {
+    var MTLFileLoader = /** @class */ (function () {
         function MTLFileLoader() {
         function MTLFileLoader() {
             // All material loaded from the mtl will be set here
             // All material loaded from the mtl will be set here
             this.materials = [];
             this.materials = [];
@@ -386,7 +386,7 @@ var BABYLON;
         return MTLFileLoader;
         return MTLFileLoader;
     }());
     }());
     BABYLON.MTLFileLoader = MTLFileLoader;
     BABYLON.MTLFileLoader = MTLFileLoader;
-    var OBJFileLoader = (function () {
+    var OBJFileLoader = /** @class */ (function () {
         function OBJFileLoader() {
         function OBJFileLoader() {
             this.name = "obj";
             this.name = "obj";
             this.extensions = ".obj";
             this.extensions = ".obj";
@@ -982,7 +982,7 @@ var BABYLON;
         // Sets the useRightHandedSystem flag on the scene.
         // Sets the useRightHandedSystem flag on the scene.
         GLTFLoaderCoordinateSystemMode[GLTFLoaderCoordinateSystemMode["FORCE_RIGHT_HANDED"] = 2] = "FORCE_RIGHT_HANDED";
         GLTFLoaderCoordinateSystemMode[GLTFLoaderCoordinateSystemMode["FORCE_RIGHT_HANDED"] = 2] = "FORCE_RIGHT_HANDED";
     })(GLTFLoaderCoordinateSystemMode = BABYLON.GLTFLoaderCoordinateSystemMode || (BABYLON.GLTFLoaderCoordinateSystemMode = {}));
     })(GLTFLoaderCoordinateSystemMode = BABYLON.GLTFLoaderCoordinateSystemMode || (BABYLON.GLTFLoaderCoordinateSystemMode = {}));
-    var GLTFFileLoader = (function () {
+    var GLTFFileLoader = /** @class */ (function () {
         function GLTFFileLoader() {
         function GLTFFileLoader() {
             // V2 options
             // V2 options
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
             this.coordinateSystemMode = GLTFLoaderCoordinateSystemMode.AUTO;
@@ -1189,7 +1189,7 @@ var BABYLON;
         return GLTFFileLoader;
         return GLTFFileLoader;
     }());
     }());
     BABYLON.GLTFFileLoader = GLTFFileLoader;
     BABYLON.GLTFFileLoader = GLTFFileLoader;
-    var BinaryReader = (function () {
+    var BinaryReader = /** @class */ (function () {
         function BinaryReader(arrayBuffer) {
         function BinaryReader(arrayBuffer) {
             this._arrayBuffer = arrayBuffer;
             this._arrayBuffer = arrayBuffer;
             this._dataView = new DataView(arrayBuffer);
             this._dataView = new DataView(arrayBuffer);
@@ -1335,7 +1335,7 @@ var BABYLON;
             ETokenType[ETokenType["UNKNOWN"] = 2] = "UNKNOWN";
             ETokenType[ETokenType["UNKNOWN"] = 2] = "UNKNOWN";
             ETokenType[ETokenType["END_OF_INPUT"] = 3] = "END_OF_INPUT";
             ETokenType[ETokenType["END_OF_INPUT"] = 3] = "END_OF_INPUT";
         })(ETokenType || (ETokenType = {}));
         })(ETokenType || (ETokenType = {}));
-        var Tokenizer = (function () {
+        var Tokenizer = /** @class */ (function () {
             function Tokenizer(toParse) {
             function Tokenizer(toParse) {
                 this._pos = 0;
                 this._pos = 0;
                 this.isLetterOrDigitPattern = /^[a-zA-Z0-9]+$/;
                 this.isLetterOrDigitPattern = /^[a-zA-Z0-9]+$/;
@@ -2263,7 +2263,7 @@ var BABYLON;
         /**
         /**
         * Implementation of the base glTF spec
         * Implementation of the base glTF spec
         */
         */
-        var GLTFLoaderBase = (function () {
+        var GLTFLoaderBase = /** @class */ (function () {
             function GLTFLoaderBase() {
             function GLTFLoaderBase() {
             }
             }
             GLTFLoaderBase.CreateRuntime = function (parsedData, scene, rootUrl) {
             GLTFLoaderBase.CreateRuntime = function (parsedData, scene, rootUrl) {
@@ -2558,7 +2558,7 @@ var BABYLON;
         /**
         /**
         * glTF V1 Loader
         * glTF V1 Loader
         */
         */
-        var GLTFLoader = (function () {
+        var GLTFLoader = /** @class */ (function () {
             function GLTFLoader() {
             function GLTFLoader() {
             }
             }
             GLTFLoader.RegisterExtension = function (extension) {
             GLTFLoader.RegisterExtension = function (extension) {
@@ -2742,7 +2742,7 @@ var BABYLON;
         /**
         /**
         * Utils functions for GLTF
         * Utils functions for GLTF
         */
         */
-        var GLTFUtils = (function () {
+        var GLTFUtils = /** @class */ (function () {
             function GLTFUtils() {
             function GLTFUtils() {
             }
             }
             /**
             /**
@@ -2992,7 +2992,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GLTF1;
     var GLTF1;
     (function (GLTF1) {
     (function (GLTF1) {
-        var GLTFLoaderExtension = (function () {
+        var GLTFLoaderExtension = /** @class */ (function () {
             function GLTFLoaderExtension(name) {
             function GLTFLoaderExtension(name) {
                 this._name = name;
                 this._name = name;
             }
             }
@@ -3137,7 +3137,7 @@ var BABYLON;
         var BinaryExtensionBufferName = "binary_glTF";
         var BinaryExtensionBufferName = "binary_glTF";
         ;
         ;
         ;
         ;
-        var GLTFBinaryExtension = (function (_super) {
+        var GLTFBinaryExtension = /** @class */ (function (_super) {
             __extends(GLTFBinaryExtension, _super);
             __extends(GLTFBinaryExtension, _super);
             function GLTFBinaryExtension() {
             function GLTFBinaryExtension() {
                 return _super.call(this, "KHR_binary_glTF") || this;
                 return _super.call(this, "KHR_binary_glTF") || this;
@@ -3205,7 +3205,7 @@ var BABYLON;
         ;
         ;
         ;
         ;
         ;
         ;
-        var GLTFMaterialsCommonExtension = (function (_super) {
+        var GLTFMaterialsCommonExtension = /** @class */ (function (_super) {
             __extends(GLTFMaterialsCommonExtension, _super);
             __extends(GLTFMaterialsCommonExtension, _super);
             function GLTFMaterialsCommonExtension() {
             function GLTFMaterialsCommonExtension() {
                 return _super.call(this, "KHR_materials_common") || this;
                 return _super.call(this, "KHR_materials_common") || this;
@@ -3368,7 +3368,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GLTF2;
     var GLTF2;
     (function (GLTF2) {
     (function (GLTF2) {
-        var GLTFLoaderTracker = (function () {
+        var GLTFLoaderTracker = /** @class */ (function () {
             function GLTFLoaderTracker(onComplete) {
             function GLTFLoaderTracker(onComplete) {
                 this._pendingCount = 0;
                 this._pendingCount = 0;
                 this._callback = onComplete;
                 this._callback = onComplete;
@@ -3383,7 +3383,7 @@ var BABYLON;
             };
             };
             return GLTFLoaderTracker;
             return GLTFLoaderTracker;
         }());
         }());
-        var GLTFLoader = (function () {
+        var GLTFLoader = /** @class */ (function () {
             function GLTFLoader(parent) {
             function GLTFLoader(parent) {
                 this._renderReady = false;
                 this._renderReady = false;
                 this._disposed = false;
                 this._disposed = false;
@@ -4600,7 +4600,7 @@ var BABYLON;
         /**
         /**
         * Utils functions for GLTF
         * Utils functions for GLTF
         */
         */
-        var GLTFUtils = (function () {
+        var GLTFUtils = /** @class */ (function () {
             function GLTFUtils() {
             function GLTFUtils() {
             }
             }
             /**
             /**
@@ -4698,7 +4698,7 @@ var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     var GLTF2;
     var GLTF2;
     (function (GLTF2) {
     (function (GLTF2) {
-        var GLTFLoaderExtension = (function () {
+        var GLTFLoaderExtension = /** @class */ (function () {
             function GLTFLoaderExtension() {
             function GLTFLoaderExtension() {
                 this.enabled = true;
                 this.enabled = true;
             }
             }
@@ -4765,7 +4765,7 @@ var BABYLON;
         var Extensions;
         var Extensions;
         (function (Extensions) {
         (function (Extensions) {
             // See https://github.com/sbtron/glTF/tree/MSFT_lod/extensions/Vendor/MSFT_lod for more information about this extension.
             // See https://github.com/sbtron/glTF/tree/MSFT_lod/extensions/Vendor/MSFT_lod for more information about this extension.
-            var MSFTLOD = (function (_super) {
+            var MSFTLOD = /** @class */ (function (_super) {
                 __extends(MSFTLOD, _super);
                 __extends(MSFTLOD, _super);
                 function MSFTLOD() {
                 function MSFTLOD() {
                     return _super !== null && _super.apply(this, arguments) || this;
                     return _super !== null && _super.apply(this, arguments) || this;
@@ -4872,7 +4872,7 @@ var BABYLON;
     (function (GLTF2) {
     (function (GLTF2) {
         var Extensions;
         var Extensions;
         (function (Extensions) {
         (function (Extensions) {
-            var KHRMaterialsPbrSpecularGlossiness = (function (_super) {
+            var KHRMaterialsPbrSpecularGlossiness = /** @class */ (function (_super) {
                 __extends(KHRMaterialsPbrSpecularGlossiness, _super);
                 __extends(KHRMaterialsPbrSpecularGlossiness, _super);
                 function KHRMaterialsPbrSpecularGlossiness() {
                 function KHRMaterialsPbrSpecularGlossiness() {
                     return _super !== null && _super.apply(this, arguments) || this;
                     return _super !== null && _super.apply(this, arguments) || this;

文件差异内容过多而无法显示
+ 1 - 1
dist/preview release/loaders/babylonjs.loaders.min.js


+ 2 - 2
dist/preview release/materialsLibrary/babylon.cellMaterial.js

@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 };
 };
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var CellMaterialDefines = (function (_super) {
+    var CellMaterialDefines = /** @class */ (function (_super) {
         __extends(CellMaterialDefines, _super);
         __extends(CellMaterialDefines, _super);
         function CellMaterialDefines() {
         function CellMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -43,7 +43,7 @@ var BABYLON;
         }
         }
         return CellMaterialDefines;
         return CellMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var CellMaterial = (function (_super) {
+    var CellMaterial = /** @class */ (function (_super) {
         __extends(CellMaterial, _super);
         __extends(CellMaterial, _super);
         function CellMaterial(name, scene) {
         function CellMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;

+ 7 - 7
dist/preview release/materialsLibrary/babylon.customMaterial.js

@@ -18,7 +18,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     // old version of standard material updated every 3 months
     // old version of standard material updated every 3 months
-    var StandardMaterialDefines_OldVer = (function (_super) {
+    var StandardMaterialDefines_OldVer = /** @class */ (function (_super) {
         __extends(StandardMaterialDefines_OldVer, _super);
         __extends(StandardMaterialDefines_OldVer, _super);
         function StandardMaterialDefines_OldVer() {
         function StandardMaterialDefines_OldVer() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -111,7 +111,7 @@ var BABYLON;
         return StandardMaterialDefines_OldVer;
         return StandardMaterialDefines_OldVer;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
     BABYLON.StandardMaterialDefines_OldVer = StandardMaterialDefines_OldVer;
     BABYLON.StandardMaterialDefines_OldVer = StandardMaterialDefines_OldVer;
-    var StandardMaterial_OldVer = (function (_super) {
+    var StandardMaterial_OldVer = /** @class */ (function (_super) {
         __extends(StandardMaterial_OldVer, _super);
         __extends(StandardMaterial_OldVer, _super);
         function StandardMaterial_OldVer(name, scene) {
         function StandardMaterial_OldVer(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;
@@ -1382,19 +1382,19 @@ var BABYLON;
         return StandardMaterial_OldVer;
         return StandardMaterial_OldVer;
     }(BABYLON.PushMaterial));
     }(BABYLON.PushMaterial));
     BABYLON.StandardMaterial_OldVer = StandardMaterial_OldVer;
     BABYLON.StandardMaterial_OldVer = StandardMaterial_OldVer;
-    var CustomShaderStructure = (function () {
+    var CustomShaderStructure = /** @class */ (function () {
         function CustomShaderStructure() {
         function CustomShaderStructure() {
         }
         }
         return CustomShaderStructure;
         return CustomShaderStructure;
     }());
     }());
     BABYLON.CustomShaderStructure = CustomShaderStructure;
     BABYLON.CustomShaderStructure = CustomShaderStructure;
-    var ShaderSpecialParts = (function () {
+    var ShaderSpecialParts = /** @class */ (function () {
         function ShaderSpecialParts() {
         function ShaderSpecialParts() {
         }
         }
         return ShaderSpecialParts;
         return ShaderSpecialParts;
     }());
     }());
     BABYLON.ShaderSpecialParts = ShaderSpecialParts;
     BABYLON.ShaderSpecialParts = ShaderSpecialParts;
-    var ShaderForVer3_0 = (function (_super) {
+    var ShaderForVer3_0 = /** @class */ (function (_super) {
         __extends(ShaderForVer3_0, _super);
         __extends(ShaderForVer3_0, _super);
         function ShaderForVer3_0() {
         function ShaderForVer3_0() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -1895,14 +1895,14 @@ vColor=color;\n\
         return ShaderForVer3_0;
         return ShaderForVer3_0;
     }(CustomShaderStructure));
     }(CustomShaderStructure));
     BABYLON.ShaderForVer3_0 = ShaderForVer3_0;
     BABYLON.ShaderForVer3_0 = ShaderForVer3_0;
-    var StandardShaderVersions = (function () {
+    var StandardShaderVersions = /** @class */ (function () {
         function StandardShaderVersions() {
         function StandardShaderVersions() {
         }
         }
         StandardShaderVersions.Ver3_0 = "3.0.0";
         StandardShaderVersions.Ver3_0 = "3.0.0";
         return StandardShaderVersions;
         return StandardShaderVersions;
     }());
     }());
     BABYLON.StandardShaderVersions = StandardShaderVersions;
     BABYLON.StandardShaderVersions = StandardShaderVersions;
-    var CustomMaterial = (function (_super) {
+    var CustomMaterial = /** @class */ (function (_super) {
         __extends(CustomMaterial, _super);
         __extends(CustomMaterial, _super);
         function CustomMaterial(name, scene) {
         function CustomMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;

+ 2 - 2
dist/preview release/materialsLibrary/babylon.fireMaterial.js

@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 };
 };
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var FireMaterialDefines = (function (_super) {
+    var FireMaterialDefines = /** @class */ (function (_super) {
         __extends(FireMaterialDefines, _super);
         __extends(FireMaterialDefines, _super);
         function FireMaterialDefines() {
         function FireMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -38,7 +38,7 @@ var BABYLON;
         }
         }
         return FireMaterialDefines;
         return FireMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var FireMaterial = (function (_super) {
+    var FireMaterial = /** @class */ (function (_super) {
         __extends(FireMaterial, _super);
         __extends(FireMaterial, _super);
         function FireMaterial(name, scene) {
         function FireMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;

+ 2 - 2
dist/preview release/materialsLibrary/babylon.furMaterial.js

@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 };
 };
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var FurMaterialDefines = (function (_super) {
+    var FurMaterialDefines = /** @class */ (function (_super) {
         __extends(FurMaterialDefines, _super);
         __extends(FurMaterialDefines, _super);
         function FurMaterialDefines() {
         function FurMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -42,7 +42,7 @@ var BABYLON;
         }
         }
         return FurMaterialDefines;
         return FurMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var FurMaterial = (function (_super) {
+    var FurMaterial = /** @class */ (function (_super) {
         __extends(FurMaterial, _super);
         __extends(FurMaterial, _super);
         function FurMaterial(name, scene) {
         function FurMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;

+ 2 - 2
dist/preview release/materialsLibrary/babylon.gradientMaterial.js

@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 };
 };
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var GradientMaterialDefines = (function (_super) {
+    var GradientMaterialDefines = /** @class */ (function (_super) {
         __extends(GradientMaterialDefines, _super);
         __extends(GradientMaterialDefines, _super);
         function GradientMaterialDefines() {
         function GradientMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -73,7 +73,7 @@ var BABYLON;
         }
         }
         return GradientMaterialDefines;
         return GradientMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var GradientMaterial = (function (_super) {
+    var GradientMaterial = /** @class */ (function (_super) {
         __extends(GradientMaterial, _super);
         __extends(GradientMaterial, _super);
         function GradientMaterial(name, scene) {
         function GradientMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;

+ 2 - 2
dist/preview release/materialsLibrary/babylon.gridMaterial.js

@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 };
 };
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var GridMaterialDefines = (function (_super) {
+    var GridMaterialDefines = /** @class */ (function (_super) {
         __extends(GridMaterialDefines, _super);
         __extends(GridMaterialDefines, _super);
         function GridMaterialDefines() {
         function GridMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -33,7 +33,7 @@ var BABYLON;
      * The grid materials allows you to wrap any shape with a grid.
      * The grid materials allows you to wrap any shape with a grid.
      * Colors are customizable.
      * Colors are customizable.
      */
      */
-    var GridMaterial = (function (_super) {
+    var GridMaterial = /** @class */ (function (_super) {
         __extends(GridMaterial, _super);
         __extends(GridMaterial, _super);
         /**
         /**
          * constructor
          * constructor

+ 2 - 2
dist/preview release/materialsLibrary/babylon.lavaMaterial.js

@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 };
 };
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var LavaMaterialDefines = (function (_super) {
+    var LavaMaterialDefines = /** @class */ (function (_super) {
         __extends(LavaMaterialDefines, _super);
         __extends(LavaMaterialDefines, _super);
         function LavaMaterialDefines() {
         function LavaMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -73,7 +73,7 @@ var BABYLON;
         }
         }
         return LavaMaterialDefines;
         return LavaMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var LavaMaterial = (function (_super) {
+    var LavaMaterial = /** @class */ (function (_super) {
         __extends(LavaMaterial, _super);
         __extends(LavaMaterial, _super);
         function LavaMaterial(name, scene) {
         function LavaMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;

+ 2 - 2
dist/preview release/materialsLibrary/babylon.legacyPbrMaterial.js

@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 };
 };
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var LegacyPBRMaterialDefines = (function (_super) {
+    var LegacyPBRMaterialDefines = /** @class */ (function (_super) {
         __extends(LegacyPBRMaterialDefines, _super);
         __extends(LegacyPBRMaterialDefines, _super);
         function LegacyPBRMaterialDefines() {
         function LegacyPBRMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -110,7 +110,7 @@ var BABYLON;
      * For more information, please refer to the documentation :
      * For more information, please refer to the documentation :
      * http://doc.babylonjs.com/extensions/Physically_Based_Rendering
      * http://doc.babylonjs.com/extensions/Physically_Based_Rendering
      */
      */
-    var LegacyPBRMaterial = (function (_super) {
+    var LegacyPBRMaterial = /** @class */ (function (_super) {
         __extends(LegacyPBRMaterial, _super);
         __extends(LegacyPBRMaterial, _super);
         /**
         /**
          * Instantiates a new PBRMaterial instance.
          * Instantiates a new PBRMaterial instance.

+ 2 - 2
dist/preview release/materialsLibrary/babylon.normalMaterial.js

@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 };
 };
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var NormalMaterialDefines = (function (_super) {
+    var NormalMaterialDefines = /** @class */ (function (_super) {
         __extends(NormalMaterialDefines, _super);
         __extends(NormalMaterialDefines, _super);
         function NormalMaterialDefines() {
         function NormalMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -73,7 +73,7 @@ var BABYLON;
         }
         }
         return NormalMaterialDefines;
         return NormalMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var NormalMaterial = (function (_super) {
+    var NormalMaterial = /** @class */ (function (_super) {
         __extends(NormalMaterial, _super);
         __extends(NormalMaterial, _super);
         function NormalMaterial(name, scene) {
         function NormalMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;

+ 2 - 2
dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.js

@@ -11,7 +11,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var ShadowOnlyMaterialDefines = (function (_super) {
+    var ShadowOnlyMaterialDefines = /** @class */ (function (_super) {
         __extends(ShadowOnlyMaterialDefines, _super);
         __extends(ShadowOnlyMaterialDefines, _super);
         function ShadowOnlyMaterialDefines() {
         function ShadowOnlyMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -27,7 +27,7 @@ var BABYLON;
         }
         }
         return ShadowOnlyMaterialDefines;
         return ShadowOnlyMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var ShadowOnlyMaterial = (function (_super) {
+    var ShadowOnlyMaterial = /** @class */ (function (_super) {
         __extends(ShadowOnlyMaterial, _super);
         __extends(ShadowOnlyMaterial, _super);
         function ShadowOnlyMaterial(name, scene) {
         function ShadowOnlyMaterial(name, scene) {
             return _super.call(this, name, scene) || this;
             return _super.call(this, name, scene) || this;

+ 2 - 2
dist/preview release/materialsLibrary/babylon.simpleMaterial.js

@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 };
 };
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var SimpleMaterialDefines = (function (_super) {
+    var SimpleMaterialDefines = /** @class */ (function (_super) {
         __extends(SimpleMaterialDefines, _super);
         __extends(SimpleMaterialDefines, _super);
         function SimpleMaterialDefines() {
         function SimpleMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -40,7 +40,7 @@ var BABYLON;
         }
         }
         return SimpleMaterialDefines;
         return SimpleMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var SimpleMaterial = (function (_super) {
+    var SimpleMaterial = /** @class */ (function (_super) {
         __extends(SimpleMaterial, _super);
         __extends(SimpleMaterial, _super);
         function SimpleMaterial(name, scene) {
         function SimpleMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;

+ 2 - 2
dist/preview release/materialsLibrary/babylon.skyMaterial.js

@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 };
 };
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var SkyMaterialDefines = (function (_super) {
+    var SkyMaterialDefines = /** @class */ (function (_super) {
         __extends(SkyMaterialDefines, _super);
         __extends(SkyMaterialDefines, _super);
         function SkyMaterialDefines() {
         function SkyMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -31,7 +31,7 @@ var BABYLON;
         }
         }
         return SkyMaterialDefines;
         return SkyMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var SkyMaterial = (function (_super) {
+    var SkyMaterial = /** @class */ (function (_super) {
         __extends(SkyMaterial, _super);
         __extends(SkyMaterial, _super);
         function SkyMaterial(name, scene) {
         function SkyMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;

+ 2 - 2
dist/preview release/materialsLibrary/babylon.terrainMaterial.js

@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 };
 };
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var TerrainMaterialDefines = (function (_super) {
+    var TerrainMaterialDefines = /** @class */ (function (_super) {
         __extends(TerrainMaterialDefines, _super);
         __extends(TerrainMaterialDefines, _super);
         function TerrainMaterialDefines() {
         function TerrainMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -42,7 +42,7 @@ var BABYLON;
         }
         }
         return TerrainMaterialDefines;
         return TerrainMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var TerrainMaterial = (function (_super) {
+    var TerrainMaterial = /** @class */ (function (_super) {
         __extends(TerrainMaterial, _super);
         __extends(TerrainMaterial, _super);
         function TerrainMaterial(name, scene) {
         function TerrainMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;

+ 2 - 2
dist/preview release/materialsLibrary/babylon.triPlanarMaterial.js

@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 };
 };
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var TriPlanarMaterialDefines = (function (_super) {
+    var TriPlanarMaterialDefines = /** @class */ (function (_super) {
         __extends(TriPlanarMaterialDefines, _super);
         __extends(TriPlanarMaterialDefines, _super);
         function TriPlanarMaterialDefines() {
         function TriPlanarMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -44,7 +44,7 @@ var BABYLON;
         }
         }
         return TriPlanarMaterialDefines;
         return TriPlanarMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var TriPlanarMaterial = (function (_super) {
+    var TriPlanarMaterial = /** @class */ (function (_super) {
         __extends(TriPlanarMaterial, _super);
         __extends(TriPlanarMaterial, _super);
         function TriPlanarMaterial(name, scene) {
         function TriPlanarMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;

+ 2 - 2
dist/preview release/materialsLibrary/babylon.waterMaterial.js

@@ -17,7 +17,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
 };
 };
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var WaterMaterialDefines = (function (_super) {
+    var WaterMaterialDefines = /** @class */ (function (_super) {
         __extends(WaterMaterialDefines, _super);
         __extends(WaterMaterialDefines, _super);
         function WaterMaterialDefines() {
         function WaterMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -46,7 +46,7 @@ var BABYLON;
         }
         }
         return WaterMaterialDefines;
         return WaterMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var WaterMaterial = (function (_super) {
+    var WaterMaterial = /** @class */ (function (_super) {
         __extends(WaterMaterial, _super);
         __extends(WaterMaterial, _super);
         /**
         /**
         * Constructor
         * Constructor

+ 35 - 35
dist/preview release/materialsLibrary/babylonjs.materials.js

@@ -20,7 +20,7 @@ var __extends = (this && this.__extends) || (function () {
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var ShadowOnlyMaterialDefines = (function (_super) {
+    var ShadowOnlyMaterialDefines = /** @class */ (function (_super) {
         __extends(ShadowOnlyMaterialDefines, _super);
         __extends(ShadowOnlyMaterialDefines, _super);
         function ShadowOnlyMaterialDefines() {
         function ShadowOnlyMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -36,7 +36,7 @@ var BABYLON;
         }
         }
         return ShadowOnlyMaterialDefines;
         return ShadowOnlyMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var ShadowOnlyMaterial = (function (_super) {
+    var ShadowOnlyMaterial = /** @class */ (function (_super) {
         __extends(ShadowOnlyMaterial, _super);
         __extends(ShadowOnlyMaterial, _super);
         function ShadowOnlyMaterial(name, scene) {
         function ShadowOnlyMaterial(name, scene) {
             return _super.call(this, name, scene) || this;
             return _super.call(this, name, scene) || this;
@@ -221,7 +221,7 @@ BABYLON.Effect.ShadersStore['shadowOnlyPixelShader'] = "precision highp float;\n
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var GradientMaterialDefines = (function (_super) {
+    var GradientMaterialDefines = /** @class */ (function (_super) {
         __extends(GradientMaterialDefines, _super);
         __extends(GradientMaterialDefines, _super);
         function GradientMaterialDefines() {
         function GradientMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -277,7 +277,7 @@ var BABYLON;
         }
         }
         return GradientMaterialDefines;
         return GradientMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var GradientMaterial = (function (_super) {
+    var GradientMaterial = /** @class */ (function (_super) {
         __extends(GradientMaterial, _super);
         __extends(GradientMaterial, _super);
         function GradientMaterial(name, scene) {
         function GradientMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;
@@ -496,7 +496,7 @@ BABYLON.Effect.ShadersStore['gradientPixelShader'] = "precision highp float;\n\n
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var NormalMaterialDefines = (function (_super) {
+    var NormalMaterialDefines = /** @class */ (function (_super) {
         __extends(NormalMaterialDefines, _super);
         __extends(NormalMaterialDefines, _super);
         function NormalMaterialDefines() {
         function NormalMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -552,7 +552,7 @@ var BABYLON;
         }
         }
         return NormalMaterialDefines;
         return NormalMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var NormalMaterial = (function (_super) {
+    var NormalMaterial = /** @class */ (function (_super) {
         __extends(NormalMaterial, _super);
         __extends(NormalMaterial, _super);
         function NormalMaterial(name, scene) {
         function NormalMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;
@@ -798,7 +798,7 @@ BABYLON.Effect.ShadersStore['normalPixelShader'] = "precision highp float;\n\nun
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var LavaMaterialDefines = (function (_super) {
+    var LavaMaterialDefines = /** @class */ (function (_super) {
         __extends(LavaMaterialDefines, _super);
         __extends(LavaMaterialDefines, _super);
         function LavaMaterialDefines() {
         function LavaMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -854,7 +854,7 @@ var BABYLON;
         }
         }
         return LavaMaterialDefines;
         return LavaMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var LavaMaterial = (function (_super) {
+    var LavaMaterial = /** @class */ (function (_super) {
         __extends(LavaMaterial, _super);
         __extends(LavaMaterial, _super);
         function LavaMaterial(name, scene) {
         function LavaMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;
@@ -1146,7 +1146,7 @@ BABYLON.Effect.ShadersStore['lavaPixelShader'] = "precision highp float;\n\nunif
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var SimpleMaterialDefines = (function (_super) {
+    var SimpleMaterialDefines = /** @class */ (function (_super) {
         __extends(SimpleMaterialDefines, _super);
         __extends(SimpleMaterialDefines, _super);
         function SimpleMaterialDefines() {
         function SimpleMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -1169,7 +1169,7 @@ var BABYLON;
         }
         }
         return SimpleMaterialDefines;
         return SimpleMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var SimpleMaterial = (function (_super) {
+    var SimpleMaterial = /** @class */ (function (_super) {
         __extends(SimpleMaterial, _super);
         __extends(SimpleMaterial, _super);
         function SimpleMaterial(name, scene) {
         function SimpleMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;
@@ -1415,7 +1415,7 @@ BABYLON.Effect.ShadersStore['simplePixelShader'] = "precision highp float;\n\nun
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var WaterMaterialDefines = (function (_super) {
+    var WaterMaterialDefines = /** @class */ (function (_super) {
         __extends(WaterMaterialDefines, _super);
         __extends(WaterMaterialDefines, _super);
         function WaterMaterialDefines() {
         function WaterMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -1444,7 +1444,7 @@ var BABYLON;
         }
         }
         return WaterMaterialDefines;
         return WaterMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var WaterMaterial = (function (_super) {
+    var WaterMaterial = /** @class */ (function (_super) {
         __extends(WaterMaterial, _super);
         __extends(WaterMaterial, _super);
         /**
         /**
         * Constructor
         * Constructor
@@ -2007,7 +2007,7 @@ BABYLON.Effect.ShadersStore['waterPixelShader'] = "#ifdef LOGARITHMICDEPTH\n#ext
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var FireMaterialDefines = (function (_super) {
+    var FireMaterialDefines = /** @class */ (function (_super) {
         __extends(FireMaterialDefines, _super);
         __extends(FireMaterialDefines, _super);
         function FireMaterialDefines() {
         function FireMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -2028,7 +2028,7 @@ var BABYLON;
         }
         }
         return FireMaterialDefines;
         return FireMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var FireMaterial = (function (_super) {
+    var FireMaterial = /** @class */ (function (_super) {
         __extends(FireMaterial, _super);
         __extends(FireMaterial, _super);
         function FireMaterial(name, scene) {
         function FireMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;
@@ -2322,7 +2322,7 @@ BABYLON.Effect.ShadersStore['firePixelShader'] = "precision highp float;\n\nunif
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var FurMaterialDefines = (function (_super) {
+    var FurMaterialDefines = /** @class */ (function (_super) {
         __extends(FurMaterialDefines, _super);
         __extends(FurMaterialDefines, _super);
         function FurMaterialDefines() {
         function FurMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -2347,7 +2347,7 @@ var BABYLON;
         }
         }
         return FurMaterialDefines;
         return FurMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var FurMaterial = (function (_super) {
+    var FurMaterial = /** @class */ (function (_super) {
         __extends(FurMaterial, _super);
         __extends(FurMaterial, _super);
         function FurMaterial(name, scene) {
         function FurMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;
@@ -2778,7 +2778,7 @@ BABYLON.Effect.ShadersStore['furPixelShader'] = "precision highp float;\n\nunifo
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var TerrainMaterialDefines = (function (_super) {
+    var TerrainMaterialDefines = /** @class */ (function (_super) {
         __extends(TerrainMaterialDefines, _super);
         __extends(TerrainMaterialDefines, _super);
         function TerrainMaterialDefines() {
         function TerrainMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -2803,7 +2803,7 @@ var BABYLON;
         }
         }
         return TerrainMaterialDefines;
         return TerrainMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var TerrainMaterial = (function (_super) {
+    var TerrainMaterial = /** @class */ (function (_super) {
         __extends(TerrainMaterial, _super);
         __extends(TerrainMaterial, _super);
         function TerrainMaterial(name, scene) {
         function TerrainMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;
@@ -3162,7 +3162,7 @@ BABYLON.Effect.ShadersStore['terrainPixelShader'] = "precision highp float;\n\nu
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var TriPlanarMaterialDefines = (function (_super) {
+    var TriPlanarMaterialDefines = /** @class */ (function (_super) {
         __extends(TriPlanarMaterialDefines, _super);
         __extends(TriPlanarMaterialDefines, _super);
         function TriPlanarMaterialDefines() {
         function TriPlanarMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -3189,7 +3189,7 @@ var BABYLON;
         }
         }
         return TriPlanarMaterialDefines;
         return TriPlanarMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var TriPlanarMaterial = (function (_super) {
+    var TriPlanarMaterial = /** @class */ (function (_super) {
         __extends(TriPlanarMaterial, _super);
         __extends(TriPlanarMaterial, _super);
         function TriPlanarMaterial(name, scene) {
         function TriPlanarMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;
@@ -3541,7 +3541,7 @@ BABYLON.Effect.ShadersStore['triplanarPixelShader'] = "precision highp float;\n\
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var SkyMaterialDefines = (function (_super) {
+    var SkyMaterialDefines = /** @class */ (function (_super) {
         __extends(SkyMaterialDefines, _super);
         __extends(SkyMaterialDefines, _super);
         function SkyMaterialDefines() {
         function SkyMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -3555,7 +3555,7 @@ var BABYLON;
         }
         }
         return SkyMaterialDefines;
         return SkyMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var SkyMaterial = (function (_super) {
+    var SkyMaterial = /** @class */ (function (_super) {
         __extends(SkyMaterial, _super);
         __extends(SkyMaterial, _super);
         function SkyMaterial(name, scene) {
         function SkyMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;
@@ -3753,7 +3753,7 @@ BABYLON.Effect.ShadersStore['skyPixelShader'] = "precision highp float;\n\nvaryi
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var GridMaterialDefines = (function (_super) {
+    var GridMaterialDefines = /** @class */ (function (_super) {
         __extends(GridMaterialDefines, _super);
         __extends(GridMaterialDefines, _super);
         function GridMaterialDefines() {
         function GridMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -3769,7 +3769,7 @@ var BABYLON;
      * The grid materials allows you to wrap any shape with a grid.
      * The grid materials allows you to wrap any shape with a grid.
      * Colors are customizable.
      * Colors are customizable.
      */
      */
-    var GridMaterial = (function (_super) {
+    var GridMaterial = /** @class */ (function (_super) {
         __extends(GridMaterial, _super);
         __extends(GridMaterial, _super);
         /**
         /**
          * constructor
          * constructor
@@ -3947,7 +3947,7 @@ BABYLON.Effect.ShadersStore['gridPixelShader'] = "#extension GL_OES_standard_der
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
     // old version of standard material updated every 3 months
     // old version of standard material updated every 3 months
-    var StandardMaterialDefines_OldVer = (function (_super) {
+    var StandardMaterialDefines_OldVer = /** @class */ (function (_super) {
         __extends(StandardMaterialDefines_OldVer, _super);
         __extends(StandardMaterialDefines_OldVer, _super);
         function StandardMaterialDefines_OldVer() {
         function StandardMaterialDefines_OldVer() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -4040,7 +4040,7 @@ var BABYLON;
         return StandardMaterialDefines_OldVer;
         return StandardMaterialDefines_OldVer;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
     BABYLON.StandardMaterialDefines_OldVer = StandardMaterialDefines_OldVer;
     BABYLON.StandardMaterialDefines_OldVer = StandardMaterialDefines_OldVer;
-    var StandardMaterial_OldVer = (function (_super) {
+    var StandardMaterial_OldVer = /** @class */ (function (_super) {
         __extends(StandardMaterial_OldVer, _super);
         __extends(StandardMaterial_OldVer, _super);
         function StandardMaterial_OldVer(name, scene) {
         function StandardMaterial_OldVer(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;
@@ -5311,19 +5311,19 @@ var BABYLON;
         return StandardMaterial_OldVer;
         return StandardMaterial_OldVer;
     }(BABYLON.PushMaterial));
     }(BABYLON.PushMaterial));
     BABYLON.StandardMaterial_OldVer = StandardMaterial_OldVer;
     BABYLON.StandardMaterial_OldVer = StandardMaterial_OldVer;
-    var CustomShaderStructure = (function () {
+    var CustomShaderStructure = /** @class */ (function () {
         function CustomShaderStructure() {
         function CustomShaderStructure() {
         }
         }
         return CustomShaderStructure;
         return CustomShaderStructure;
     }());
     }());
     BABYLON.CustomShaderStructure = CustomShaderStructure;
     BABYLON.CustomShaderStructure = CustomShaderStructure;
-    var ShaderSpecialParts = (function () {
+    var ShaderSpecialParts = /** @class */ (function () {
         function ShaderSpecialParts() {
         function ShaderSpecialParts() {
         }
         }
         return ShaderSpecialParts;
         return ShaderSpecialParts;
     }());
     }());
     BABYLON.ShaderSpecialParts = ShaderSpecialParts;
     BABYLON.ShaderSpecialParts = ShaderSpecialParts;
-    var ShaderForVer3_0 = (function (_super) {
+    var ShaderForVer3_0 = /** @class */ (function (_super) {
         __extends(ShaderForVer3_0, _super);
         __extends(ShaderForVer3_0, _super);
         function ShaderForVer3_0() {
         function ShaderForVer3_0() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -5824,14 +5824,14 @@ vColor=color;\n\
         return ShaderForVer3_0;
         return ShaderForVer3_0;
     }(CustomShaderStructure));
     }(CustomShaderStructure));
     BABYLON.ShaderForVer3_0 = ShaderForVer3_0;
     BABYLON.ShaderForVer3_0 = ShaderForVer3_0;
-    var StandardShaderVersions = (function () {
+    var StandardShaderVersions = /** @class */ (function () {
         function StandardShaderVersions() {
         function StandardShaderVersions() {
         }
         }
         StandardShaderVersions.Ver3_0 = "3.0.0";
         StandardShaderVersions.Ver3_0 = "3.0.0";
         return StandardShaderVersions;
         return StandardShaderVersions;
     }());
     }());
     BABYLON.StandardShaderVersions = StandardShaderVersions;
     BABYLON.StandardShaderVersions = StandardShaderVersions;
-    var CustomMaterial = (function (_super) {
+    var CustomMaterial = /** @class */ (function (_super) {
         __extends(CustomMaterial, _super);
         __extends(CustomMaterial, _super);
         function CustomMaterial(name, scene) {
         function CustomMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;
@@ -5991,7 +5991,7 @@ vColor=color;\n\
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var CellMaterialDefines = (function (_super) {
+    var CellMaterialDefines = /** @class */ (function (_super) {
         __extends(CellMaterialDefines, _super);
         __extends(CellMaterialDefines, _super);
         function CellMaterialDefines() {
         function CellMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -6017,7 +6017,7 @@ var BABYLON;
         }
         }
         return CellMaterialDefines;
         return CellMaterialDefines;
     }(BABYLON.MaterialDefines));
     }(BABYLON.MaterialDefines));
-    var CellMaterial = (function (_super) {
+    var CellMaterial = /** @class */ (function (_super) {
         __extends(CellMaterial, _super);
         __extends(CellMaterial, _super);
         function CellMaterial(name, scene) {
         function CellMaterial(name, scene) {
             var _this = _super.call(this, name, scene) || this;
             var _this = _super.call(this, name, scene) || this;
@@ -6269,7 +6269,7 @@ BABYLON.Effect.ShadersStore['cellPixelShader'] = "precision highp float;\n\nunif
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var LegacyPBRMaterialDefines = (function (_super) {
+    var LegacyPBRMaterialDefines = /** @class */ (function (_super) {
         __extends(LegacyPBRMaterialDefines, _super);
         __extends(LegacyPBRMaterialDefines, _super);
         function LegacyPBRMaterialDefines() {
         function LegacyPBRMaterialDefines() {
             var _this = _super.call(this) || this;
             var _this = _super.call(this) || this;
@@ -6362,7 +6362,7 @@ var BABYLON;
      * For more information, please refer to the documentation :
      * For more information, please refer to the documentation :
      * http://doc.babylonjs.com/extensions/Physically_Based_Rendering
      * http://doc.babylonjs.com/extensions/Physically_Based_Rendering
      */
      */
-    var LegacyPBRMaterial = (function (_super) {
+    var LegacyPBRMaterial = /** @class */ (function (_super) {
         __extends(LegacyPBRMaterial, _super);
         __extends(LegacyPBRMaterial, _super);
         /**
         /**
          * Instantiates a new PBRMaterial instance.
          * Instantiates a new PBRMaterial instance.

+ 2 - 2
dist/preview release/postProcessesLibrary/babylon.asciiArtPostProcess.js

@@ -23,7 +23,7 @@ var BABYLON;
      * It basically takes care rendering the font front the given font size to a texture.
      * It basically takes care rendering the font front the given font size to a texture.
      * This is used later on in the postprocess.
      * This is used later on in the postprocess.
      */
      */
-    var AsciiArtFontTexture = (function (_super) {
+    var AsciiArtFontTexture = /** @class */ (function (_super) {
         __extends(AsciiArtFontTexture, _super);
         __extends(AsciiArtFontTexture, _super);
         /**
         /**
          * Create a new instance of the Ascii Art FontTexture class
          * Create a new instance of the Ascii Art FontTexture class
@@ -160,7 +160,7 @@ var BABYLON;
      * Simmply add it to your scene and let the nerd that lives in you have fun.
      * Simmply add it to your scene and let the nerd that lives in you have fun.
      * Example usage: var pp = new AsciiArtPostProcess("myAscii", "20px Monospace", camera);
      * Example usage: var pp = new AsciiArtPostProcess("myAscii", "20px Monospace", camera);
      */
      */
-    var AsciiArtPostProcess = (function (_super) {
+    var AsciiArtPostProcess = /** @class */ (function (_super) {
         __extends(AsciiArtPostProcess, _super);
         __extends(AsciiArtPostProcess, _super);
         /**
         /**
          * Instantiates a new Ascii Art Post Process.
          * Instantiates a new Ascii Art Post Process.

+ 2 - 2
dist/preview release/postProcessesLibrary/babylon.digitalRainPostProcess.js

@@ -23,7 +23,7 @@ var BABYLON;
      * It basically takes care rendering the font front the given font size to a texture.
      * It basically takes care rendering the font front the given font size to a texture.
      * This is used later on in the postprocess.
      * This is used later on in the postprocess.
      */
      */
-    var DigitalRainFontTexture = (function (_super) {
+    var DigitalRainFontTexture = /** @class */ (function (_super) {
         __extends(DigitalRainFontTexture, _super);
         __extends(DigitalRainFontTexture, _super);
         /**
         /**
          * Create a new instance of the Digital Rain FontTexture class
          * Create a new instance of the Digital Rain FontTexture class
@@ -160,7 +160,7 @@ var BABYLON;
      * Simmply add it to your scene and let the nerd that lives in you have fun.
      * Simmply add it to your scene and let the nerd that lives in you have fun.
      * Example usage: var pp = new DigitalRainPostProcess("digitalRain", "20px Monospace", camera);
      * Example usage: var pp = new DigitalRainPostProcess("digitalRain", "20px Monospace", camera);
      */
      */
-    var DigitalRainPostProcess = (function (_super) {
+    var DigitalRainPostProcess = /** @class */ (function (_super) {
         __extends(DigitalRainPostProcess, _super);
         __extends(DigitalRainPostProcess, _super);
         /**
         /**
          * Instantiates a new Digital Rain Post Process.
          * Instantiates a new Digital Rain Post Process.

+ 4 - 4
dist/preview release/postProcessesLibrary/babylonjs.postProcess.js

@@ -27,7 +27,7 @@ var BABYLON;
      * It basically takes care rendering the font front the given font size to a texture.
      * It basically takes care rendering the font front the given font size to a texture.
      * This is used later on in the postprocess.
      * This is used later on in the postprocess.
      */
      */
-    var AsciiArtFontTexture = (function (_super) {
+    var AsciiArtFontTexture = /** @class */ (function (_super) {
         __extends(AsciiArtFontTexture, _super);
         __extends(AsciiArtFontTexture, _super);
         /**
         /**
          * Create a new instance of the Ascii Art FontTexture class
          * Create a new instance of the Ascii Art FontTexture class
@@ -164,7 +164,7 @@ var BABYLON;
      * Simmply add it to your scene and let the nerd that lives in you have fun.
      * Simmply add it to your scene and let the nerd that lives in you have fun.
      * Example usage: var pp = new AsciiArtPostProcess("myAscii", "20px Monospace", camera);
      * Example usage: var pp = new AsciiArtPostProcess("myAscii", "20px Monospace", camera);
      */
      */
-    var AsciiArtPostProcess = (function (_super) {
+    var AsciiArtPostProcess = /** @class */ (function (_super) {
         __extends(AsciiArtPostProcess, _super);
         __extends(AsciiArtPostProcess, _super);
         /**
         /**
          * Instantiates a new Ascii Art Post Process.
          * Instantiates a new Ascii Art Post Process.
@@ -231,7 +231,7 @@ var BABYLON;
      * It basically takes care rendering the font front the given font size to a texture.
      * It basically takes care rendering the font front the given font size to a texture.
      * This is used later on in the postprocess.
      * This is used later on in the postprocess.
      */
      */
-    var DigitalRainFontTexture = (function (_super) {
+    var DigitalRainFontTexture = /** @class */ (function (_super) {
         __extends(DigitalRainFontTexture, _super);
         __extends(DigitalRainFontTexture, _super);
         /**
         /**
          * Create a new instance of the Digital Rain FontTexture class
          * Create a new instance of the Digital Rain FontTexture class
@@ -368,7 +368,7 @@ var BABYLON;
      * Simmply add it to your scene and let the nerd that lives in you have fun.
      * Simmply add it to your scene and let the nerd that lives in you have fun.
      * Example usage: var pp = new DigitalRainPostProcess("digitalRain", "20px Monospace", camera);
      * Example usage: var pp = new DigitalRainPostProcess("digitalRain", "20px Monospace", camera);
      */
      */
-    var DigitalRainPostProcess = (function (_super) {
+    var DigitalRainPostProcess = /** @class */ (function (_super) {
         __extends(DigitalRainPostProcess, _super);
         __extends(DigitalRainPostProcess, _super);
         /**
         /**
          * Instantiates a new Digital Rain Post Process.
          * Instantiates a new Digital Rain Post Process.

+ 1 - 1
dist/preview release/proceduralTexturesLibrary/babylon.brickProceduralTexture.js

@@ -11,7 +11,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var BrickProceduralTexture = (function (_super) {
+    var BrickProceduralTexture = /** @class */ (function (_super) {
         __extends(BrickProceduralTexture, _super);
         __extends(BrickProceduralTexture, _super);
         function BrickProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function BrickProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "brickProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "brickProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;

+ 1 - 1
dist/preview release/proceduralTexturesLibrary/babylon.cloudProceduralTexture.js

@@ -11,7 +11,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var CloudProceduralTexture = (function (_super) {
+    var CloudProceduralTexture = /** @class */ (function (_super) {
         __extends(CloudProceduralTexture, _super);
         __extends(CloudProceduralTexture, _super);
         function CloudProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function CloudProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "cloudProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "cloudProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;

+ 1 - 1
dist/preview release/proceduralTexturesLibrary/babylon.fireProceduralTexture.js

@@ -11,7 +11,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var FireProceduralTexture = (function (_super) {
+    var FireProceduralTexture = /** @class */ (function (_super) {
         __extends(FireProceduralTexture, _super);
         __extends(FireProceduralTexture, _super);
         function FireProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function FireProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "fireProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "fireProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;

+ 1 - 1
dist/preview release/proceduralTexturesLibrary/babylon.grassProceduralTexture.js

@@ -11,7 +11,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var GrassProceduralTexture = (function (_super) {
+    var GrassProceduralTexture = /** @class */ (function (_super) {
         __extends(GrassProceduralTexture, _super);
         __extends(GrassProceduralTexture, _super);
         function GrassProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function GrassProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "grassProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "grassProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;

+ 1 - 1
dist/preview release/proceduralTexturesLibrary/babylon.marbleProceduralTexture.js

@@ -11,7 +11,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var MarbleProceduralTexture = (function (_super) {
+    var MarbleProceduralTexture = /** @class */ (function (_super) {
         __extends(MarbleProceduralTexture, _super);
         __extends(MarbleProceduralTexture, _super);
         function MarbleProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function MarbleProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "marbleProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "marbleProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;

+ 1 - 1
dist/preview release/proceduralTexturesLibrary/babylon.normalMapProceduralTexture.js

@@ -11,7 +11,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var NormalMapProceduralTexture = (function (_super) {
+    var NormalMapProceduralTexture = /** @class */ (function (_super) {
         __extends(NormalMapProceduralTexture, _super);
         __extends(NormalMapProceduralTexture, _super);
         function NormalMapProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function NormalMapProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "normalMapProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "normalMapProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;

+ 1 - 1
dist/preview release/proceduralTexturesLibrary/babylon.perlinNoiseProceduralTexture.js

@@ -11,7 +11,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var PerlinNoiseProceduralTexture = (function (_super) {
+    var PerlinNoiseProceduralTexture = /** @class */ (function (_super) {
         __extends(PerlinNoiseProceduralTexture, _super);
         __extends(PerlinNoiseProceduralTexture, _super);
         function PerlinNoiseProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function PerlinNoiseProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "perlinNoiseProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "perlinNoiseProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;

+ 1 - 1
dist/preview release/proceduralTexturesLibrary/babylon.roadProceduralTexture.js

@@ -11,7 +11,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var RoadProceduralTexture = (function (_super) {
+    var RoadProceduralTexture = /** @class */ (function (_super) {
         __extends(RoadProceduralTexture, _super);
         __extends(RoadProceduralTexture, _super);
         function RoadProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function RoadProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "roadProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "roadProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;

+ 1 - 1
dist/preview release/proceduralTexturesLibrary/babylon.starfieldProceduralTexture.js

@@ -11,7 +11,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var StarfieldProceduralTexture = (function (_super) {
+    var StarfieldProceduralTexture = /** @class */ (function (_super) {
         __extends(StarfieldProceduralTexture, _super);
         __extends(StarfieldProceduralTexture, _super);
         function StarfieldProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function StarfieldProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "starfieldProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "starfieldProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;

+ 1 - 1
dist/preview release/proceduralTexturesLibrary/babylon.woodProceduralTexture.js

@@ -11,7 +11,7 @@ var __extends = (this && this.__extends) || (function () {
 })();
 })();
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var WoodProceduralTexture = (function (_super) {
+    var WoodProceduralTexture = /** @class */ (function (_super) {
         __extends(WoodProceduralTexture, _super);
         __extends(WoodProceduralTexture, _super);
         function WoodProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function WoodProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "woodProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "woodProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;

+ 10 - 10
dist/preview release/proceduralTexturesLibrary/babylonjs.proceduralTextures.js

@@ -20,7 +20,7 @@ var __extends = (this && this.__extends) || (function () {
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var WoodProceduralTexture = (function (_super) {
+    var WoodProceduralTexture = /** @class */ (function (_super) {
         __extends(WoodProceduralTexture, _super);
         __extends(WoodProceduralTexture, _super);
         function WoodProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function WoodProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "woodProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "woodProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
@@ -68,7 +68,7 @@ BABYLON.Effect.ShadersStore['woodProceduralTexturePixelShader'] = "precision hig
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var FireProceduralTexture = (function (_super) {
+    var FireProceduralTexture = /** @class */ (function (_super) {
         __extends(FireProceduralTexture, _super);
         __extends(FireProceduralTexture, _super);
         function FireProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function FireProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "fireProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "fireProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
@@ -211,7 +211,7 @@ BABYLON.Effect.ShadersStore['fireProceduralTexturePixelShader'] = "precision hig
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var CloudProceduralTexture = (function (_super) {
+    var CloudProceduralTexture = /** @class */ (function (_super) {
         __extends(CloudProceduralTexture, _super);
         __extends(CloudProceduralTexture, _super);
         function CloudProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function CloudProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "cloudProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "cloudProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
@@ -259,7 +259,7 @@ BABYLON.Effect.ShadersStore['cloudProceduralTexturePixelShader'] = "precision hi
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var GrassProceduralTexture = (function (_super) {
+    var GrassProceduralTexture = /** @class */ (function (_super) {
         __extends(GrassProceduralTexture, _super);
         __extends(GrassProceduralTexture, _super);
         function GrassProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function GrassProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "grassProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "grassProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
@@ -313,7 +313,7 @@ BABYLON.Effect.ShadersStore['grassProceduralTexturePixelShader'] = "precision hi
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var RoadProceduralTexture = (function (_super) {
+    var RoadProceduralTexture = /** @class */ (function (_super) {
         __extends(RoadProceduralTexture, _super);
         __extends(RoadProceduralTexture, _super);
         function RoadProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function RoadProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "roadProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "roadProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
@@ -348,7 +348,7 @@ BABYLON.Effect.ShadersStore['roadProceduralTexturePixelShader'] = "precision hig
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var BrickProceduralTexture = (function (_super) {
+    var BrickProceduralTexture = /** @class */ (function (_super) {
         __extends(BrickProceduralTexture, _super);
         __extends(BrickProceduralTexture, _super);
         function BrickProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function BrickProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "brickProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "brickProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
@@ -422,7 +422,7 @@ BABYLON.Effect.ShadersStore['brickProceduralTexturePixelShader'] = "precision hi
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var MarbleProceduralTexture = (function (_super) {
+    var MarbleProceduralTexture = /** @class */ (function (_super) {
         __extends(MarbleProceduralTexture, _super);
         __extends(MarbleProceduralTexture, _super);
         function MarbleProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function MarbleProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "marbleProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "marbleProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
@@ -496,7 +496,7 @@ BABYLON.Effect.ShadersStore['marbleProceduralTexturePixelShader'] = "precision h
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var StarfieldProceduralTexture = (function (_super) {
+    var StarfieldProceduralTexture = /** @class */ (function (_super) {
         __extends(StarfieldProceduralTexture, _super);
         __extends(StarfieldProceduralTexture, _super);
         function StarfieldProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function StarfieldProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "starfieldProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "starfieldProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
@@ -661,7 +661,7 @@ BABYLON.Effect.ShadersStore['starfieldProceduralTexturePixelShader'] = "precisio
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var NormalMapProceduralTexture = (function (_super) {
+    var NormalMapProceduralTexture = /** @class */ (function (_super) {
         __extends(NormalMapProceduralTexture, _super);
         __extends(NormalMapProceduralTexture, _super);
         function NormalMapProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function NormalMapProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "normalMapProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "normalMapProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
@@ -704,7 +704,7 @@ BABYLON.Effect.ShadersStore['normalMapProceduralTexturePixelShader'] = "precisio
 
 
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var PerlinNoiseProceduralTexture = (function (_super) {
+    var PerlinNoiseProceduralTexture = /** @class */ (function (_super) {
         __extends(PerlinNoiseProceduralTexture, _super);
         __extends(PerlinNoiseProceduralTexture, _super);
         function PerlinNoiseProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
         function PerlinNoiseProceduralTexture(name, size, scene, fallbackTexture, generateMipMaps) {
             var _this = _super.call(this, name, size, "perlinNoiseProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;
             var _this = _super.call(this, name, size, "perlinNoiseProceduralTexture", scene, fallbackTexture, generateMipMaps) || this;

+ 1 - 1
dist/preview release/serializers/babylon.objSerializer.js

@@ -1,7 +1,7 @@
 /// <reference path="../../../dist/preview release/babylon.d.ts"/>
 /// <reference path="../../../dist/preview release/babylon.d.ts"/>
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var OBJExport = (function () {
+    var OBJExport = /** @class */ (function () {
         function OBJExport() {
         function OBJExport() {
         }
         }
         //Exports the geometrys of a Mesh array in .OBJ file format (text)
         //Exports the geometrys of a Mesh array in .OBJ file format (text)

+ 1 - 1
dist/preview release/serializers/babylonjs.serializers.js

@@ -19,7 +19,7 @@ var __extends = (this && this.__extends) || (function () {
         
         
 var BABYLON;
 var BABYLON;
 (function (BABYLON) {
 (function (BABYLON) {
-    var OBJExport = (function () {
+    var OBJExport = /** @class */ (function () {
         function OBJExport() {
         function OBJExport() {
         }
         }
         //Exports the geometrys of a Mesh array in .OBJ file format (text)
         //Exports the geometrys of a Mesh array in .OBJ file format (text)

+ 31 - 17
src/Cameras/VR/babylon.vrExperienceHelper.ts

@@ -16,7 +16,7 @@ module BABYLON {
         // Are we presenting in the fullscreen fallback?
         // Are we presenting in the fullscreen fallback?
         private _fullscreenVRpresenting = false;
         private _fullscreenVRpresenting = false;
 
 
-        private _canvas: HTMLCanvasElement;
+        private _canvas: Nullable<HTMLCanvasElement>;
         private _webVRCamera: WebVRFreeCamera;
         private _webVRCamera: WebVRFreeCamera;
         private _vrDeviceOrientationCamera: VRDeviceOrientationFreeCamera;
         private _vrDeviceOrientationCamera: VRDeviceOrientationFreeCamera;
         private _deviceOrientationCamera: DeviceOrientationCamera;
         private _deviceOrientationCamera: DeviceOrientationCamera;
@@ -48,7 +48,9 @@ module BABYLON {
             this._scene.activeCamera = this._deviceOrientationCamera;
             this._scene.activeCamera = this._deviceOrientationCamera;
             this._position = this._scene.activeCamera.position;
             this._position = this._scene.activeCamera.position;
             this._canvas = scene.getEngine().getRenderingCanvas();
             this._canvas = scene.getEngine().getRenderingCanvas();
-            this._scene.activeCamera.attachControl(this._canvas);
+            if (this._canvas) {
+                this._scene.activeCamera.attachControl(this._canvas);
+            }
 
 
             this._btnVR = <HTMLButtonElement>document.createElement("BUTTON");
             this._btnVR = <HTMLButtonElement>document.createElement("BUTTON");
             this._btnVR.className = "babylonVRicon";
             this._btnVR.className = "babylonVRicon";
@@ -65,20 +67,24 @@ module BABYLON {
             style.appendChild(document.createTextNode(css));
             style.appendChild(document.createTextNode(css));
             document.getElementsByTagName('head')[0].appendChild(style);  
             document.getElementsByTagName('head')[0].appendChild(style);  
 
 
-            this._btnVR.style.top = this._canvas.offsetTop + this._canvas.offsetHeight - 70 + "px";
-            this._btnVR.style.left = this._canvas.offsetLeft + this._canvas.offsetWidth - 100 + "px";
-            this._btnVR.addEventListener("click", () => {
-                this.enterVR();
-            });
-
-            window.addEventListener("resize", () => {
+            if (this._canvas) {
                 this._btnVR.style.top = this._canvas.offsetTop + this._canvas.offsetHeight - 70 + "px";
                 this._btnVR.style.top = this._canvas.offsetTop + this._canvas.offsetHeight - 70 + "px";
                 this._btnVR.style.left = this._canvas.offsetLeft + this._canvas.offsetWidth - 100 + "px";
                 this._btnVR.style.left = this._canvas.offsetLeft + this._canvas.offsetWidth - 100 + "px";
+                this._btnVR.addEventListener("click", () => {
+                    this.enterVR();
+                });
+
+                window.addEventListener("resize", () => {
+                    if (this._canvas) {
+                        this._btnVR.style.top = this._canvas.offsetTop + this._canvas.offsetHeight - 70 + "px";
+                        this._btnVR.style.left = this._canvas.offsetLeft + this._canvas.offsetWidth - 100 + "px";
+                    }
 
 
-                if (this._fullscreenVRpresenting && this._webVRready) {
-                    this.exitVR();
-                }
-            });
+                    if (this._fullscreenVRpresenting && this._webVRready) {
+                        this.exitVR();
+                    }
+                });
+            }
 
 
             document.addEventListener("fullscreenchange", () => { this._onFullscreenChange() }, false);
             document.addEventListener("fullscreenchange", () => { this._onFullscreenChange() }, false);
             document.addEventListener("mozfullscreenchange", () => { this._onFullscreenChange() }, false);
             document.addEventListener("mozfullscreenchange", () => { this._onFullscreenChange() }, false);
@@ -146,7 +152,7 @@ module BABYLON {
             } else if (document.msIsFullScreen !== undefined) {
             } else if (document.msIsFullScreen !== undefined) {
                 this._fullscreenVRpresenting = document.msIsFullScreen;
                 this._fullscreenVRpresenting = document.msIsFullScreen;
             }
             }
-            if (!this._fullscreenVRpresenting) {
+            if (!this._fullscreenVRpresenting && this._canvas) {
                 this.exitVR();
                 this.exitVR();
                 this._btnVR.style.top = this._canvas.offsetTop + this._canvas.offsetHeight - 70 + "px";
                 this._btnVR.style.top = this._canvas.offsetTop + this._canvas.offsetHeight - 70 + "px";
                 this._btnVR.style.left = this._canvas.offsetLeft + this._canvas.offsetWidth - 100 + "px";
                 this._btnVR.style.left = this._canvas.offsetLeft + this._canvas.offsetWidth - 100 + "px";
@@ -221,7 +227,9 @@ module BABYLON {
                 this.updateButtonVisibility();
                 this.updateButtonVisibility();
             }
             }
             
             
-            this._scene.activeCamera.attachControl(this._canvas);
+            if (this._scene.activeCamera && this._canvas) {
+                this._scene.activeCamera.attachControl(this._canvas);
+            }
         }
         }
 
 
         /**
         /**
@@ -239,7 +247,10 @@ module BABYLON {
             }
             }
             this._deviceOrientationCamera.position = this._position;
             this._deviceOrientationCamera.position = this._position;
             this._scene.activeCamera = this._deviceOrientationCamera;
             this._scene.activeCamera = this._deviceOrientationCamera;
-            this._scene.activeCamera.attachControl(this._canvas);
+
+            if (this._canvas) {
+                this._scene.activeCamera.attachControl(this._canvas);
+            }
 
 
             this.updateButtonVisibility();
             this.updateButtonVisibility();
         }
         }
@@ -250,7 +261,10 @@ module BABYLON {
 
 
         public set position(value: Vector3) {
         public set position(value: Vector3) {
             this._position = value;
             this._position = value;
-            this._scene.activeCamera.position = value;
+
+            if (this._scene.activeCamera) {
+                this._scene.activeCamera.position = value;
+            }
         }
         }
 
 
         public dispose() {
         public dispose() {

+ 9 - 9
src/Cameras/VR/babylon.webVRCamera.ts

@@ -24,7 +24,7 @@ module BABYLON {
         rotationQuaternion: Quaternion;
         rotationQuaternion: Quaternion;
         devicePosition?: Vector3;
         devicePosition?: Vector3;
         deviceRotationQuaternion: Quaternion;
         deviceRotationQuaternion: Quaternion;
-        rawPose: DevicePose;
+        rawPose: Nullable<DevicePose>;
         deviceScaleFactor: number;
         deviceScaleFactor: number;
         updateFromDevice(poseData: DevicePose): void;
         updateFromDevice(poseData: DevicePose): void;
     }
     }
@@ -39,7 +39,7 @@ module BABYLON {
 
 
     export class WebVRFreeCamera extends FreeCamera implements PoseControlled {
     export class WebVRFreeCamera extends FreeCamera implements PoseControlled {
         public _vrDevice: any = null;
         public _vrDevice: any = null;
-        public rawPose: DevicePose = null;
+        public rawPose: Nullable<DevicePose> = null;
         private _onVREnabled: (success: boolean) => void;
         private _onVREnabled: (success: boolean) => void;
         private _specsVersion: string = "1.1";
         private _specsVersion: string = "1.1";
         private _attached: boolean = false;
         private _attached: boolean = false;
@@ -149,18 +149,18 @@ module BABYLON {
             super.dispose();
             super.dispose();
         }
         }
 
 
-        public getControllerByName(name: string): WebVRController {
+        public getControllerByName(name: string): Nullable<WebVRController> {
             for (var gp of this.controllers) {
             for (var gp of this.controllers) {
                 if (gp.hand === name) {
                 if (gp.hand === name) {
                     return gp;
                     return gp;
                 }
                 }
             }
             }
 
 
-            return undefined;
+            return null;
         }
         }
 
 
-        private _leftController: WebVRController;
-        public get leftController(): WebVRController {
+        private _leftController: Nullable<WebVRController>;
+        public get leftController(): Nullable<WebVRController> {
             if (!this._leftController) {
             if (!this._leftController) {
                 this._leftController = this.getControllerByName("left");
                 this._leftController = this.getControllerByName("left");
             }
             }
@@ -168,8 +168,8 @@ module BABYLON {
             return this._leftController;
             return this._leftController;
         };
         };
 
 
-        private _rightController: WebVRController;
-        public get rightController(): WebVRController {
+        private _rightController: Nullable<WebVRController>;
+        public get rightController(): Nullable<WebVRController> {
             if (!this._rightController) {
             if (!this._rightController) {
                 this._rightController = this.getControllerByName("right");
                 this._rightController = this.getControllerByName("right");
             }
             }
@@ -199,7 +199,7 @@ module BABYLON {
         updateFromDevice(poseData: DevicePose) {
         updateFromDevice(poseData: DevicePose) {
             if (poseData && poseData.orientation) {
             if (poseData && poseData.orientation) {
                 this.rawPose = poseData;
                 this.rawPose = poseData;
-                this.deviceRotationQuaternion.copyFromFloats(this.rawPose.orientation[0], this.rawPose.orientation[1], -this.rawPose.orientation[2], -this.rawPose.orientation[3]);
+                this.deviceRotationQuaternion.copyFromFloats(poseData.orientation[0], poseData.orientation[1], -poseData.orientation[2], -poseData.orientation[3]);
 
 
                 if (this.getScene().useRightHandedSystem) {
                 if (this.getScene().useRightHandedSystem) {
                     this.deviceRotationQuaternion.z *= -1;
                     this.deviceRotationQuaternion.z *= -1;

+ 29 - 29
src/Cameras/babylon.arcRotateCamera.ts

@@ -14,7 +14,7 @@ module BABYLON {
 
 
         @serializeAsVector3("target")
         @serializeAsVector3("target")
         protected _target: Vector3;
         protected _target: Vector3;
-        protected _targetHost: AbstractMesh;
+        protected _targetHost: Nullable<AbstractMesh>;
 
 
         public get target(): Vector3 {
         public get target(): Vector3 {
             return this._target;
             return this._target;
@@ -33,10 +33,10 @@ module BABYLON {
         public inertialRadiusOffset = 0;
         public inertialRadiusOffset = 0;
 
 
         @serialize()
         @serialize()
-        public lowerAlphaLimit: number = null;
+        public lowerAlphaLimit: Nullable<number> = null;
 
 
         @serialize()
         @serialize()
-        public upperAlphaLimit: number = null;
+        public upperAlphaLimit: Nullable<number> = null;
 
 
         @serialize()
         @serialize()
         public lowerBetaLimit = 0.01;
         public lowerBetaLimit = 0.01;
@@ -45,10 +45,10 @@ module BABYLON {
         public upperBetaLimit = Math.PI;
         public upperBetaLimit = Math.PI;
 
 
         @serialize()
         @serialize()
-        public lowerRadiusLimit: number = null;
+        public lowerRadiusLimit: Nullable<number> = null;
 
 
         @serialize()
         @serialize()
-        public upperRadiusLimit: number = null;
+        public upperRadiusLimit: Nullable<number> = null;
 
 
         @serialize()
         @serialize()
         public inertialPanningX: number = 0;
         public inertialPanningX: number = 0;
@@ -60,7 +60,7 @@ module BABYLON {
         public pinchToPanMaxDistance: number = 20;
         public pinchToPanMaxDistance: number = 20;
 
 
         @serialize()
         @serialize()
-        public panningDistanceLimit: number = null;
+        public panningDistanceLimit: Nullable<number> = null;
 
 
         @serializeAsVector3()
         @serializeAsVector3()
         public panningOriginTarget: Vector3 = Vector3.Zero();
         public panningOriginTarget: Vector3 = Vector3.Zero();
@@ -74,7 +74,7 @@ module BABYLON {
             if (pointers)
             if (pointers)
                 return pointers.angularSensibilityX;
                 return pointers.angularSensibilityX;
 
 
-            return null;
+            return 0;
         }
         }
 
 
         public set angularSensibilityX(value: number) {
         public set angularSensibilityX(value: number) {
@@ -89,7 +89,7 @@ module BABYLON {
             if (pointers)
             if (pointers)
                 return pointers.angularSensibilityY;
                 return pointers.angularSensibilityY;
             
             
-            return null;
+            return 0;
         }
         }
 
 
         public set angularSensibilityY(value: number) {
         public set angularSensibilityY(value: number) {
@@ -104,7 +104,7 @@ module BABYLON {
             if (pointers)
             if (pointers)
                 return pointers.pinchPrecision;
                 return pointers.pinchPrecision;
 
 
-            return null;
+            return 0;
         }
         }
 
 
         public set pinchPrecision(value: number) {
         public set pinchPrecision(value: number) {
@@ -119,7 +119,7 @@ module BABYLON {
             if (pointers)
             if (pointers)
                 return pointers.pinchDeltaPercentage;
                 return pointers.pinchDeltaPercentage;
 
 
-            return null;
+            return 0;
         }
         }
 
 
         public set pinchDeltaPercentage(value: number) {
         public set pinchDeltaPercentage(value: number) {
@@ -134,7 +134,7 @@ module BABYLON {
             if (pointers)
             if (pointers)
                 return pointers.panningSensibility;
                 return pointers.panningSensibility;
 
 
-            return null;
+            return 0;
         }
         }
 
 
         public set panningSensibility(value: number) {
         public set panningSensibility(value: number) {
@@ -149,7 +149,7 @@ module BABYLON {
             if (keyboard)
             if (keyboard)
                 return keyboard.keysUp;
                 return keyboard.keysUp;
 
 
-            return null;
+            return [];
         }
         }
 
 
         public set keysUp(value: number[]) {
         public set keysUp(value: number[]) {
@@ -163,7 +163,7 @@ module BABYLON {
             if (keyboard)
             if (keyboard)
                 return keyboard.keysDown;
                 return keyboard.keysDown;
 
 
-            return null;
+            return [];
         }
         }
 
 
         public set keysDown(value: number[]) {
         public set keysDown(value: number[]) {
@@ -177,7 +177,7 @@ module BABYLON {
             if (keyboard)
             if (keyboard)
                 return keyboard.keysLeft;
                 return keyboard.keysLeft;
 
 
-            return null;
+            return [];
         }
         }
 
 
         public set keysLeft(value: number[]) {
         public set keysLeft(value: number[]) {
@@ -191,7 +191,7 @@ module BABYLON {
             if (keyboard)
             if (keyboard)
                 return keyboard.keysRight;
                 return keyboard.keysRight;
 
 
-            return null;
+            return [];
         }
         }
 
 
         public set keysRight(value: number[]) {
         public set keysRight(value: number[]) {
@@ -205,7 +205,7 @@ module BABYLON {
             if (mousewheel)
             if (mousewheel)
                 return mousewheel.wheelPrecision;
                 return mousewheel.wheelPrecision;
 
 
-            return null;
+            return 0;
         }
         }
 
 
         public set wheelPrecision(value: number) {
         public set wheelPrecision(value: number) {
@@ -219,7 +219,7 @@ module BABYLON {
             if (mousewheel)
             if (mousewheel)
                 return mousewheel.wheelDeltaPercentage;
                 return mousewheel.wheelDeltaPercentage;
 
 
-            return null;
+            return 0;
         }
         }
 
 
         public set wheelDeltaPercentage(value: number) {
         public set wheelDeltaPercentage(value: number) {
@@ -251,9 +251,9 @@ module BABYLON {
         protected _transformedDirection: Vector3;
         protected _transformedDirection: Vector3;
 
 
         // Behaviors
         // Behaviors
-        private _bouncingBehavior: BouncingBehavior;
+        private _bouncingBehavior: Nullable<BouncingBehavior>;
 
 
-        public get bouncingBehavior(): BouncingBehavior {
+        public get bouncingBehavior(): Nullable<BouncingBehavior> {
             return this._bouncingBehavior;
             return this._bouncingBehavior;
         }
         }
 
 
@@ -269,15 +269,15 @@ module BABYLON {
             if (value) {
             if (value) {
                 this._bouncingBehavior = new BouncingBehavior();
                 this._bouncingBehavior = new BouncingBehavior();
                 this.addBehavior(this._bouncingBehavior);
                 this.addBehavior(this._bouncingBehavior);
-            } else {
+            } else if (this._bouncingBehavior) {
                 this.removeBehavior(this._bouncingBehavior);
                 this.removeBehavior(this._bouncingBehavior);
                 this._bouncingBehavior = null;
                 this._bouncingBehavior = null;
             }
             }
         }
         }
 
 
-        private _framingBehavior: FramingBehavior;
+        private _framingBehavior: Nullable<FramingBehavior>;
 
 
-        public get framingBehavior(): FramingBehavior {
+        public get framingBehavior(): Nullable<FramingBehavior> {
             return this._framingBehavior;
             return this._framingBehavior;
         }        
         }        
 
 
@@ -293,15 +293,15 @@ module BABYLON {
             if (value) {
             if (value) {
                 this._framingBehavior = new FramingBehavior();
                 this._framingBehavior = new FramingBehavior();
                 this.addBehavior(this._framingBehavior);
                 this.addBehavior(this._framingBehavior);
-            } else {
+            } else if (this._framingBehavior) {
                 this.removeBehavior(this._framingBehavior);
                 this.removeBehavior(this._framingBehavior);
                 this._framingBehavior = null;
                 this._framingBehavior = null;
             }
             }
         }        
         }        
 
 
-        private _autoRotationBehavior: AutoRotationBehavior;
+        private _autoRotationBehavior: Nullable<AutoRotationBehavior>;
 
 
-        public get autoRotationBehavior(): AutoRotationBehavior {
+        public get autoRotationBehavior(): Nullable<AutoRotationBehavior> {
             return this._autoRotationBehavior;
             return this._autoRotationBehavior;
         }   
         }   
 
 
@@ -317,7 +317,7 @@ module BABYLON {
             if (value) {
             if (value) {
                 this._autoRotationBehavior = new AutoRotationBehavior();
                 this._autoRotationBehavior = new AutoRotationBehavior();
                 this.addBehavior(this._autoRotationBehavior);
                 this.addBehavior(this._autoRotationBehavior);
-            } else {
+            } else if(this._autoRotationBehavior) {
                 this.removeBehavior(this._autoRotationBehavior);
                 this.removeBehavior(this._autoRotationBehavior);
                 this._autoRotationBehavior = null;
                 this._autoRotationBehavior = null;
             }
             }
@@ -339,7 +339,7 @@ module BABYLON {
         //due to async collision inspection
         //due to async collision inspection
         protected _collisionTriggered: boolean;
         protected _collisionTriggered: boolean;
 
 
-        protected _targetBoundingCenter: Vector3;
+        protected _targetBoundingCenter: Nullable<Vector3>;
 
 
         constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, scene: Scene) {
         constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, scene: Scene) {
             super(name, Vector3.Zero(), scene);
             super(name, Vector3.Zero(), scene);
@@ -685,7 +685,7 @@ module BABYLON {
             return this._viewMatrix;
             return this._viewMatrix;
         }
         }
 
 
-        protected _onCollisionPositionChange = (collisionId: number, newPosition: Vector3, collidedMesh: AbstractMesh = null) => {
+        protected _onCollisionPositionChange = (collisionId: number, newPosition: Vector3, collidedMesh: Nullable<AbstractMesh> = null) => {
 
 
             if (this.getScene().workerCollisions && this.checkCollisions) {
             if (this.getScene().workerCollisions && this.checkCollisions) {
                 newPosition.multiplyInPlace(this._collider.radius);
                 newPosition.multiplyInPlace(this._collider.radius);
@@ -766,7 +766,7 @@ module BABYLON {
          * Override Camera.createRigCamera
          * Override Camera.createRigCamera
          */
          */
         public createRigCamera(name: string, cameraIndex: number): Camera {
         public createRigCamera(name: string, cameraIndex: number): Camera {
-            var alphaShift : number;
+            var alphaShift : number = 0;
             switch (this.cameraRigMode) {
             switch (this.cameraRigMode) {
                 case Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH:
                 case Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH:
                 case Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:
                 case Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:

+ 8 - 6
src/Cameras/babylon.cameraInputsManager.ts

@@ -2,7 +2,7 @@ module BABYLON {
     export var CameraInputTypes = {};
     export var CameraInputTypes = {};
 
 
     export interface ICameraInput<TCamera extends BABYLON.Camera> {
     export interface ICameraInput<TCamera extends BABYLON.Camera> {
-        camera: TCamera;
+        camera: Nullable<TCamera>;
         getClassName(): string;
         getClassName(): string;
         getSimpleName(): string;
         getSimpleName(): string;
         attachControl: (element: HTMLElement, noPreventDefault?: boolean) => void;
         attachControl: (element: HTMLElement, noPreventDefault?: boolean) => void;
@@ -17,7 +17,7 @@ module BABYLON {
 
 
     export class CameraInputsManager<TCamera extends BABYLON.Camera> {
     export class CameraInputsManager<TCamera extends BABYLON.Camera> {
         attached: CameraInputsMap<TCamera>;
         attached: CameraInputsMap<TCamera>;
-        public attachedElement: HTMLElement;
+        public attachedElement: Nullable<HTMLElement>;
         public noPreventDefault: boolean;
         public noPreventDefault: boolean;
         camera: TCamera;
         camera: TCamera;
         checkInputs: () => void;
         checkInputs: () => void;
@@ -53,7 +53,7 @@ module BABYLON {
         public remove(inputToRemove: ICameraInput<TCamera>) {
         public remove(inputToRemove: ICameraInput<TCamera>) {
             for (var cam in this.attached) {
             for (var cam in this.attached) {
                 var input = this.attached[cam];
                 var input = this.attached[cam];
-                if (input === inputToRemove) {
+                if (input === inputToRemove && this.attachedElement) {
                     input.detachControl(this.attachedElement);
                     input.detachControl(this.attachedElement);
                     input.camera = null;
                     input.camera = null;
                     delete this.attached[cam];
                     delete this.attached[cam];
@@ -65,7 +65,7 @@ module BABYLON {
         public removeByType(inputType: string) {
         public removeByType(inputType: string) {
             for (var cam in this.attached) {
             for (var cam in this.attached) {
                 var input = this.attached[cam];
                 var input = this.attached[cam];
-                if (input.getClassName() === inputType) {
+                if (input.getClassName() === inputType && this.attachedElement) {
                     input.detachControl(this.attachedElement);
                     input.detachControl(this.attachedElement);
                     input.camera = null;
                     input.camera = null;
                     delete this.attached[cam];
                     delete this.attached[cam];
@@ -83,10 +83,12 @@ module BABYLON {
         }
         }
 
 
         public attachInput(input: ICameraInput<TCamera>) {
         public attachInput(input: ICameraInput<TCamera>) {
-            input.attachControl(this.attachedElement, this.noPreventDefault);
+            if (this.attachedElement) {
+                input.attachControl(this.attachedElement, this.noPreventDefault);
+            }
         }
         }
 
 
-        public attachElement(element: HTMLElement, noPreventDefault?: boolean) {
+        public attachElement(element: HTMLElement, noPreventDefault: boolean = false) {
             if (this.attachedElement) {
             if (this.attachedElement) {
                 return;
                 return;
             }
             }

+ 16 - 16
src/Cameras/babylon.freeCamera.ts

@@ -12,71 +12,71 @@
         public inputs : FreeCameraInputsManager;
         public inputs : FreeCameraInputsManager;
         
         
         //-- begin properties for backward compatibility for inputs
         //-- begin properties for backward compatibility for inputs
-        public get angularSensibility() {
+        public get angularSensibility(): number {
             var mouse = <FreeCameraMouseInput>this.inputs.attached["mouse"];
             var mouse = <FreeCameraMouseInput>this.inputs.attached["mouse"];
             if (mouse)
             if (mouse)
                 return mouse.angularSensibility;
                 return mouse.angularSensibility;
 
 
-            return null;
+            return 0;
         }
         }
         
         
-        public set angularSensibility(value) {
+        public set angularSensibility(value: number) {
             var mouse = <FreeCameraMouseInput>this.inputs.attached["mouse"];
             var mouse = <FreeCameraMouseInput>this.inputs.attached["mouse"];
             if (mouse)
             if (mouse)
                 mouse.angularSensibility = value;
                 mouse.angularSensibility = value;
         }
         }
         
         
-        public get keysUp() {
+        public get keysUp(): number[] {
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             if (keyboard)
             if (keyboard)
                 return keyboard.keysUp;
                 return keyboard.keysUp;
 
 
-            return null;
+            return [];
         }
         }
         
         
-        public set keysUp(value) {
+        public set keysUp(value: number[]) {
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             if (keyboard)
             if (keyboard)
                 keyboard.keysUp = value;
                 keyboard.keysUp = value;
         }
         }
         
         
-        public get keysDown() {
+        public get keysDown(): number[] {
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             if (keyboard)
             if (keyboard)
                 return keyboard.keysDown;
                 return keyboard.keysDown;
 
 
-            return null;
+            return [];
         }
         }
         
         
-        public set keysDown(value) {
+        public set keysDown(value: number[]) {
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             if (keyboard)
             if (keyboard)
                 keyboard.keysDown = value;
                 keyboard.keysDown = value;
         }
         }
         
         
-        public get keysLeft() {
+        public get keysLeft(): number[] {
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             if (keyboard)
             if (keyboard)
                 return keyboard.keysLeft;
                 return keyboard.keysLeft;
 
 
-            return null;
+            return [];
         }
         }
         
         
-        public set keysLeft(value) {
+        public set keysLeft(value: number[]) {
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             if (keyboard)
             if (keyboard)
                 keyboard.keysLeft = value;
                 keyboard.keysLeft = value;
         }
         }
         
         
-        public get keysRight() {
+        public get keysRight(): number[] {
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             if (keyboard)
             if (keyboard)
                 return keyboard.keysRight;
                 return keyboard.keysRight;
 
 
-            return null;
+            return [];
         }
         }
         
         
-        public set keysRight(value) {
+        public set keysRight(value: number[]) {
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             var keyboard = <FreeCameraKeyboardMoveInput>this.inputs.attached["keyboard"];
             if (keyboard)
             if (keyboard)
                 keyboard.keysRight = value;
                 keyboard.keysRight = value;
@@ -155,7 +155,7 @@
 
 
         }
         }
 
 
-        private _onCollisionPositionChange = (collisionId: number, newPosition: Vector3, collidedMesh: AbstractMesh = null) => {
+        private _onCollisionPositionChange = (collisionId: number, newPosition: Vector3, collidedMesh: Nullable<AbstractMesh> = null) => {
             //TODO move this to the collision coordinator!
             //TODO move this to the collision coordinator!
             if (this.getScene().workerCollisions)
             if (this.getScene().workerCollisions)
                 newPosition.multiplyInPlace(this._collider.radius);
                 newPosition.multiplyInPlace(this._collider.radius);

+ 6 - 6
src/Cameras/babylon.gamepadCamera.ts

@@ -4,29 +4,29 @@ module BABYLON {
     // We're mainly based on the logic defined into the FreeCamera code
     // We're mainly based on the logic defined into the FreeCamera code
     export class GamepadCamera extends UniversalCamera {
     export class GamepadCamera extends UniversalCamera {
         //-- Begin properties for backward compatibility for inputs
         //-- Begin properties for backward compatibility for inputs
-        public get gamepadAngularSensibility() {
+        public get gamepadAngularSensibility(): number {
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             if (gamepad)
             if (gamepad)
                 return gamepad.gamepadAngularSensibility;
                 return gamepad.gamepadAngularSensibility;
 
 
-            return null;
+            return 0;
         }
         }
         
         
-        public set gamepadAngularSensibility(value) {
+        public set gamepadAngularSensibility(value: number) {
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             if (gamepad)
             if (gamepad)
                 gamepad.gamepadAngularSensibility = value;
                 gamepad.gamepadAngularSensibility = value;
         }
         }
         
         
-        public get gamepadMoveSensibility() {
+        public get gamepadMoveSensibility(): number {
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             if (gamepad)
             if (gamepad)
                 return gamepad.gamepadMoveSensibility;
                 return gamepad.gamepadMoveSensibility;
 
 
-            return null;
+            return 0;
         }
         }
         
         
-        public set gamepadMoveSensibility(value) {
+        public set gamepadMoveSensibility(value: number) {
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             if (gamepad)
             if (gamepad)
                 gamepad.gamepadMoveSensibility = value;
                 gamepad.gamepadMoveSensibility = value;

+ 7 - 3
src/Cameras/babylon.targetCamera.ts

@@ -45,7 +45,7 @@ module BABYLON {
             return this.globalPosition.add(direction);
             return this.globalPosition.add(direction);
         }
         }
 
 
-        public _getLockedTargetPosition(): Vector3 {
+        public _getLockedTargetPosition(): Nullable<Vector3> {
             if (!this.lockedTarget) {
             if (!this.lockedTarget) {
                 return null;
                 return null;
             }
             }
@@ -287,7 +287,11 @@ module BABYLON {
                 // Computing target and final matrix
                 // Computing target and final matrix
                 this.position.addToRef(this._transformedReferencePoint, this._currentTarget);
                 this.position.addToRef(this._transformedReferencePoint, this._currentTarget);
             } else {
             } else {
-                this._currentTarget.copyFrom(this._getLockedTargetPosition());
+                let targetPosition = this._getLockedTargetPosition();
+
+                if (targetPosition) {
+                    this._currentTarget.copyFrom(targetPosition);
+                }
             }
             }
 
 
             if (this.getScene().useRightHandedSystem) {
             if (this.getScene().useRightHandedSystem) {
@@ -303,7 +307,7 @@ module BABYLON {
          * @override
          * @override
          * Override Camera.createRigCamera
          * Override Camera.createRigCamera
          */
          */
-        public createRigCamera(name: string, cameraIndex: number): Camera {
+        public createRigCamera(name: string, cameraIndex: number): Nullable<Camera> {
             if (this.cameraRigMode !== Camera.RIG_MODE_NONE) {
             if (this.cameraRigMode !== Camera.RIG_MODE_NONE) {
                 var rigCamera = new TargetCamera(name, this.position.clone(), this.getScene());
                 var rigCamera = new TargetCamera(name, this.position.clone(), this.getScene());
                 if (this.cameraRigMode === Camera.RIG_MODE_VR || this.cameraRigMode === Camera.RIG_MODE_WEBVR) {
                 if (this.cameraRigMode === Camera.RIG_MODE_VR || this.cameraRigMode === Camera.RIG_MODE_WEBVR) {

+ 6 - 6
src/Cameras/babylon.touchCamera.ts

@@ -4,29 +4,29 @@ module BABYLON {
     // We're mainly based on the logic defined into the FreeCamera code
     // We're mainly based on the logic defined into the FreeCamera code
     export class TouchCamera extends FreeCamera {
     export class TouchCamera extends FreeCamera {
         //-- Begin properties for backward compatibility for inputs
         //-- Begin properties for backward compatibility for inputs
-        public get touchAngularSensibility() {
+        public get touchAngularSensibility(): number {
             var touch = <FreeCameraTouchInput>this.inputs.attached["touch"];
             var touch = <FreeCameraTouchInput>this.inputs.attached["touch"];
             if (touch)
             if (touch)
                 return touch.touchAngularSensibility;
                 return touch.touchAngularSensibility;
 
 
-            return null;
+            return 0;
         }
         }
         
         
-        public set touchAngularSensibility(value) {
+        public set touchAngularSensibility(value: number) {
             var touch = <FreeCameraTouchInput>this.inputs.attached["touch"];
             var touch = <FreeCameraTouchInput>this.inputs.attached["touch"];
             if (touch)
             if (touch)
                 touch.touchAngularSensibility = value;
                 touch.touchAngularSensibility = value;
         }
         }
         
         
-        public get touchMoveSensibility() {
+        public get touchMoveSensibility(): number {
             var touch = <FreeCameraTouchInput>this.inputs.attached["touch"];
             var touch = <FreeCameraTouchInput>this.inputs.attached["touch"];
             if (touch)
             if (touch)
                 return touch.touchMoveSensibility;
                 return touch.touchMoveSensibility;
 
 
-            return null;
+            return 0;
         }
         }
         
         
-        public set touchMoveSensibility(value) {
+        public set touchMoveSensibility(value: number) {
             var touch = <FreeCameraTouchInput>this.inputs.attached["touch"];
             var touch = <FreeCameraTouchInput>this.inputs.attached["touch"];
             if (touch)
             if (touch)
                 touch.touchMoveSensibility = value;
                 touch.touchMoveSensibility = value;

+ 6 - 6
src/Cameras/babylon.universalCamera.ts

@@ -4,29 +4,29 @@ module BABYLON {
     // We're mainly based on the logic defined into the FreeCamera code
     // We're mainly based on the logic defined into the FreeCamera code
     export class UniversalCamera extends TouchCamera {
     export class UniversalCamera extends TouchCamera {
         //-- Begin properties for backward compatibility for inputs
         //-- Begin properties for backward compatibility for inputs
-        public get gamepadAngularSensibility() {
+        public get gamepadAngularSensibility(): number {
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             if (gamepad)
             if (gamepad)
                 return gamepad.gamepadAngularSensibility;
                 return gamepad.gamepadAngularSensibility;
 
 
-            return null;                
+            return 0;                
         }
         }
         
         
-        public set gamepadAngularSensibility(value) {
+        public set gamepadAngularSensibility(value: number) {
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             if (gamepad)
             if (gamepad)
                 gamepad.gamepadAngularSensibility = value;
                 gamepad.gamepadAngularSensibility = value;
         }
         }
         
         
-        public get gamepadMoveSensibility() {
+        public get gamepadMoveSensibility(): number {
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             if (gamepad)
             if (gamepad)
                 return gamepad.gamepadMoveSensibility;
                 return gamepad.gamepadMoveSensibility;
 
 
-            return null;
+            return 0;
         }
         }
         
         
-        public set gamepadMoveSensibility(value) {
+        public set gamepadMoveSensibility(value: number) {
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             var gamepad = <FreeCameraGamepadInput>this.inputs.attached["gamepad"];
             if (gamepad)
             if (gamepad)
                 gamepad.gamepadMoveSensibility = value;
                 gamepad.gamepadMoveSensibility = value;

+ 1 - 1
src/Collisions/babylon.collider.ts

@@ -72,7 +72,7 @@
         public initialPosition: Vector3;
         public initialPosition: Vector3;
         public nearestDistance: number;
         public nearestDistance: number;
         public intersectionPoint: Vector3;
         public intersectionPoint: Vector3;
-        public collidedMesh: AbstractMesh;
+        public collidedMesh: Nullable<AbstractMesh>;
 
 
         private _collisionPoint = Vector3.Zero();
         private _collisionPoint = Vector3.Zero();
         private _planeIntersectionPoint = Vector3.Zero();
         private _planeIntersectionPoint = Vector3.Zero();

+ 19 - 10
src/Collisions/babylon.collisionCoordinator.ts

@@ -4,7 +4,7 @@ module BABYLON {
     export var CollisionWorker = "";
     export var CollisionWorker = "";
 
 
     export interface ICollisionCoordinator {
     export interface ICollisionCoordinator {
-        getNewPosition(position: Vector3, displacement: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh?: AbstractMesh) => void, collisionIndex: number): void;
+        getNewPosition(position: Vector3, displacement: Vector3, collider: Collider, maximumRetry: number, excludedMesh: Nullable<AbstractMesh>, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh: Nullable<AbstractMesh>) => void, collisionIndex: number): void;
         init(scene: Scene): void;
         init(scene: Scene): void;
         destroy(): void;
         destroy(): void;
 
 
@@ -21,7 +21,7 @@ module BABYLON {
         id: string;
         id: string;
         name: string;
         name: string;
         uniqueId: number;
         uniqueId: number;
-        geometryId: string;
+        geometryId: Nullable<string>;
         sphereCenter: Array<number>;
         sphereCenter: Array<number>;
         sphereRadius: number;
         sphereRadius: number;
         boxMinimum: Array<number>;
         boxMinimum: Array<number>;
@@ -89,7 +89,7 @@ module BABYLON {
         collisionId: number;
         collisionId: number;
         collider: SerializedColliderToWorker;
         collider: SerializedColliderToWorker;
         maximumRetry: number;
         maximumRetry: number;
-        excludedMeshUniqueId?: number;
+        excludedMeshUniqueId: Nullable<number>;
     }
     }
 
 
     export interface UpdatePayload {
     export interface UpdatePayload {
@@ -111,7 +111,7 @@ module BABYLON {
         private _scaledPosition = Vector3.Zero();
         private _scaledPosition = Vector3.Zero();
         private _scaledVelocity = Vector3.Zero();
         private _scaledVelocity = Vector3.Zero();
 
 
-        private _collisionsCallbackArray: Array<(collisionIndex: number, newPosition: Vector3, collidedMesh?: AbstractMesh) => void>;
+        private _collisionsCallbackArray: Array<Nullable<(collisionIndex: number, newPosition: Vector3, collidedMesh: Nullable<AbstractMesh>) => void>>;
 
 
         private _init: boolean;
         private _init: boolean;
         private _runningUpdated: number;
         private _runningUpdated: number;
@@ -154,7 +154,7 @@ module BABYLON {
                 });
                 });
             }
             }
 
 
-            var geometryId: string = null;
+            var geometryId: Nullable<string> = null;
             if (mesh instanceof Mesh) {
             if (mesh instanceof Mesh) {
                 geometryId = (<Mesh>mesh).geometry ? (<Mesh>mesh).geometry.id : null;
                 geometryId = (<Mesh>mesh).geometry ? (<Mesh>mesh).geometry.id : null;
             } else if (mesh instanceof InstancedMesh) {
             } else if (mesh instanceof InstancedMesh) {
@@ -186,7 +186,7 @@ module BABYLON {
             }
             }
         }
         }
 
 
-        public getNewPosition(position: Vector3, displacement: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh?: AbstractMesh) => void, collisionIndex: number): void {
+        public getNewPosition(position: Vector3, displacement: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh: Nullable<AbstractMesh>) => void, collisionIndex: number): void {
             if (!this._init) return;
             if (!this._init) return;
             if (this._collisionsCallbackArray[collisionIndex] || this._collisionsCallbackArray[collisionIndex + 100000]) return;
             if (this._collisionsCallbackArray[collisionIndex] || this._collisionsCallbackArray[collisionIndex + 100000]) return;
 
 
@@ -330,9 +330,18 @@ module BABYLON {
                     var returnPayload: CollisionReplyPayload = returnData.payload;
                     var returnPayload: CollisionReplyPayload = returnData.payload;
                     if (!this._collisionsCallbackArray[returnPayload.collisionId]) return;
                     if (!this._collisionsCallbackArray[returnPayload.collisionId]) return;
 
 
-                    this._collisionsCallbackArray[returnPayload.collisionId](returnPayload.collisionId, Vector3.FromArray(returnPayload.newPosition), this._scene.getMeshByUniqueID(returnPayload.collidedMeshUniqueId));
+                    let callback = this._collisionsCallbackArray[returnPayload.collisionId];
+
+                    if (callback) {
+                        let mesh = this._scene.getMeshByUniqueID(returnPayload.collidedMeshUniqueId);
+
+                        if (mesh) {
+                            callback(returnPayload.collisionId, Vector3.FromArray(returnPayload.newPosition), mesh);
+                        }
+                    }
+                    
                     //cleanup
                     //cleanup
-                    this._collisionsCallbackArray[returnPayload.collisionId] = undefined;
+                    this._collisionsCallbackArray[returnPayload.collisionId] = null;
                     break;
                     break;
             }
             }
         }
         }
@@ -347,7 +356,7 @@ module BABYLON {
 
 
         private _finalPosition = Vector3.Zero();
         private _finalPosition = Vector3.Zero();
 
 
-        public getNewPosition(position: Vector3, displacement: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh?: AbstractMesh) => void, collisionIndex: number): void {
+        public getNewPosition(position: Vector3, displacement: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh: Nullable<AbstractMesh>) => void, collisionIndex: number): void {
             position.divideToRef(collider.radius, this._scaledPosition);
             position.divideToRef(collider.radius, this._scaledPosition);
             displacement.divideToRef(collider.radius, this._scaledVelocity);
             displacement.divideToRef(collider.radius, this._scaledVelocity);
             collider.collidedMesh = null;
             collider.collidedMesh = null;
@@ -377,7 +386,7 @@ module BABYLON {
         public onGeometryUpdated(geometry: Geometry) { }
         public onGeometryUpdated(geometry: Geometry) { }
         public onGeometryDeleted(geometry: Geometry) { }
         public onGeometryDeleted(geometry: Geometry) { }
 
 
-        private _collideWithWorld(position: Vector3, velocity: Vector3, collider: Collider, maximumRetry: number, finalPosition: Vector3, excludedMesh: AbstractMesh = null): void {
+        private _collideWithWorld(position: Vector3, velocity: Vector3, collider: Collider, maximumRetry: number, finalPosition: Vector3, excludedMesh: Nullable<AbstractMesh> = null): void {
             var closeDistance = Engine.CollisionsEpsilon * 10.0;
             var closeDistance = Engine.CollisionsEpsilon * 10.0;
 
 
             if (collider.retry >= maximumRetry) {
             if (collider.retry >= maximumRetry) {

+ 4 - 4
src/Collisions/babylon.collisionWorker.ts

@@ -51,7 +51,7 @@ module BABYLON {
 
 
         }
         }
 
 
-        public collideWithWorld(position: Vector3, velocity: Vector3, maximumRetry: number, excludedMeshUniqueId?: number) {
+        public collideWithWorld(position: Vector3, velocity: Vector3, maximumRetry: number, excludedMeshUniqueId: Nullable<number>) {
 
 
             //TODO CollisionsEpsilon should be defined here and not in the engine.
             //TODO CollisionsEpsilon should be defined here and not in the engine.
             const closeDistance = 0.01; //is initializing here correct? A quick look - looks like it is fine.
             const closeDistance = 0.01; //is initializing here correct? A quick look - looks like it is fine.
@@ -192,7 +192,7 @@ module BABYLON {
                 error: WorkerReplyType.SUCCESS,
                 error: WorkerReplyType.SUCCESS,
                 taskType: WorkerTaskType.INIT
                 taskType: WorkerTaskType.INIT
             }
             }
-            postMessage(reply, undefined);
+            postMessage(reply, "");
         }
         }
 
 
         public onUpdate(payload: UpdatePayload) {
         public onUpdate(payload: UpdatePayload) {
@@ -226,7 +226,7 @@ module BABYLON {
             }
             }
 
 
 
 
-            postMessage(replay, undefined);
+            postMessage(replay, "");
         }
         }
 
 
         public onCollision(payload: CollidePayload) {
         public onCollision(payload: CollidePayload) {
@@ -247,7 +247,7 @@ module BABYLON {
                 taskType: WorkerTaskType.COLLIDE,
                 taskType: WorkerTaskType.COLLIDE,
                 payload: replyPayload
                 payload: replyPayload
             }
             }
-            postMessage(reply, undefined);
+            postMessage(reply, "");
         }
         }
     }
     }
 
 

+ 5 - 5
src/Collisions/babylon.pickingInfo.ts

@@ -10,16 +10,16 @@
     export class PickingInfo {
     export class PickingInfo {
         public hit = false;
         public hit = false;
         public distance = 0;
         public distance = 0;
-        public pickedPoint: Vector3 = null;
-        public pickedMesh: AbstractMesh = null;
+        public pickedPoint: Nullable<Vector3> = null;
+        public pickedMesh: Nullable<AbstractMesh> = null;
         public bu = 0;
         public bu = 0;
         public bv = 0;
         public bv = 0;
         public faceId = -1;
         public faceId = -1;
         public subMeshId = 0;
         public subMeshId = 0;
-        public pickedSprite: Sprite = null;
+        public pickedSprite: Nullable<Sprite> = null;
 
 
         // Methods
         // Methods
-        public getNormal(useWorldCoordinates = false, useVerticesNormals = true): Vector3 {
+        public getNormal(useWorldCoordinates = false, useVerticesNormals = true): Nullable<Vector3> {
             if (!this.pickedMesh || !this.pickedMesh.isVerticesDataPresent(VertexBuffer.NormalKind)) {
             if (!this.pickedMesh || !this.pickedMesh.isVerticesDataPresent(VertexBuffer.NormalKind)) {
                 return null;
                 return null;
             }
             }
@@ -59,7 +59,7 @@
             return BABYLON.Vector3.Normalize(result);
             return BABYLON.Vector3.Normalize(result);
         }
         }
 
 
-        public getTextureCoordinates(): Vector2 {
+        public getTextureCoordinates(): Nullable<Vector2> {
             if (!this.pickedMesh || !this.pickedMesh.isVerticesDataPresent(VertexBuffer.UVKind)) {
             if (!this.pickedMesh || !this.pickedMesh.isVerticesDataPresent(VertexBuffer.UVKind)) {
                 return null;
                 return null;
             }
             }

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

@@ -129,7 +129,7 @@
             return temp <= rr;
             return temp <= rr;
         }
         }
 
 
-        public intersectsTriangle(vertex0: Vector3, vertex1: Vector3, vertex2: Vector3): IntersectionInfo {
+        public intersectsTriangle(vertex0: Vector3, vertex1: Vector3, vertex2: Vector3): Nullable<IntersectionInfo> {
             if (!this._edge1) {
             if (!this._edge1) {
                 this._edge1 = Vector3.Zero();
                 this._edge1 = Vector3.Zero();
                 this._edge2 = Vector3.Zero();
                 this._edge2 = Vector3.Zero();
@@ -174,7 +174,7 @@
             return new IntersectionInfo(bu, bv, distance);
             return new IntersectionInfo(bu, bv, distance);
         }
         }
 
 
-        public intersectsPlane(plane: Plane): number {
+        public intersectsPlane(plane: Plane): Nullable<number> {
             var distance: number;
             var distance: number;
             var result1 = Vector3.Dot(plane.normal, this.direction);
             var result1 = Vector3.Dot(plane.normal, this.direction);
             if (Math.abs(result1) < 9.99999997475243E-07) {
             if (Math.abs(result1) < 9.99999997475243E-07) {

+ 28 - 21
src/Debug/babylon.axesViewer.ts

@@ -6,11 +6,11 @@
         private _yline = [Vector3.Zero(), Vector3.Zero()];
         private _yline = [Vector3.Zero(), Vector3.Zero()];
         private _zline = [Vector3.Zero(), Vector3.Zero()];
         private _zline = [Vector3.Zero(), Vector3.Zero()];
 
 
-        private _xmesh: LinesMesh;
-        private _ymesh: LinesMesh;
-        private _zmesh: LinesMesh;
+        private _xmesh: Nullable<LinesMesh>;
+        private _ymesh: Nullable<LinesMesh>;
+        private _zmesh: Nullable<LinesMesh>;
 
 
-        public scene: Scene;
+        public scene: Nullable<Scene>;
         public scaleLines = 1;
         public scaleLines = 1;
 
 
         constructor(scene: Scene, scaleLines = 1) {
         constructor(scene: Scene, scaleLines = 1) {
@@ -40,48 +40,55 @@
 
 
             var scaleLines = this.scaleLines;
             var scaleLines = this.scaleLines;
 
 
-            this._xmesh.position.copyFrom(position);
-            this._ymesh.position.copyFrom(position);
-            this._zmesh.position.copyFrom(position);
+            if (this._xmesh) {
+                this._xmesh.position.copyFrom(position);
+            }
+            if (this._ymesh) {
+                this._ymesh.position.copyFrom(position);
+            }
+            if (this._zmesh) {
+                this._zmesh.position.copyFrom(position);
+            }
 
 
             var point2 = this._xline[1];
             var point2 = this._xline[1];
             point2.x = xaxis.x * scaleLines;
             point2.x = xaxis.x * scaleLines;
             point2.y = xaxis.y * scaleLines;
             point2.y = xaxis.y * scaleLines;
             point2.z = xaxis.z * scaleLines;
             point2.z = xaxis.z * scaleLines;
-            Mesh.CreateLines(null, this._xline, null, null, this._xmesh);
+            Mesh.CreateLines("", this._xline, null, false, this._xmesh);
 
 
             point2 = this._yline[1];
             point2 = this._yline[1];
             point2.x = yaxis.x * scaleLines;
             point2.x = yaxis.x * scaleLines;
             point2.y = yaxis.y * scaleLines;
             point2.y = yaxis.y * scaleLines;
             point2.z = yaxis.z * scaleLines;
             point2.z = yaxis.z * scaleLines;
-            Mesh.CreateLines(null, this._yline, null, null, this._ymesh);
+            Mesh.CreateLines("", this._yline, null, false, this._ymesh);
 
 
             point2 = this._zline[1];
             point2 = this._zline[1];
             point2.x = zaxis.x * scaleLines;
             point2.x = zaxis.x * scaleLines;
             point2.y = zaxis.y * scaleLines;
             point2.y = zaxis.y * scaleLines;
             point2.z = zaxis.z * scaleLines;
             point2.z = zaxis.z * scaleLines;
-            Mesh.CreateLines(null, this._zline, null, null, this._zmesh);
+            Mesh.CreateLines("", this._zline, null, false, this._zmesh);
 
 
         }
         }
 
 
         public dispose() {
         public dispose() {
 
 
-            if (this._xmesh) {
+            if (this._xmesh ) {
                 this._xmesh.dispose();
                 this._xmesh.dispose();
-                this._ymesh.dispose();
-                this._zmesh.dispose();
-
-                this._xmesh = null;
-                this._ymesh = null;
-                this._zmesh = null;
+            }
 
 
-                this._xline = null;
-                this._yline = null;
-                this._zline = null;
+            if (this._ymesh) {
+                this._ymesh.dispose();
+            }
 
 
-                this.scene = null;
+            if (this._zmesh) {
+                this._zmesh.dispose();
             }
             }
 
 
+            this._xmesh = null;
+            this._ymesh = null;
+            this._zmesh = null;
+
+            this.scene = null;
         }
         }
 
 
     }
     }

+ 7 - 10
src/Debug/babylon.boneAxesViewer.ts

@@ -2,8 +2,8 @@
 
 
     export class BoneAxesViewer extends Debug.AxesViewer {
     export class BoneAxesViewer extends Debug.AxesViewer {
 
 
-        public mesh:Mesh;
-        public bone:Bone;
+        public mesh: Nullable<Mesh>;
+        public bone: Nullable<Bone>;
 
 
         public pos = Vector3.Zero();
         public pos = Vector3.Zero();
         public xaxis = Vector3.Zero();
         public xaxis = Vector3.Zero();
@@ -21,6 +21,10 @@
 
 
         public update (): void {
         public update (): void {
 
 
+            if (!this.mesh || !this.bone) {
+                return;
+            }
+
             var bone = this.bone;
             var bone = this.bone;
             bone.getAbsolutePositionToRef(this.mesh, this.pos);
             bone.getAbsolutePositionToRef(this.mesh, this.pos);
             bone.getDirectionToRef(Axis.X, this.mesh, this.xaxis);
             bone.getDirectionToRef(Axis.X, this.mesh, this.xaxis);
@@ -33,14 +37,7 @@
 
 
         public dispose() {
         public dispose() {
 
 
-            if(this.pos){
-
-                this.pos = null;
-
-                this.xaxis = null;
-                this.yaxis = null;
-                this.zaxis = null;
-
+            if (this.mesh){
                 this.mesh = null;
                 this.mesh = null;
                 this.bone = null;
                 this.bone = null;
 
 

+ 43 - 17
src/Debug/babylon.physicsViewer.ts

@@ -2,11 +2,11 @@
 
 
     export class PhysicsViewer {
     export class PhysicsViewer {
         
         
-        protected _impostors:Array<PhysicsImpostor> = [];
-        protected _meshes:Array<AbstractMesh> = [];
-        protected _scene:Scene;
+        protected _impostors: Array<Nullable<PhysicsImpostor>> = [];
+        protected _meshes: Array<Nullable<AbstractMesh>> = [];
+        protected _scene: Nullable<Scene>;
         protected _numMeshes = 0;
         protected _numMeshes = 0;
-        protected _physicsEnginePlugin:IPhysicsEnginePlugin;
+        protected _physicsEnginePlugin: Nullable<IPhysicsEnginePlugin>;
         private _renderFunction: () => void;
         private _renderFunction: () => void;
 
 
         private _debugBoxMesh:Mesh;
         private _debugBoxMesh:Mesh;
@@ -14,27 +14,43 @@
         private _debugMaterial:StandardMaterial;
         private _debugMaterial:StandardMaterial;
 
 
         constructor(scene:Scene){
         constructor(scene:Scene){
-
             this._scene = scene || Engine.LastCreatedScene;
             this._scene = scene || Engine.LastCreatedScene;
-            this._physicsEnginePlugin = this._scene.getPhysicsEngine().getPhysicsPlugin();
+            let physicEngine = this._scene.getPhysicsEngine();
 
 
+            if (physicEngine) {
+                this._physicsEnginePlugin = physicEngine.getPhysicsPlugin();
+            }
         }
         }
 
 
-        protected _updateDebugMeshes():void{
+        protected _updateDebugMeshes(): void{
 
 
             var plugin = this._physicsEnginePlugin;
             var plugin = this._physicsEnginePlugin;
 
 
-            for (var i = 0; i < this._numMeshes; i++){
-                if(this._impostors[i].isDisposed){
+            for (var i = 0; i < this._numMeshes; i++) {
+                let impostor = this._impostors[i];
+
+                if (!impostor) {
+                    continue;
+                }
+
+                if (impostor.isDisposed) {
                     this.hideImpostor(this._impostors[i--]);
                     this.hideImpostor(this._impostors[i--]);
-                }else{
-                    plugin.syncMeshWithImpostor(this._meshes[i], this._impostors[i]);
+                } else {
+                    let mesh = this._meshes[i];
+
+                    if (mesh && plugin) {
+                        plugin.syncMeshWithImpostor(mesh, impostor);
+                    }
                 }
                 }
             }
             }
 
 
         }
         }
 
 
-        public showImpostor(impostor:PhysicsImpostor):void{
+        public showImpostor(impostor:PhysicsImpostor):void {
+
+            if (!this._scene) {
+                return;
+            }
 
 
             for (var i = 0; i < this._numMeshes; i++){
             for (var i = 0; i < this._numMeshes; i++){
                 if(this._impostors[i] == impostor){
                 if(this._impostors[i] == impostor){
@@ -58,14 +74,24 @@
 
 
         }
         }
 
 
-        public hideImpostor(impostor:PhysicsImpostor){
+        public hideImpostor(impostor: Nullable<PhysicsImpostor>){
+
+            if (!impostor || !this._scene) {
+                return;
+            }
 
 
             var removed = false;
             var removed = false;
 
 
             for (var i = 0; i < this._numMeshes; i++){
             for (var i = 0; i < this._numMeshes; i++){
                 if(this._impostors[i] == impostor){
                 if(this._impostors[i] == impostor){
-                    this._scene.removeMesh(this._meshes[i]);
-                    this._meshes[i].dispose();
+                    let mesh = this._meshes[i];
+
+                    if (!mesh) {
+                        continue;
+                    }
+
+                    this._scene.removeMesh(mesh);
+                    mesh.dispose();
                     this._numMeshes--;
                     this._numMeshes--;
                     if(this._numMeshes > 0){
                     if(this._numMeshes > 0){
                         this._meshes[i] = this._meshes[this._numMeshes];
                         this._meshes[i] = this._meshes[this._numMeshes];
@@ -120,8 +146,8 @@
             return this._debugSphereMesh.createInstance('physicsBodyBoxViewInstance');
             return this._debugSphereMesh.createInstance('physicsBodyBoxViewInstance');
         }
         }
 
 
-        private _getDebugMesh(impostor:PhysicsImpostor, scene:Scene):AbstractMesh{
-            var mesh:AbstractMesh;
+        private _getDebugMesh(impostor:PhysicsImpostor, scene:Scene): Nullable<AbstractMesh> {
+            var mesh: Nullable<AbstractMesh> = null;
             
             
             if (impostor.type == PhysicsImpostor.BoxImpostor) {
             if (impostor.type == PhysicsImpostor.BoxImpostor) {
                 mesh = this._getDebugBoxMesh(scene);
                 mesh = this._getDebugBoxMesh(scene);

+ 34 - 16
src/Debug/babylon.rayHelper.ts

@@ -1,15 +1,15 @@
 module BABYLON {
 module BABYLON {
     export class RayHelper {
     export class RayHelper {
         
         
-        public ray:Ray;
+        public ray: Nullable<Ray>;
 
 
         private _renderPoints: Vector3[];
         private _renderPoints: Vector3[];
-        private _renderLine: LinesMesh;
-        private _renderFunction: () => void;
-        private _scene: Scene;
+        private _renderLine: Nullable<LinesMesh>;
+        private _renderFunction: Nullable<() => void>;
+        private _scene: Nullable<Scene>;
         
         
-        private _updateToMeshFunction: () => void;
-        private _attachedToMesh: AbstractMesh;
+        private _updateToMeshFunction: Nullable<() => void>;
+        private _attachedToMesh: Nullable<AbstractMesh>;
         private _meshSpaceDirection: Vector3;
         private _meshSpaceDirection: Vector3;
         private _meshSpaceOrigin: Vector3;
         private _meshSpaceOrigin: Vector3;
 
 
@@ -27,7 +27,7 @@ module BABYLON {
 
 
         public show(scene:Scene, color:Color3): void{
         public show(scene:Scene, color:Color3): void{
 
 
-            if(!this._renderFunction){
+            if(!this._renderFunction && this.ray){
 
 
                 var ray = this.ray;
                 var ray = this.ray;
 
 
@@ -36,11 +36,12 @@ module BABYLON {
                 this._renderPoints = [ray.origin, ray.origin.add(ray.direction.scale(ray.length))];
                 this._renderPoints = [ray.origin, ray.origin.add(ray.direction.scale(ray.length))];
                 this._renderLine = Mesh.CreateLines("ray", this._renderPoints, scene, true);
                 this._renderLine = Mesh.CreateLines("ray", this._renderPoints, scene, true);
 
 
-                this._scene.registerBeforeRender(this._renderFunction);
-
+                if (this._renderFunction) {
+                    this._scene.registerBeforeRender(this._renderFunction);
+                }
             }
             }
 
 
-            if (color) {
+            if (color && this._renderLine) {
                 this._renderLine.color.copyFrom(color);
                 this._renderLine.color.copyFrom(color);
             }
             }
 
 
@@ -48,13 +49,16 @@ module BABYLON {
 
 
         public hide(): void{
         public hide(): void{
 
 
-            if(this._renderFunction){
+            if(this._renderFunction && this._scene){
                 this._scene.unregisterBeforeRender(this._renderFunction);
                 this._scene.unregisterBeforeRender(this._renderFunction);
                 this._scene = null;
                 this._scene = null;
                 this._renderFunction = null;
                 this._renderFunction = null;
-                this._renderLine.dispose();
-                this._renderLine = null;
-                this._renderPoints = null;
+                if (this._renderLine) {
+                    this._renderLine.dispose();
+                    this._renderLine = null;
+                }
+
+                this._renderPoints = [];
             }
             }
 
 
         }
         }
@@ -63,6 +67,10 @@ module BABYLON {
 
 
             var ray = this.ray;
             var ray = this.ray;
 
 
+            if (!ray) {
+                return;
+            }
+
             var point = this._renderPoints[1];
             var point = this._renderPoints[1];
             var len = Math.min(ray.length, 1000000);
             var len = Math.min(ray.length, 1000000);
             
             
@@ -80,6 +88,10 @@ module BABYLON {
 
 
             var ray = this.ray;
             var ray = this.ray;
 
 
+            if (!ray) {
+                return;
+            }
+
             if(!ray.direction){
             if(!ray.direction){
                 ray.direction = Vector3.Zero();
                 ray.direction = Vector3.Zero();
             }
             }
@@ -110,7 +122,7 @@ module BABYLON {
             }
             }
 
 
             if(!this._updateToMeshFunction){
             if(!this._updateToMeshFunction){
-                this._updateToMeshFunction = this._updateToMesh.bind(this);
+                this._updateToMeshFunction = (<() => void>this._updateToMesh.bind(this));
                 this._attachedToMesh.getScene().registerBeforeRender(this._updateToMeshFunction);
                 this._attachedToMesh.getScene().registerBeforeRender(this._updateToMeshFunction);
             }
             }
 
 
@@ -121,7 +133,9 @@ module BABYLON {
         public detachFromMesh(): void{
         public detachFromMesh(): void{
 
 
             if(this._attachedToMesh){
             if(this._attachedToMesh){
-                this._attachedToMesh.getScene().unregisterBeforeRender(this._updateToMeshFunction);
+                if (this._updateToMeshFunction) {
+                    this._attachedToMesh.getScene().unregisterBeforeRender(this._updateToMeshFunction);
+                }
                 this._attachedToMesh = null;
                 this._attachedToMesh = null;
                 this._updateToMeshFunction = null;
                 this._updateToMeshFunction = null;
             }
             }
@@ -132,6 +146,10 @@ module BABYLON {
 
 
             var ray = this.ray;
             var ray = this.ray;
 
 
+            if (!this._attachedToMesh || !ray) {
+                return;
+            }
+
             if(this._attachedToMesh._isDisposed){
             if(this._attachedToMesh._isDisposed){
                 this.detachFromMesh();
                 this.detachFromMesh();
                 return;
                 return;

+ 3 - 3
src/Debug/babylon.skeletonViewer.ts

@@ -7,7 +7,7 @@
 
 
         private _scene: Scene;
         private _scene: Scene;
         private _debugLines = new Array<Array<Vector3>>(); 
         private _debugLines = new Array<Array<Vector3>>(); 
-        private _debugMesh: LinesMesh;
+        private _debugMesh: Nullable<LinesMesh>;
         private _isEnabled = false;
         private _isEnabled = false;
         private _renderFunction: () => void;
         private _renderFunction: () => void;
 
 
@@ -114,10 +114,10 @@
             }
             }
 
 
             if (!this._debugMesh) {
             if (!this._debugMesh) {
-                this._debugMesh = BABYLON.MeshBuilder.CreateLineSystem(null, { lines: this._debugLines, updatable: true }, this._scene);
+                this._debugMesh = BABYLON.MeshBuilder.CreateLineSystem("", { lines: this._debugLines, updatable: true }, this._scene);
                 this._debugMesh.renderingGroupId = this.renderingGroupId;
                 this._debugMesh.renderingGroupId = this.renderingGroupId;
             } else {
             } else {
-                BABYLON.MeshBuilder.CreateLineSystem(null, { lines: this._debugLines, updatable: true, instance: this._debugMesh }, this._scene);
+                BABYLON.MeshBuilder.CreateLineSystem("", { lines: this._debugLines, updatable: true, instance: this._debugMesh }, this._scene);
             }
             }
             this._debugMesh.position.copyFrom(this.mesh.position);
             this._debugMesh.position.copyFrom(this.mesh.position);
             this._debugMesh.color = this.color;
             this._debugMesh.color = this.color;

+ 1 - 1
src/Mesh/babylon.mesh.ts

@@ -2534,7 +2534,7 @@
          * When updating an instance, remember that only point positions can change, not the number of points.      
          * When updating an instance, remember that only point positions can change, not the number of points.      
          * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created.  
          * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created.  
          */
          */
-        public static CreateLines(name: string, points: Vector3[], scene?: Scene, updatable?: boolean, instance?: LinesMesh): LinesMesh {
+        public static CreateLines(name: string, points: Vector3[], scene: Nullable<Scene> = null, updatable: boolean = false, instance: Nullable<LinesMesh> = null): LinesMesh {
             var options = {
             var options = {
                 points: points,
                 points: points,
                 updatable: updatable,
                 updatable: updatable,

+ 2 - 2
src/Mesh/babylon.meshBuilder.ts

@@ -362,7 +362,7 @@
          * When updating an instance, remember that only line point positions can change, not the number of points, neither the number of lines.      
          * When updating an instance, remember that only line point positions can change, not the number of points, neither the number of lines.      
          * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created.  
          * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created.  
          */
          */
-        public static CreateLineSystem(name: string, options: { lines: Vector3[][], updatable: boolean, instance?: LinesMesh }, scene: Scene): LinesMesh {
+        public static CreateLineSystem(name: string, options: { lines: Vector3[][], updatable: boolean, instance?: LinesMesh }, scene: Nullable<Scene>): LinesMesh {
             var instance = options.instance;
             var instance = options.instance;
             var lines = options.lines;
             var lines = options.lines;
 
 
@@ -400,7 +400,7 @@
          * When updating an instance, remember that only point positions can change, not the number of points.      
          * When updating an instance, remember that only point positions can change, not the number of points.      
          * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created.  
          * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created.  
          */
          */
-        public static CreateLines(name: string, options: { points: Vector3[], updatable?: boolean, instance?: LinesMesh }, scene: Scene): LinesMesh {
+        public static CreateLines(name: string, options: { points: Vector3[], updatable: boolean, instance: Nullable<LinesMesh> }, scene: Nullable<Scene> = null): LinesMesh {
             var lines = MeshBuilder.CreateLineSystem(name, { lines: [options.points], updatable: options.updatable, instance: options.instance }, scene);
             var lines = MeshBuilder.CreateLineSystem(name, { lines: [options.points], updatable: options.updatable, instance: options.instance }, scene);
             return lines;
             return lines;
         }
         }

+ 8 - 4
src/Tools/babylon.decorators.ts

@@ -112,7 +112,7 @@
         }
         }
     }
     }
 
 
-    function generateExpandMember(setCallback: string, targetKey: string) {
+    function generateExpandMember(setCallback: string, targetKey?: string) {
         return (target: any, propertyKey: string) => {
         return (target: any, propertyKey: string) => {
             var key = targetKey || ("_" + propertyKey);
             var key = targetKey || ("_" + propertyKey);
             Object.defineProperty(target, propertyKey, {
             Object.defineProperty(target, propertyKey, {
@@ -238,7 +238,7 @@
             return serializationObject;
             return serializationObject;
         }
         }
 
 
-        public static Parse<T>(creationFunction: () => T, source: any, scene: Scene, rootUrl?: string): T {
+        public static Parse<T>(creationFunction: () => T, source: any, scene: Nullable<Scene>, rootUrl: string = ""): T {
             var destination = creationFunction();
             var destination = creationFunction();
 
 
             // Tags
             // Tags
@@ -261,7 +261,9 @@
                             dest[property] = sourceProperty;
                             dest[property] = sourceProperty;
                             break;
                             break;
                         case 1:     // Texture
                         case 1:     // Texture
-                            dest[property] = Texture.Parse(sourceProperty, scene, rootUrl);
+                            if (scene) {
+                                dest[property] = Texture.Parse(sourceProperty, scene, rootUrl);
+                            }
                             break;
                             break;
                         case 2:     // Color3
                         case 2:     // Color3
                             dest[property] = Color3.FromArray(sourceProperty);
                             dest[property] = Color3.FromArray(sourceProperty);
@@ -276,7 +278,9 @@
                             dest[property] = Vector3.FromArray(sourceProperty);
                             dest[property] = Vector3.FromArray(sourceProperty);
                             break;
                             break;
                         case 6:     // Mesh reference
                         case 6:     // Mesh reference
-                            dest[property] = scene.getLastMeshByID(sourceProperty);
+                            if (scene) {
+                                dest[property] = scene.getLastMeshByID(sourceProperty);
+                            }
                             break;
                             break;
                         case 7:     // Color Curves
                         case 7:     // Color Curves
                             dest[property] = ColorCurves.Parse(sourceProperty);
                             dest[property] = ColorCurves.Parse(sourceProperty);

+ 17 - 10
src/Tools/babylon.observable.ts

@@ -45,7 +45,7 @@
      * Represent an Observer registered to a given Observable object.
      * Represent an Observer registered to a given Observable object.
      */
      */
     export class Observer<T> {
     export class Observer<T> {
-        constructor(public callback: (eventData: T, eventState: EventState) => void, public mask: number, public scope: any = null) {
+        constructor(public callback: (eventData: Nullable<T>, eventState: EventState) => void, public mask: number, public scope: any = null) {
         }
         }
     }
     }
 
 
@@ -53,12 +53,14 @@
      * Represent a list of observers registered to multiple Observables object.
      * Represent a list of observers registered to multiple Observables object.
      */
      */
     export class MultiObserver<T> {
     export class MultiObserver<T> {
-        private _observers: Observer<T>[];
-        private _observables: Observable<T>[];
+        private _observers: Nullable<Observer<T>[]>;
+        private _observables: Nullable<Observable<T>[]>;
         
         
         public dispose(): void {
         public dispose(): void {
-            for (var index = 0; index < this._observers.length; index++) {
-                this._observables[index].remove(this._observers[index]);
+            if (this._observers && this._observables) {
+                for (var index = 0; index < this._observers.length; index++) {
+                    this._observables[index].remove(this._observers[index]);
+                }
             }
             }
 
 
             this._observers = null;
             this._observers = null;
@@ -72,7 +74,10 @@
             result._observables = observables;            
             result._observables = observables;            
 
 
             for (var observable of observables) {
             for (var observable of observables) {
-                result._observers.push(observable.add(callback, mask, false, scope));
+                let observer = observable.add(callback, mask, false, scope);
+                if (observer) {
+                    result._observers.push(observer);
+                }
             }
             }
 
 
             return result;
             return result;
@@ -91,12 +96,14 @@
 
 
         private _eventState: EventState;
         private _eventState: EventState;
 
 
-        private _onObserverAdded: (observer: Observer<T>) => void;
+        private _onObserverAdded: Nullable<(observer: Observer<T>) => void>;
 
 
         constructor(onObserverAdded?: (observer: Observer<T>) => void) {
         constructor(onObserverAdded?: (observer: Observer<T>) => void) {
             this._eventState = new EventState(0);
             this._eventState = new EventState(0);
 
 
-            this._onObserverAdded = onObserverAdded;
+            if (onObserverAdded) {
+                this._onObserverAdded = onObserverAdded;
+            }
         }
         }
 
 
         /**
         /**
@@ -106,7 +113,7 @@
          * @param insertFirst if true the callback will be inserted at the first position, hence executed before the others ones. If false (default behavior) the callback will be inserted at the last position, executed after all the others already present.
          * @param insertFirst if true the callback will be inserted at the first position, hence executed before the others ones. If false (default behavior) the callback will be inserted at the last position, executed after all the others already present.
          * @param scope optional scope for the callback to be called from
          * @param scope optional scope for the callback to be called from
          */
          */
-        public add(callback: (eventData: T, eventState: EventState) => void, mask: number = -1, insertFirst = false, scope: any = null): Observer<T> {
+        public add(callback: (eventData: T, eventState: EventState) => void, mask: number = -1, insertFirst = false, scope: any = null): Nullable<Observer<T>> {
             if (!callback) {
             if (!callback) {
                 return null;
                 return null;
             }
             }
@@ -165,7 +172,7 @@
          * @param eventData
          * @param eventData
          * @param mask
          * @param mask
          */
          */
-        public notifyObservers(eventData: T, mask: number = -1, target?: any, currentTarget?: any): boolean {
+        public notifyObservers(eventData: Nullable<T>, mask: number = -1, target?: any, currentTarget?: any): boolean {
             let state = this._eventState;
             let state = this._eventState;
             state.mask = mask;
             state.mask = mask;
             state.target = target;
             state.target = target;

+ 1 - 2
src/tsconfig.json

@@ -9,7 +9,6 @@
     "lib": ["dom", "es2015.promise", "es5"],
     "lib": ["dom", "es2015.promise", "es5"],
     "noImplicitReturns": true,
     "noImplicitReturns": true,
     "noImplicitThis": true,
     "noImplicitThis": true,
-    "noUnusedLocals": true,
-    "strictNullChecks": true
+    "noUnusedLocals": true
   }
   }
 }
 }