Преглед изворни кода

Merge pull request #3500 from RaananW/modules

CommonJS and es6 modules
David Catuhe пре 7 година
родитељ
комит
e5101a113c
100 измењених фајлова са 135851 додато и 100 уклоњено
  1. 1 0
      .gitignore
  2. 75 87
      Tools/Gulp/config.json
  3. 15 2
      Tools/Gulp/gulp-addDtsExport.js
  4. 1 1
      Tools/Gulp/gulp-appendSrcToVariable.js
  5. 113 0
      Tools/Gulp/gulp-babylonModule.js
  6. 62 0
      Tools/Gulp/gulp-dtsModuleSupport.js
  7. 111 0
      Tools/Gulp/gulp-es6ModuleExports.js
  8. 124 0
      Tools/Gulp/gulpfile.js
  9. 106 10
      Tools/Publisher/index.js
  10. 1 0
      Tools/Publisher/package.json
  11. 1388 0
      dist/preview release/modules/actions/es6.js
  12. 408 0
      dist/preview release/modules/actions/index.d.ts
  13. 1376 0
      dist/preview release/modules/actions/index.js
  14. 292 0
      dist/preview release/modules/additionalCameras/es6.js
  15. 112 0
      dist/preview release/modules/additionalCameras/index.d.ts
  16. 296 0
      dist/preview release/modules/additionalCameras/index.js
  17. 717 0
      dist/preview release/modules/additionalMeshes/es6.js
  18. 281 0
      dist/preview release/modules/additionalMeshes/index.d.ts
  19. 722 0
      dist/preview release/modules/additionalMeshes/index.js
  20. 253 0
      dist/preview release/modules/additionalPostProcess_blur/es6.js
  21. 115 0
      dist/preview release/modules/additionalPostProcess_blur/index.d.ts
  22. 260 0
      dist/preview release/modules/additionalPostProcess_blur/index.js
  23. 84 0
      dist/preview release/modules/additionalPostProcess_fxaa/es6.js
  24. 75 0
      dist/preview release/modules/additionalPostProcess_fxaa/index.d.ts
  25. 91 0
      dist/preview release/modules/additionalPostProcess_fxaa/index.js
  26. 77 0
      dist/preview release/modules/additionalPostProcess_highlights/es6.js
  27. 73 0
      dist/preview release/modules/additionalPostProcess_highlights/index.d.ts
  28. 84 0
      dist/preview release/modules/additionalPostProcess_highlights/index.js
  29. 474 0
      dist/preview release/modules/additionalPostProcess_imageProcessing/es6.js
  30. 218 0
      dist/preview release/modules/additionalPostProcess_imageProcessing/index.d.ts
  31. 481 0
      dist/preview release/modules/additionalPostProcess_imageProcessing/index.js
  32. 1121 0
      dist/preview release/modules/additionalPostProcesses/es6.js
  33. 403 0
      dist/preview release/modules/additionalPostProcesses/index.d.ts
  34. 1117 0
      dist/preview release/modules/additionalPostProcesses/index.js
  35. 1626 0
      dist/preview release/modules/additionalRenderingPipeline/es6.js
  36. 461 0
      dist/preview release/modules/additionalRenderingPipeline/index.d.ts
  37. 1630 0
      dist/preview release/modules/additionalRenderingPipeline/index.js
  38. 1510 0
      dist/preview release/modules/additionalTextures/es6.js
  39. 375 0
      dist/preview release/modules/additionalTextures/index.d.ts
  40. 1510 0
      dist/preview release/modules/additionalTextures/index.js
  41. 1737 0
      dist/preview release/modules/animations/es6.js
  42. 454 0
      dist/preview release/modules/animations/index.d.ts
  43. 1724 0
      dist/preview release/modules/animations/index.js
  44. 1429 0
      dist/preview release/modules/arcRotateCamera/es6.js
  45. 268 0
      dist/preview release/modules/arcRotateCamera/index.d.ts
  46. 1432 0
      dist/preview release/modules/arcRotateCamera/index.js
  47. 442 0
      dist/preview release/modules/assetsManager/es6.js
  48. 211 0
      dist/preview release/modules/assetsManager/index.d.ts
  49. 439 0
      dist/preview release/modules/assetsManager/index.js
  50. 1064 0
      dist/preview release/modules/audio/es6.js
  51. 246 0
      dist/preview release/modules/audio/index.d.ts
  52. 1068 0
      dist/preview release/modules/audio/index.js
  53. 1009 0
      dist/preview release/modules/backgroundMaterial/es6.js
  54. 365 0
      dist/preview release/modules/backgroundMaterial/index.d.ts
  55. 1016 0
      dist/preview release/modules/backgroundMaterial/index.js
  56. 2021 0
      dist/preview release/modules/bones/es6.js
  57. 549 0
      dist/preview release/modules/bones/index.d.ts
  58. 2025 0
      dist/preview release/modules/bones/index.js
  59. 898 0
      dist/preview release/modules/cameraBehaviors/es6.js
  60. 372 0
      dist/preview release/modules/cameraBehaviors/index.d.ts
  61. 903 0
      dist/preview release/modules/cameraBehaviors/index.js
  62. 639 0
      dist/preview release/modules/collisions/es6.js
  63. 252 0
      dist/preview release/modules/collisions/index.d.ts
  64. 641 0
      dist/preview release/modules/collisions/index.js
  65. 36399 0
      dist/preview release/modules/core/es6.js
  66. 10411 0
      dist/preview release/modules/core/index.d.ts
  67. 36285 0
      dist/preview release/modules/core/index.js
  68. 561 0
      dist/preview release/modules/csg/es6.js
  69. 92 0
      dist/preview release/modules/csg/index.d.ts
  70. 568 0
      dist/preview release/modules/csg/index.js
  71. 394 0
      dist/preview release/modules/defaultRenderingPipeline/es6.js
  72. 128 0
      dist/preview release/modules/defaultRenderingPipeline/index.d.ts
  73. 401 0
      dist/preview release/modules/defaultRenderingPipeline/index.js
  74. 188 0
      dist/preview release/modules/depthRenderer/es6.js
  75. 80 0
      dist/preview release/modules/depthRenderer/index.d.ts
  76. 195 0
      dist/preview release/modules/depthRenderer/index.js
  77. 422 0
      dist/preview release/modules/directionalLight/es6.js
  78. 242 0
      dist/preview release/modules/directionalLight/index.d.ts
  79. 428 0
      dist/preview release/modules/directionalLight/index.js
  80. 536 0
      dist/preview release/modules/environmentHelper/es6.js
  81. 362 0
      dist/preview release/modules/environmentHelper/index.d.ts
  82. 543 0
      dist/preview release/modules/environmentHelper/index.js
  83. 566 0
      dist/preview release/modules/freeCamera/es6.js
  84. 153 0
      dist/preview release/modules/freeCamera/index.d.ts
  85. 570 0
      dist/preview release/modules/freeCamera/index.js
  86. 102 0
      dist/preview release/modules/fresnel/es6.js
  87. 81 0
      dist/preview release/modules/fresnel/index.d.ts
  88. 109 0
      dist/preview release/modules/fresnel/index.js
  89. 1779 0
      dist/preview release/modules/gamepad/es6.js
  90. 432 0
      dist/preview release/modules/gamepad/index.d.ts
  91. 1770 0
      dist/preview release/modules/gamepad/index.js
  92. 240 0
      dist/preview release/modules/geometryBufferRenderer/es6.js
  93. 87 0
      dist/preview release/modules/geometryBufferRenderer/index.d.ts
  94. 247 0
      dist/preview release/modules/geometryBufferRenderer/index.js
  95. 206 0
      dist/preview release/modules/gpuParticles/es6.js
  96. 110 0
      dist/preview release/modules/gpuParticles/index.d.ts
  97. 213 0
      dist/preview release/modules/gpuParticles/index.js
  98. 1145 0
      dist/preview release/modules/hdr/es6.js
  99. 363 0
      dist/preview release/modules/hdr/index.d.ts
  100. 0 0
      dist/preview release/modules/hdr/index.js

+ 1 - 0
.gitignore

@@ -167,3 +167,4 @@ localDev/src/*
 /dist/preview release/babylon.custom.max.js
 /localDev/src/index.js
 package-lock.json
+dist/preview release/package/

+ 75 - 87
Tools/Gulp/config.json

@@ -18,7 +18,6 @@
     },
     "buildConfigurations": {
         "all": [
-            "standardMaterial",
             "pbrMaterial",
             "freeCamera",
             "arcRotateCamera",
@@ -85,18 +84,15 @@
             "environmentHelper"
         ],
         "minimal": [
-            "standardMaterial",
             "freeCamera",
             "hemisphericLight"
         ],
         "minimalWithBuilder": [
             "meshBuilder",
-            "standardMaterial",
             "freeCamera",
             "hemisphericLight"
         ],
         "minimalGLTFViewer": [
-            "standardMaterial",
             "pbrMaterial",
             "freeCamera",
             "arcRotateCamera",
@@ -169,12 +165,14 @@
     "workloads": {
         "core": {
             "files": [
+                "../../src/Materials/babylon.effect.js",
                 "../../src/babylon.types.js",
                 "../../src/Events/babylon.keyboardEvents.js",
                 "../../src/Events/babylon.pointerEvents.js",
                 "../../src/Math/babylon.math.js",
                 "../../src/Math/babylon.math.scalar.js",
                 "../../src/babylon.mixins.js",
+                "../../src/Engine/babylon.webgl2.js",
                 "../../src/Tools/babylon.decorators.js",
                 "../../src/Tools/babylon.observable.js",
                 "../../src/Tools/babylon.smartArray.js",
@@ -201,7 +199,6 @@
                 "../../src/Materials/Textures/babylon.texture.js",
                 "../../src/Mesh/babylon.mesh.js",
                 "../../src/Mesh/babylon.subMesh.js",
-                "../../src/Materials/babylon.effect.js",
                 "../../src/Materials/babylon.material.js",
                 "../../src/Materials/babylon.uniformBuffer.js",
                 "../../src/Mesh/babylon.mesh.vertexData.js",
@@ -210,19 +207,57 @@
                 "../../src/Tools/babylon.performanceMonitor.js",
                 "../../src/Materials/babylon.imageProcessingConfiguration.js",
                 "../../src/Materials/Textures/babylon.colorGradingTexture.js",
-                "../../src/Materials/babylon.colorCurves.js"
-            ],
-            "shaderIncludes": [
-                "depthPrePass"
-            ]
-        },
-        "materialCore": {
-            "files": [
+                "../../src/Materials/babylon.colorCurves.js",
+                "../../src/Behaviors/babylon.behavior.js",
                 "../../src/Materials/babylon.materialHelper.js",
-                "../../src/Materials/babylon.pushMaterial.js"
+                "../../src/Materials/babylon.pushMaterial.js",
+                "../../src/Materials/babylon.standardMaterial.js"
             ],
-            "dependUpon": [
-                "core"
+            "shaders": [
+                "default.vertex",
+                "default.fragment"
+            ],
+            "shaderIncludes": [
+                "depthPrePass",
+                "bonesDeclaration",
+                "instancesDeclaration",
+                "pointCloudVertexDeclaration",
+                "bumpVertexDeclaration",
+                "clipPlaneVertexDeclaration",
+                "fogVertexDeclaration",
+                "morphTargetsVertexGlobalDeclaration",
+                "morphTargetsVertexDeclaration",
+                "logDepthDeclaration",
+                "morphTargetsVertex",
+                "instancesVertex",
+                "bonesVertex",
+                "bumpVertex",
+                "clipPlaneVertex",
+                "fogVertex",
+                "shadowsVertex",
+                "pointCloudVertex",
+                "logDepthVertex",
+                "helperFunctions",
+                "lightFragmentDeclaration",
+                "lightsFragmentFunctions",
+                "lightUboDeclaration",
+                "defaultVertexDeclaration",
+                "defaultFragmentDeclaration",
+                "defaultUboDeclaration",
+                "shadowsFragmentFunctions",
+                "fresnelFunction",
+                "reflectionFunction",
+                "imageProcessingDeclaration",
+                "imageProcessingFunctions",
+                "bumpFragmentFunctions",
+                "clipPlaneFragmentDeclaration",
+                "logDepthDeclaration",
+                "fogFragmentDeclaration",
+                "clipPlaneFragment",
+                "bumpFragment",
+                "lightFragment",
+                "logDepthFragment",
+                "fogFragment"
             ]
         },
         "particles": {
@@ -258,7 +293,9 @@
         },
         "nullEngine": {
             "files": [
-                "../../src/Engine/babylon.nullEngine.js"
+                "../../src/Engine/babylon.nullEngine.js",
+                "../../src/Engine/babylon.webgl2.js",
+                "../../src/babylon.mixins.js"
             ],
             "dependUpon": [
                 "core"
@@ -266,6 +303,7 @@
         },
         "instrumentation": {
             "files": [
+                "../../src/Engine/babylon.webgl2.js",
                 "../../src/Instrumentation/babylon.engineInstrumentation.js",
                 "../../src/Instrumentation/babylon.sceneInstrumentation.js",
                 "../../src/Instrumentation/babylon.timeToken.js"
@@ -364,7 +402,8 @@
                 "../../src/Mesh/babylon.linesMesh.js"
             ],
             "dependUpon": [
-                "core"
+                "core",
+                "shaderMaterial"
             ],
             "shaders": [
                 "color.vertex",
@@ -377,7 +416,7 @@
             ],
             "dependUpon": [
                 "core",
-                "shaderMaterial"
+                "additionalMeshes"
             ]
         },
         "shaderMaterial": {
@@ -385,60 +424,7 @@
                 "../../src/Materials/babylon.shaderMaterial.js"
             ],
             "dependUpon": [
-                "materialCore"
-            ]
-        },
-        "standardMaterial": {
-            "files": [
-                "../../src/Materials/babylon.standardMaterial.js"
-            ],
-            "dependUpon": [
-                "materialCore"
-            ],
-            "shaders": [
-                "default.vertex",
-                "default.fragment"
-            ],
-            "shaderIncludes": [
-                "bonesDeclaration",
-                "instancesDeclaration",
-                "pointCloudVertexDeclaration",
-                "bumpVertexDeclaration",
-                "clipPlaneVertexDeclaration",
-                "fogVertexDeclaration",
-                "morphTargetsVertexGlobalDeclaration",
-                "morphTargetsVertexDeclaration",
-                "logDepthDeclaration",
-                "morphTargetsVertex",
-                "instancesVertex",
-                "bonesVertex",
-                "bumpVertex",
-                "clipPlaneVertex",
-                "fogVertex",
-                "shadowsVertex",
-                "pointCloudVertex",
-                "logDepthVertex",
-                "helperFunctions",
-                "lightFragmentDeclaration",
-                "lightsFragmentFunctions",
-                "lightUboDeclaration",
-                "defaultVertexDeclaration",
-                "defaultFragmentDeclaration",
-                "defaultUboDeclaration",
-                "shadowsFragmentFunctions",
-                "fresnelFunction",
-                "reflectionFunction",
-                "imageProcessingDeclaration",
-                "imageProcessingFunctions",
-                "bumpFragmentFunctions",
-                "clipPlaneFragmentDeclaration",
-                "logDepthDeclaration",
-                "fogFragmentDeclaration",
-                "clipPlaneFragment",
-                "bumpFragment",
-                "lightFragment",
-                "logDepthFragment",
-                "fogFragment"
+                "core"
             ]
         },
         "pbrMaterial": {
@@ -450,7 +436,7 @@
                 "../../src/Materials/PBR/babylon.pbrSpecularGlossinessMaterial.js"
             ],
             "dependUpon": [
-                "materialCore"
+                "core"
             ],
             "shaders": [
                 "pbr.vertex",
@@ -498,31 +484,36 @@
                 "fogFragment"
             ]
         },
-        "freeCamera": {
+        "targetCamera": {
             "files": [
                 "../../src/Cameras/babylon.cameraInputsManager.js",
+                "../../src/Cameras/babylon.targetCamera.js"
+            ],
+            "dependUpon": [
+                "core"
+            ]
+        },
+        "freeCamera": {
+            "files": [
                 "../../src/Cameras/Inputs/babylon.freeCameraMouseInput.js",
                 "../../src/Cameras/Inputs/babylon.freeCameraKeyboardMoveInput.js",
                 "../../src/Cameras/babylon.freeCameraInputsManager.js",
-                "../../src/Cameras/babylon.targetCamera.js",
                 "../../src/Cameras/babylon.freeCamera.js"
             ],
             "dependUpon": [
-                "core"
+                "targetCamera"
             ]
         },
         "arcRotateCamera": {
             "files": [
-                "../../src/Cameras/babylon.cameraInputsManager.js",
-                "../../src/Cameras/babylon.targetCamera.js",
                 "../../src/Cameras/Inputs/babylon.arcRotateCameraKeyboardMoveInput.js",
                 "../../src/Cameras/Inputs/babylon.arcRotateCameraMouseWheelInput.js",
                 "../../src/Cameras/Inputs/babylon.arcRotateCameraPointersInput.js",
-                "../../src/Cameras/babylon.arcRotateCamera.js",
-                "../../src/Cameras/babylon.arcRotateCameraInputsManager.js"
+                "../../src/Cameras/babylon.arcRotateCameraInputsManager.js",
+                "../../src/Cameras/babylon.arcRotateCamera.js"
             ],
             "dependUpon": [
-                "core"
+                "targetCamera"
             ]
         },
         "hemisphericLight": {
@@ -959,18 +950,15 @@
         },
         "debug": {
             "files": [
-                "../../src/Debug/babylon.skeletonViewer.js",
-                "../../src/Debug/babylon.axesViewer.js",
-                "../../src/Debug/babylon.boneAxesViewer.js",
+                "../../src/Debug/babylon.debugModules.js",
                 "../../src/Debug/babylon.rayHelper.js",
                 "../../src/Debug/babylon.debugLayer.js",
-                "../../src/Debug/babylon.physicsViewer.js",
                 "../../src/Rendering/babylon.boundingBoxRenderer.js"
             ],
             "dependUpon": [
                 "shaderMaterial",
                 "additionalMeshes",
-                "standardMaterial",
+                "core",
                 "stringDictionary",
                 "actions"
             ],

+ 15 - 2
Tools/Gulp/gulp-addDtsExport.js

@@ -1,7 +1,7 @@
 var gutil = require('gulp-util');
 var through = require('through2');
 
-module.exports = function (varName, moduleName, subModule, extendsRoot) {
+module.exports = function (varName, moduleName, subModule, extendsRoot, dependencies) {
     return through.obj(function (file, enc, cb) {
 
         let exportText = "BABYLON";
@@ -9,8 +9,21 @@ module.exports = function (varName, moduleName, subModule, extendsRoot) {
             exportText += '.' + varName;
         }
 
+        let referenceText = '';
+        if (subModule) {
+            referenceText = '/// <reference types="babylonjs"/>\n';
+        }
+
+        if (dependencies) {
+            referenceText = '';
+            dependencies.forEach(element => {
+                referenceText += `/// <reference types="babylonjs/${element}"/>
+`
+            });
+        }
+
         var moduleExportsAddition =
-            `${subModule ? '/// <reference types="babylonjs"/>' : ''}
+            `${referenceText}
 
 declare module '${moduleName}' { 
     export = ${exportText}; 

+ 1 - 1
Tools/Gulp/gulp-appendSrcToVariable.js

@@ -7,7 +7,7 @@ var File = gutil.File;
 // Consts
 const PLUGIN_NAME = 'gulp-appendSrcToVariable';
 
-var appendSrcToVariable = function appendSrcToVariable(varName, namingCallback, output) {
+var appendSrcToVariable = function appendSrcToVariable(varName, namingCallback, output, lastFile) {
 
     var content;
     var firstFile;

+ 113 - 0
Tools/Gulp/gulp-babylonModule.js

@@ -0,0 +1,113 @@
+var gutil = require('gulp-util');
+var through = require('through2');
+
+module.exports = function (moduleName, dependencies) {
+    return through.obj(function (file, enc, cb) {
+
+        console.log("Compiling module: " + moduleName);
+
+        var extendsAddition =
+            `var __extends = (this && this.__extends) || (function () {
+var extendStatics = Object.setPrototypeOf ||
+    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+return function (d, b) {
+    extendStatics(d, b);
+    function __() { this.constructor = d; }
+    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+})();
+`;
+
+        var decorateAddition =
+            'var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n' +
+            'var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n' +
+            'if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n' +
+            'else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n' +
+            'return c > 3 && r && Object.defineProperty(target, key, r), r;\n' +
+            '};\n';
+
+        let content = file.contents.toString();
+        if (content.indexOf('__extends') === -1 && dependencies.length < 2) {
+            extendsAddition = '';
+        }
+
+        if (content.indexOf('__decorate') === -1) {
+            decorateAddition = '';
+        }
+
+        let dependenciesText = `${extendsAddition}
+${decorateAddition}
+if(typeof require !== 'undefined'){
+    var globalObject = (typeof global !== 'undefined') ? global : ((typeof window !== 'undefined') ? window : this);
+    var BABYLON = globalObject["BABYLON"] || {}; 
+`;
+        if (dependencies) {
+            /*if (dependencies.length > 1) {
+                dependenciesText += 'function nse(ns1, ns2) { Object.keys(ns2).forEach(function(c) {if(!ns1[c]) {ns1[c] = ns2[c]}}) };\n';
+            }*/
+
+            dependencies.forEach(function (d, idx) {
+                dependenciesText += `var BABYLON${idx} = require('babylonjs/${d}');
+`;
+                dependenciesText += `if(BABYLON !== BABYLON${idx}) __extends(BABYLON, BABYLON${idx});
+`;
+            });
+        }
+
+
+
+        let exportRegex = /BABYLON.([0-9A-Za-z-_]*) = .*;\n/g
+
+        var match = exportRegex.exec(content);
+
+        let exportsArray = [];
+        while (match != null) {
+            if (match[1]) {
+                exportsArray.push(match[1])
+            }
+            match = exportRegex.exec(content);
+        }
+
+        let exportsText = '';
+        if (moduleName === "core") {
+            exportsText = `(function() {
+    globalObject["BABYLON"] = globalObject["BABYLON"] || BABYLON;
+    module.exports = BABYLON; 
+})();
+}`
+        }
+        else {
+            exportsText = `(function() {
+var EXPORTS = {};`
+            exportsArray.forEach(e => {
+                if (e.indexOf('.') === -1)
+                    exportsText += `EXPORTS['${e}'] = BABYLON['${e}'];`
+            });
+
+            exportsText += `
+    globalObject["BABYLON"] = globalObject["BABYLON"] || BABYLON;
+    module.exports = EXPORTS;
+    })();
+}`
+        }
+
+        if (file.isNull()) {
+            cb(null, file);
+            return;
+        }
+
+        if (file.isStream()) {
+            //streams not supported, no need for now.
+            return;
+        }
+
+        try {
+            file.contents = new Buffer(dependenciesText.concat(new Buffer(String(file.contents).concat(exportsText))));
+            this.push(file);
+        } catch (err) {
+            this.emit('error', new gutil.PluginError('gulp-add-babylon-module', err, { fileName: file.path }));
+        }
+        cb();
+    });
+}

+ 62 - 0
Tools/Gulp/gulp-dtsModuleSupport.js

@@ -0,0 +1,62 @@
+var gutil = require('gulp-util');
+var through = require('through2');
+
+// inject - if set to true, it will add all declarations as imports.
+module.exports = function (moduleName, inject, declarations) {
+    return through.obj(function (file, enc, cb) {
+
+        let fileContent = file.contents.toString();
+        let importsString = '';
+
+        if (!inject) {
+            declarations[moduleName] = declarations[moduleName] || [];
+            let regexp = /    (abstract class|function|class|interface|type|const|enum|var) ([\w]*)/g;
+
+            var match = regexp.exec(fileContent);
+            while (match != null) {
+                if (match[2]) {
+                    // check it is not SIMD:
+                    let simdMatch = /    interface (\w*\dx\d{1,2}\w*)/.exec(match[0]);
+                    if (!simdMatch && match[2] !== 'earcut' && match[2] !== 'deviation' && match[2] !== 'flatten')
+                        declarations[moduleName].push(match[2]);
+                }
+                match = regexp.exec(fileContent);
+            }
+        } else {
+            let declared = [];
+            Object.keys(declarations).forEach(name => {
+                if (name === moduleName) return;
+                let imports = declarations[name].filter(obj => {
+                    let exists = declared.indexOf(obj) !== -1;
+                    if (!exists) {
+                        declared.push(obj);
+                    }
+                    return !exists;
+                });
+                if (imports.length)
+                    importsString += `import {${imports.join(',')}} from 'babylonjs/${name}';
+`;
+            });
+        }
+
+        if (file.isNull()) {
+            cb(null, file);
+            return;
+        }
+
+        if (file.isStream()) {
+            //streams not supported, no need for now.
+            return;
+        }
+
+        try {
+            file.contents = new Buffer(String(file.contents) + '\n' + importsString);
+            this.push(file);
+
+        } catch (err) {
+            this.emit('error', new gutil.PluginError('gulp-add-module-exports', err, { fileName: file.path }));
+        }
+        cb();
+    });
+};
+

+ 111 - 0
Tools/Gulp/gulp-es6ModuleExports.js

@@ -0,0 +1,111 @@
+var gutil = require('gulp-util');
+var through = require('through2');
+
+module.exports = function (moduleName, dependencies, es6) {
+    return through.obj(function (file, enc, cb) {
+
+        console.log("Compiling es6 module: " + moduleName);
+
+        var extendsAddition =
+            `var __extends = (this && this.__extends) || (function () {
+var extendStatics = Object.setPrototypeOf ||
+    ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+    function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+return function (d, b) {
+    extendStatics(d, b);
+    function __() { this.constructor = d; }
+    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+})();
+`;
+
+        var decorateAddition =
+            'var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n' +
+            'var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n' +
+            'if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);\n' +
+            'else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n' +
+            'return c > 3 && r && Object.defineProperty(target, key, r), r;\n' +
+            '};\n';
+
+        let content = file.contents.toString();
+        if (content.indexOf('__extends') === -1 && dependencies.length < 2) {
+            extendsAddition = '';
+        }
+
+        if (content.indexOf('__decorate') === -1) {
+            decorateAddition = '';
+        }
+
+        let dependenciesText = `${extendsAddition}
+${decorateAddition}
+`;
+        if (dependencies) {
+            /*if (dependencies.length > 1) {
+                dependenciesText += 'function nse(ns1, ns2) { Object.keys(ns2).forEach(function(c) {if(!ns1[c]) {ns1[c] = ns2[c]}}) };\n';
+            }*/
+
+            dependencies.forEach(function (d, idx) {
+                let name = d === 'core' ? 'BABYLON' : d;
+                dependenciesText += `import * as ${name} from 'babylonjs/${d}/es6';
+`;
+                if (idx > 0) {
+                    dependenciesText += `__extends(BABYLON, ${d});
+`;
+                }
+            });
+        }
+
+
+
+        let exportRegex = /BABYLON.([0-9A-Za-z-_]*) = .*;\n/g
+
+        var match = exportRegex.exec(content);
+
+        let exportsArray = [];
+        while (match != null) {
+            if (match[1]) {
+                exportsArray.push(match[1])
+            }
+            match = exportRegex.exec(content);
+        }
+
+        let exportsText = '';
+        if (moduleName === "core") {
+            exportsText = `(function() {
+    var globalObject = (typeof global !== 'undefined') ? global : ((typeof window !== 'undefined') ? window : this);
+    globalObject["BABYLON"] = BABYLON;
+})();;
+`
+        }
+
+        let exportedItems = '';
+        exportsArray.forEach((e, idx) => {
+            if (e.indexOf('.') === -1) {
+                exportedItems += `${idx ? ',' : ''}${e}`
+                exportsText += `var ${e} = BABYLON.${e};
+`
+            }
+        });
+
+        exportsText += `
+export { ${exportedItems} };`
+
+        if (file.isNull()) {
+            cb(null, file);
+            return;
+        }
+
+        if (file.isStream()) {
+            //streams not supported, no need for now.
+            return;
+        }
+
+        try {
+            file.contents = new Buffer(dependenciesText.concat(new Buffer(String(file.contents).concat(exportsText))));
+            this.push(file);
+        } catch (err) {
+            this.emit('error', new gutil.PluginError('gulp-es6-module-exports', err, { fileName: file.path }));
+        }
+        cb();
+    });
+}

+ 124 - 0
Tools/Gulp/gulpfile.js

@@ -6,6 +6,9 @@ var srcToVariable = require("gulp-content-to-variable");
 var appendSrcToVariable = require("./gulp-appendSrcToVariable");
 var addDtsExport = require("./gulp-addDtsExport");
 var addModuleExports = require("./gulp-addModuleExports");
+var babylonModuleExports = require("./gulp-babylonModule");
+var babylonES6ModuleExports = require("./gulp-es6ModuleExports");
+var dtsModuleSupport = require("./gulp-dtsModuleSupport");
 var merge2 = require("merge2");
 var concat = require("gulp-concat");
 var rename = require("gulp-rename");
@@ -591,3 +594,124 @@ gulp.task("clean-JS-MAP", function () {
         "../../src/**/*.js.map", "../../src/**/*.js"
     ], { force: true });
 });
+
+// this is needed for the modules for the declaration files.
+gulp.task("modules-compile", function () {
+    var tsResult = gulp.src(config.typescript)
+        .pipe(sourcemaps.init())
+        .pipe(tsProject());
+
+    // If this gulp task is running on travis
+    if (process.env.TRAVIS) {
+        var error = false;
+        tsResult.on("error", function () {
+            error = true;
+        }).on("end", function () {
+            if (error) {
+                console.log("Typescript compile failed");
+                process.exit(1);
+            }
+        });
+    }
+
+    return merge2([
+        tsResult.dts
+            .pipe(gulp.dest(config.build.srcOutputDirectory)),
+        tsResult.js
+            .pipe(sourcemaps.write("./",
+                {
+                    includeContent: false,
+                    sourceRoot: (filePath) => {
+                        return "";
+                    }
+                }))
+            .pipe(gulp.dest(config.build.srcOutputDirectory))
+    ]);
+});
+
+// this holds the declared objects in each module
+let declared = {}
+
+gulp.task('prepare-for-modules', ["modules-compile"], function () {
+    let tasks = [];
+    Object.keys(config.workloads).forEach((moduleName) => {
+        let dtsFiles = config.workloads[moduleName].files.map(f => f.replace(".js", ".d.ts"))
+        let dtsTask = gulp.src(dtsFiles)
+            .pipe(dtsModuleSupport(moduleName, false, declared));
+
+        tasks.push(dtsTask);
+    });
+
+    return merge2(tasks);
+});
+
+// generate the modules directory, along with commonjs modules and es6 modules
+// Note - the generated modules are UNMINIFIED! The user will choose whether they want to minify or not.
+gulp.task("modules", ["prepare-for-modules"], function () {
+    let tasks = [];
+
+    Object.keys(config.workloads)
+        .forEach((moduleName) => {
+            let shadersFiles = [];
+            processDependency("shaders", config.workloads[moduleName], shadersFiles);
+            for (var index = 0; index < shadersFiles.length; index++) {
+                shadersFiles[index] = "../../src/Shaders/" + shadersFiles[index] + ".fx";
+            }
+
+            let shaderIncludeFiles = [];
+            processDependency("shaderIncludes", config.workloads[moduleName], shaderIncludeFiles);
+            for (var index = 0; index < shaderIncludeFiles.length; index++) {
+                shaderIncludeFiles[index] = "../../src/Shaders/ShadersInclude/" + shaderIncludeFiles[index] + ".fx";
+            }
+
+            //commonjs js generation task
+            let jsTask = merge2([
+                gulp.src(config.workloads[moduleName].files),
+                gulp.src(shadersFiles).
+                    pipe(expect.real({ errorOnFailure: true }, shadersFiles)).
+                    pipe(uncommentShader()).
+                    pipe(appendSrcToVariable("BABYLON.Effect.ShadersStore", shadersName, config.build.outputDirectory + '/commonjs/' + moduleName + ".fx", true)),
+                gulp.src(shaderIncludeFiles).
+                    pipe(expect.real({ errorOnFailure: true }, shaderIncludeFiles)).
+                    pipe(uncommentShader()).
+                    pipe(appendSrcToVariable("BABYLON.Effect.IncludesShadersStore", includeShadersName, config.build.outputDirectory + '/commonjs/' + moduleName + ".include.fx", true))
+            ]).pipe(concat('index.js'))
+                .pipe(replace(extendsSearchRegex, ""))
+                .pipe(replace(decorateSearchRegex, ""))
+                .pipe(replace(referenceSearchRegex, ""))
+                .pipe(babylonModuleExports(moduleName, config.workloads[moduleName].dependUpon))
+                .pipe(gulp.dest(config.build.outputDirectory + '/modules/' + moduleName + '/'));
+
+            // es6 modules generation task
+            let es6Task = merge2([
+                gulp.src(config.workloads[moduleName].files),
+                gulp.src(shadersFiles).
+                    pipe(expect.real({ errorOnFailure: true }, shadersFiles)).
+                    pipe(uncommentShader()).
+                    pipe(appendSrcToVariable("BABYLON.Effect.ShadersStore", shadersName, config.build.outputDirectory + '/commonjs/' + moduleName + ".fx", true)),
+                gulp.src(shaderIncludeFiles).
+                    pipe(expect.real({ errorOnFailure: true }, shaderIncludeFiles)).
+                    pipe(uncommentShader()).
+                    pipe(appendSrcToVariable("BABYLON.Effect.IncludesShadersStore", includeShadersName, config.build.outputDirectory + '/commonjs/' + moduleName + ".include.fx", true))
+            ]).pipe(concat('es6.js'))
+                .pipe(replace(extendsSearchRegex, ""))
+                .pipe(replace(decorateSearchRegex, ""))
+                .pipe(replace(referenceSearchRegex, ""))
+                .pipe(babylonES6ModuleExports(moduleName, config.workloads[moduleName].dependUpon))
+                .pipe(gulp.dest(config.build.outputDirectory + '/modules/' + moduleName + '/'));
+
+            // dts genration task
+            let dtsFiles = config.workloads[moduleName].files.map(f => f.replace(".js", ".d.ts"))
+            let dtsTask = gulp.src(dtsFiles)
+                .pipe(concat("index.d.ts"))
+                .pipe(replace(/declare module BABYLON {/g, `declare module 'babylonjs/${moduleName}' {`))
+                .pipe(replace(/\ninterface /g, `\nexport interface `))
+                .pipe(dtsModuleSupport(moduleName, true, declared))
+                .pipe(gulp.dest(config.build.outputDirectory + '/modules/' + moduleName + '/'));
+
+            tasks.push(jsTask, es6Task, dtsTask);
+        });
+
+    // run da tasks man!
+    return merge2(tasks);
+})

+ 106 - 10
Tools/Publisher/index.js

@@ -1,11 +1,11 @@
 let prompt = require('prompt');
 let shelljs = require('shelljs');
-let fs = require('fs');
+let fs = require('fs-extra');
 
 let basePath = '../../dist/preview release';
 
 // This can be changed when we have a new major release.
-let minimumDependency = '>=3.1.0-alpha';
+let minimumDependency = '>=3.2.0-alpha';
 
 let packages = [
     {
@@ -47,24 +47,120 @@ let packages = [
 ];
 
 //check if logged in
+console.log("Using npm user:");
 let loginCheck = shelljs.exec('npm whoami');
-
+console.log("No that I can check, but - did you forget to run gulp typescript-all?");
 if (loginCheck.code === 0) {
     prompt.start();
 
     prompt.get(['version'], function (err, result) {
         let version = result.version;
         packages.forEach((package) => {
-            let packageJson = require(package.path + 'package.json');
-            packageJson.version = version;
-            if (packageJson.peerDependencies) packageJson.peerDependencies.babylonjs = minimumDependency;
-            fs.writeFileSync(package.path + 'package.json', JSON.stringify(packageJson, null, 4));
-            console.log('Publishing ' + package.name + " from " + package.path);
-            //publish the respected package
-            shelljs.exec('npm publish \"' + package.path + "\"");
+            if (package.name === "core") {
+                processCore(package, version);
+            } else {
+                let packageJson = require(package.path + 'package.json');
+                packageJson.version = version;
+                if (packageJson.peerDependencies) packageJson.peerDependencies.babylonjs = minimumDependency;
+                fs.writeFileSync(package.path + 'package.json', JSON.stringify(packageJson, null, 4));
+                console.log('Publishing ' + package.name + " from " + package.path);
+                //publish the respected package
+                shelljs.exec('npm publish \"' + package.path + "\"");
+            }
+
         });
+        console.log("done, please don't forget to commit the changes")
     });
 } else {
     console.log('not logged in.');
 }
 
+function processCore(package, version) {
+    let packageJson = require(package.path + 'package.json');
+
+    // make a temporary directory
+    fs.ensureDirSync(basePath + '/package/');
+
+    let files = [
+        {
+            path: basePath + "/babylon.d.ts",
+            objectName: "babylon.d.ts"
+        },
+        {
+            path: basePath + "/babylon.js",
+            objectName: "babylon.js"
+        },
+        {
+            path: basePath + "/babylon.max.js",
+            objectName: "babylon.max.js"
+        },
+        {
+            path: basePath + "/babylon.worker.js",
+            objectName: "babylon.worker.js"
+        },
+        {
+            path: basePath + "/Oimo.js",
+            objectName: "Oimo.js"
+        },
+        {
+            path: package.path + "readme.md",
+            objectName: "readme.md"
+        }
+    ];
+
+    fs.readdirSync(basePath + '/modules/').forEach(object => {
+        console.log(object);
+        if (fs.statSync(basePath + '/modules/' + object).isDirectory) {
+            files.push({
+                path: basePath + '/modules/' + object,
+                objectName: object,
+                isDir: true
+            });
+        }
+    })
+
+    //copy them to the package path
+    files.forEach(file => {
+        fs.copySync(file.path, basePath + '/package/' + file.objectName);
+    });
+
+    // update package.json
+    packageJson.version = version;
+    console.log("generating file list");
+    let packageFiles = ["package.json"];
+    files.forEach(file => {
+        if (!file.isDir) {
+            packageFiles.push(file.objectName);
+        } else {
+            //todo is it better to read the content and add it? leave it like that ATM
+            packageFiles.push(file.objectName + "/index.js", file.objectName + "/index.d.ts", file.objectName + "/es6.js")
+        }
+    });
+    console.log("updating package.json");
+    packageJson.files = packageFiles;
+    packageJson.main = "babylon.max.js";
+    packageJson.typings = "babylon.d.ts";
+
+    fs.writeFileSync(basePath + '/package/' + 'package.json', JSON.stringify(packageJson, null, 4));
+
+    console.log('Publishing ' + package.name + " from " + package.path);
+    //publish the respected package
+    shelljs.exec('npm publish \"' + basePath + '/package/' + "\"");
+
+    // remove package directory
+    fs.removeSync(basePath + '/package/');
+
+    // now update the main package.json
+    packageJson.files = packageJson.files.map(file => {
+        if (file !== 'package.json' && file !== 'readme.md') {
+            return 'dist/preview release/' + file;
+        } else {
+            return file;
+        }
+    });
+    packageJson.main = "dist/preview release/babylon.max.js";
+    packageJson.typings = "dist/preview release/babylon.d.ts";
+
+    fs.writeFileSync(package.path + 'package.json', JSON.stringify(packageJson, null, 4));
+}
+

+ 1 - 0
Tools/Publisher/package.json

@@ -9,6 +9,7 @@
   "author": "Raanan Weber",
   "license": "ISC",
   "dependencies": {
+    "fs-extra": "^5.0.0",
     "prompt": "^1.0.0",
     "shelljs": "^0.7.8"
   }

Разлика између датотеке није приказан због своје велике величине
+ 1388 - 0
dist/preview release/modules/actions/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 408 - 0
dist/preview release/modules/actions/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 1376 - 0
dist/preview release/modules/actions/index.js


Разлика између датотеке није приказан због своје велике величине
+ 292 - 0
dist/preview release/modules/additionalCameras/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 112 - 0
dist/preview release/modules/additionalCameras/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 296 - 0
dist/preview release/modules/additionalCameras/index.js


Разлика између датотеке није приказан због своје велике величине
+ 717 - 0
dist/preview release/modules/additionalMeshes/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 281 - 0
dist/preview release/modules/additionalMeshes/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 722 - 0
dist/preview release/modules/additionalMeshes/index.js


Разлика између датотеке није приказан због своје велике величине
+ 253 - 0
dist/preview release/modules/additionalPostProcess_blur/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 115 - 0
dist/preview release/modules/additionalPostProcess_blur/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 260 - 0
dist/preview release/modules/additionalPostProcess_blur/index.js


Разлика између датотеке није приказан због своје велике величине
+ 84 - 0
dist/preview release/modules/additionalPostProcess_fxaa/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 75 - 0
dist/preview release/modules/additionalPostProcess_fxaa/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 91 - 0
dist/preview release/modules/additionalPostProcess_fxaa/index.js


Разлика између датотеке није приказан због своје велике величине
+ 77 - 0
dist/preview release/modules/additionalPostProcess_highlights/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 73 - 0
dist/preview release/modules/additionalPostProcess_highlights/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 84 - 0
dist/preview release/modules/additionalPostProcess_highlights/index.js


Разлика између датотеке није приказан због своје велике величине
+ 474 - 0
dist/preview release/modules/additionalPostProcess_imageProcessing/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 218 - 0
dist/preview release/modules/additionalPostProcess_imageProcessing/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 481 - 0
dist/preview release/modules/additionalPostProcess_imageProcessing/index.js


Разлика између датотеке није приказан због своје велике величине
+ 1121 - 0
dist/preview release/modules/additionalPostProcesses/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 403 - 0
dist/preview release/modules/additionalPostProcesses/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 1117 - 0
dist/preview release/modules/additionalPostProcesses/index.js


Разлика између датотеке није приказан због своје велике величине
+ 1626 - 0
dist/preview release/modules/additionalRenderingPipeline/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 461 - 0
dist/preview release/modules/additionalRenderingPipeline/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 1630 - 0
dist/preview release/modules/additionalRenderingPipeline/index.js


Разлика између датотеке није приказан због своје велике величине
+ 1510 - 0
dist/preview release/modules/additionalTextures/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 375 - 0
dist/preview release/modules/additionalTextures/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 1510 - 0
dist/preview release/modules/additionalTextures/index.js


Разлика између датотеке није приказан због своје велике величине
+ 1737 - 0
dist/preview release/modules/animations/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 454 - 0
dist/preview release/modules/animations/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 1724 - 0
dist/preview release/modules/animations/index.js


Разлика између датотеке није приказан због своје велике величине
+ 1429 - 0
dist/preview release/modules/arcRotateCamera/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 268 - 0
dist/preview release/modules/arcRotateCamera/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 1432 - 0
dist/preview release/modules/arcRotateCamera/index.js


Разлика између датотеке није приказан због своје велике величине
+ 442 - 0
dist/preview release/modules/assetsManager/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 211 - 0
dist/preview release/modules/assetsManager/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 439 - 0
dist/preview release/modules/assetsManager/index.js


Разлика између датотеке није приказан због своје велике величине
+ 1064 - 0
dist/preview release/modules/audio/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 246 - 0
dist/preview release/modules/audio/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 1068 - 0
dist/preview release/modules/audio/index.js


Разлика између датотеке није приказан због своје велике величине
+ 1009 - 0
dist/preview release/modules/backgroundMaterial/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 365 - 0
dist/preview release/modules/backgroundMaterial/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 1016 - 0
dist/preview release/modules/backgroundMaterial/index.js


Разлика између датотеке није приказан због своје велике величине
+ 2021 - 0
dist/preview release/modules/bones/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 549 - 0
dist/preview release/modules/bones/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 2025 - 0
dist/preview release/modules/bones/index.js


Разлика између датотеке није приказан због своје велике величине
+ 898 - 0
dist/preview release/modules/cameraBehaviors/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 372 - 0
dist/preview release/modules/cameraBehaviors/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 903 - 0
dist/preview release/modules/cameraBehaviors/index.js


Разлика између датотеке није приказан због своје велике величине
+ 639 - 0
dist/preview release/modules/collisions/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 252 - 0
dist/preview release/modules/collisions/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 641 - 0
dist/preview release/modules/collisions/index.js


Разлика између датотеке није приказан због своје велике величине
+ 36399 - 0
dist/preview release/modules/core/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 10411 - 0
dist/preview release/modules/core/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 36285 - 0
dist/preview release/modules/core/index.js


Разлика између датотеке није приказан због своје велике величине
+ 561 - 0
dist/preview release/modules/csg/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 92 - 0
dist/preview release/modules/csg/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 568 - 0
dist/preview release/modules/csg/index.js


Разлика између датотеке није приказан због своје велике величине
+ 394 - 0
dist/preview release/modules/defaultRenderingPipeline/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 128 - 0
dist/preview release/modules/defaultRenderingPipeline/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 401 - 0
dist/preview release/modules/defaultRenderingPipeline/index.js


Разлика између датотеке није приказан због своје велике величине
+ 188 - 0
dist/preview release/modules/depthRenderer/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 80 - 0
dist/preview release/modules/depthRenderer/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 195 - 0
dist/preview release/modules/depthRenderer/index.js


Разлика између датотеке није приказан због своје велике величине
+ 422 - 0
dist/preview release/modules/directionalLight/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 242 - 0
dist/preview release/modules/directionalLight/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 428 - 0
dist/preview release/modules/directionalLight/index.js


Разлика између датотеке није приказан због своје велике величине
+ 536 - 0
dist/preview release/modules/environmentHelper/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 362 - 0
dist/preview release/modules/environmentHelper/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 543 - 0
dist/preview release/modules/environmentHelper/index.js


Разлика између датотеке није приказан због своје велике величине
+ 566 - 0
dist/preview release/modules/freeCamera/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 153 - 0
dist/preview release/modules/freeCamera/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 570 - 0
dist/preview release/modules/freeCamera/index.js


Разлика између датотеке није приказан због своје велике величине
+ 102 - 0
dist/preview release/modules/fresnel/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 81 - 0
dist/preview release/modules/fresnel/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 109 - 0
dist/preview release/modules/fresnel/index.js


Разлика између датотеке није приказан због своје велике величине
+ 1779 - 0
dist/preview release/modules/gamepad/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 432 - 0
dist/preview release/modules/gamepad/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 1770 - 0
dist/preview release/modules/gamepad/index.js


Разлика између датотеке није приказан због своје велике величине
+ 240 - 0
dist/preview release/modules/geometryBufferRenderer/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 87 - 0
dist/preview release/modules/geometryBufferRenderer/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 247 - 0
dist/preview release/modules/geometryBufferRenderer/index.js


Разлика између датотеке није приказан због своје велике величине
+ 206 - 0
dist/preview release/modules/gpuParticles/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 110 - 0
dist/preview release/modules/gpuParticles/index.d.ts


Разлика између датотеке није приказан због своје велике величине
+ 213 - 0
dist/preview release/modules/gpuParticles/index.js


Разлика између датотеке није приказан због своје велике величине
+ 1145 - 0
dist/preview release/modules/hdr/es6.js


Разлика између датотеке није приказан због своје велике величине
+ 363 - 0
dist/preview release/modules/hdr/index.d.ts


+ 0 - 0
dist/preview release/modules/hdr/index.js


Неке датотеке нису приказане због велике количине промена