David Catuhe 7 anos atrás
pai
commit
570f81c8df
30 arquivos alterados com 15656 adições e 14349 exclusões
  1. 2479 1840
      Playground/babylon.d.txt
  2. 22 22
      Viewer/dist/viewer.js
  3. 22 22
      Viewer/dist/viewer.min.js
  4. 3152 2519
      dist/preview release/babylon.d.ts
  5. 40 40
      dist/preview release/babylon.js
  6. 46 10
      dist/preview release/babylon.max.js
  7. 40 40
      dist/preview release/babylon.worker.js
  8. 9633 9000
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts
  9. 25 25
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js
  10. 46 10
      dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js
  11. 46 10
      dist/preview release/customConfigurations/minimalGLTFViewer/es6.js
  12. 46 10
      dist/preview release/es6.js
  13. 3 3
      dist/preview release/gui/babylon.gui.min.js
  14. 4 4
      dist/preview release/inspector/babylon.inspector.bundle.js
  15. 3 3
      dist/preview release/inspector/babylon.inspector.min.js
  16. 2 2
      dist/preview release/loaders/babylon.glTF1FileLoader.min.js
  17. 2 2
      dist/preview release/loaders/babylon.glTF2FileLoader.min.js
  18. 3 3
      dist/preview release/loaders/babylon.glTFFileLoader.min.js
  19. 1 1
      dist/preview release/loaders/babylon.objFileLoader.min.js
  20. 3 3
      dist/preview release/loaders/babylonjs.loaders.min.js
  21. 1 1
      dist/preview release/materialsLibrary/babylon.customMaterial.min.js
  22. 1 1
      dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.min.js
  23. 1 1
      dist/preview release/materialsLibrary/babylon.waterMaterial.min.js
  24. 3 3
      dist/preview release/materialsLibrary/babylonjs.materials.min.js
  25. 1 1
      dist/preview release/postProcessesLibrary/babylon.asciiArtPostProcess.min.js
  26. 1 1
      dist/preview release/postProcessesLibrary/babylon.digitalRainPostProcess.min.js
  27. 1 1
      dist/preview release/postProcessesLibrary/babylonjs.postProcess.min.js
  28. 6 749
      dist/preview release/typedocValidationBaseline.json
  29. 22 22
      dist/preview release/viewer/babylon.viewer.js
  30. 1 0
      src/Tools/babylon.observable.ts

Diferenças do arquivo suprimidas por serem muito extensas
+ 2479 - 1840
Playground/babylon.d.txt


Diferenças do arquivo suprimidas por serem muito extensas
+ 22 - 22
Viewer/dist/viewer.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 22 - 22
Viewer/dist/viewer.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 3152 - 2519
dist/preview release/babylon.d.ts


Diferenças do arquivo suprimidas por serem muito extensas
+ 40 - 40
dist/preview release/babylon.js


+ 46 - 10
dist/preview release/babylon.max.js

@@ -7346,6 +7346,7 @@ var BABYLON;
         };
         Observable.prototype._deferUnregister = function (observer) {
             var _this = this;
+            observer.unregisterOnNextCall = false;
             BABYLON.Tools.SetImmediate(function () {
                 _this.remove(observer);
             });
@@ -51067,7 +51068,7 @@ var BABYLON;
 
 
 
-//# sourceMappingURL=babylon.IParticleEmitterType.js.map
+//# sourceMappingURL=babylon.iParticleEmitterType.js.map
 
 var BABYLON;
 (function (BABYLON) {
@@ -51328,6 +51329,12 @@ var BABYLON;
              */
             this.pivot = BABYLON.Vector3.Zero();
             /**
+             * Must the particle be translated from its pivot point in its local space ?
+             * In this case, the pivot point is set at the origin of the particle local space and the particle is translated.
+             * Default : false
+             */
+            this.translateFromPivot = false;
+            /**
              * Is the particle active or not ?
              */
             this.alive = true;
@@ -51586,6 +51593,7 @@ var BABYLON;
                 return (p2.sqDistance - p1.sqDistance);
             };
             this._needs32Bits = false;
+            this._pivotBackTranslation = BABYLON.Vector3.Zero();
             this.name = name;
             this._scene = scene || BABYLON.Engine.LastCreatedScene;
             this._camera = scene.activeCamera;
@@ -51797,6 +51805,7 @@ var BABYLON;
             this._copy.uvs.z = 1.0;
             this._copy.uvs.w = 1.0;
             this._copy.color = null;
+            this._copy.translateFromPivot = false;
         };
         // _meshBuilder : inserts the shape model in the global SPS mesh
         SolidParticleSystem.prototype._meshBuilder = function (p, shape, positions, meshInd, indices, meshUV, uvs, meshCol, colors, meshNor, normals, idx, idxInShape, options) {
@@ -51819,6 +51828,12 @@ var BABYLON;
                 this._quaternionRotationYPR();
             }
             this._quaternionToRotationMatrix();
+            if (this._copy.translateFromPivot) {
+                this._pivotBackTranslation.copyFromFloats(0.0, 0.0, 0.0);
+            }
+            else {
+                this._pivotBackTranslation.copyFrom(this._copy.pivot);
+            }
             for (i = 0; i < shape.length; i++) {
                 this._vertex.x = shape[i].x;
                 this._vertex.y = shape[i].y;
@@ -51829,10 +51844,11 @@ var BABYLON;
                 this._vertex.x *= this._copy.scaling.x;
                 this._vertex.y *= this._copy.scaling.y;
                 this._vertex.z *= this._copy.scaling.z;
-                this._vertex.x += this._copy.pivot.x;
-                this._vertex.y += this._copy.pivot.y;
-                this._vertex.z += this._copy.pivot.z;
+                this._vertex.x -= this._copy.pivot.x;
+                this._vertex.y -= this._copy.pivot.y;
+                this._vertex.z -= this._copy.pivot.z;
                 BABYLON.Vector3.TransformCoordinatesToRef(this._vertex, this._rotMatrix, this._rotated);
+                this._rotated.addInPlace(this._pivotBackTranslation);
                 positions.push(this._copy.position.x + this._rotated.x, this._copy.position.y + this._rotated.y, this._copy.position.z + this._rotated.z);
                 if (meshUV) {
                     uvs.push((this._copy.uvs.z - this._copy.uvs.x) * meshUV[u] + this._copy.uvs.x, (this._copy.uvs.w - this._copy.uvs.y) * meshUV[u + 1] + this._copy.uvs.y);
@@ -51974,6 +51990,12 @@ var BABYLON;
                 this._quaternionRotationYPR();
             }
             this._quaternionToRotationMatrix();
+            if (this._copy.translateFromPivot) {
+                this._pivotBackTranslation.copyFromFloats(0.0, 0.0, 0.0);
+            }
+            else {
+                this._pivotBackTranslation.copyFrom(this._copy.pivot);
+            }
             this._shape = particle._model._shape;
             for (var pt = 0; pt < this._shape.length; pt++) {
                 this._vertex.x = this._shape[pt].x;
@@ -51985,10 +52007,11 @@ var BABYLON;
                 this._vertex.x *= this._copy.scaling.x;
                 this._vertex.y *= this._copy.scaling.y;
                 this._vertex.z *= this._copy.scaling.z;
-                this._vertex.x += this._copy.pivot.x;
-                this._vertex.y += this._copy.pivot.y;
-                this._vertex.z += this._copy.pivot.z;
+                this._vertex.x -= this._copy.pivot.x;
+                this._vertex.y -= this._copy.pivot.y;
+                this._vertex.z -= this._copy.pivot.z;
                 BABYLON.Vector3.TransformCoordinatesToRef(this._vertex, this._rotMatrix, this._rotated);
+                this._rotated.addInPlace(this._pivotBackTranslation);
                 this._positions32[particle._pos + pt * 3] = this._copy.position.x + this._rotated.x;
                 this._positions32[particle._pos + pt * 3 + 1] = this._copy.position.y + this._rotated.y;
                 this._positions32[particle._pos + pt * 3 + 2] = this._copy.position.z + this._rotated.z;
@@ -52143,6 +52166,16 @@ var BABYLON;
                         this._particle._rotationMatrix[7] = this._rotMatrix.m[9];
                         this._particle._rotationMatrix[8] = this._rotMatrix.m[10];
                     }
+                    if (this._particle.translateFromPivot) {
+                        this._pivotBackTranslation.x = 0.0;
+                        this._pivotBackTranslation.y = 0.0;
+                        this._pivotBackTranslation.z = 0.0;
+                    }
+                    else {
+                        this._pivotBackTranslation.x = this._particle.pivot.x;
+                        this._pivotBackTranslation.y = this._particle.pivot.y;
+                        this._pivotBackTranslation.z = this._particle.pivot.z;
+                    }
                     // particle vertex loop
                     for (pt = 0; pt < this._shape.length; pt++) {
                         idx = index + pt * 3;
@@ -52158,12 +52191,15 @@ var BABYLON;
                         this._vertex.x *= this._particle.scaling.x;
                         this._vertex.y *= this._particle.scaling.y;
                         this._vertex.z *= this._particle.scaling.z;
-                        this._vertex.x += this._particle.pivot.x;
-                        this._vertex.y += this._particle.pivot.y;
-                        this._vertex.z += this._particle.pivot.z;
+                        this._vertex.x -= this._particle.pivot.x;
+                        this._vertex.y -= this._particle.pivot.y;
+                        this._vertex.z -= this._particle.pivot.z;
                         this._rotated.x = this._vertex.x * this._particle._rotationMatrix[0] + this._vertex.y * this._particle._rotationMatrix[3] + this._vertex.z * this._particle._rotationMatrix[6];
                         this._rotated.y = this._vertex.x * this._particle._rotationMatrix[1] + this._vertex.y * this._particle._rotationMatrix[4] + this._vertex.z * this._particle._rotationMatrix[7];
                         this._rotated.z = this._vertex.x * this._particle._rotationMatrix[2] + this._vertex.y * this._particle._rotationMatrix[5] + this._vertex.z * this._particle._rotationMatrix[8];
+                        this._rotated.x += this._pivotBackTranslation.x;
+                        this._rotated.y += this._pivotBackTranslation.y;
+                        this._rotated.z += this._pivotBackTranslation.z;
                         this._positions32[idx] = this._particle.position.x + this._cam_axisX.x * this._rotated.x + this._cam_axisY.x * this._rotated.y + this._cam_axisZ.x * this._rotated.z;
                         this._positions32[idx + 1] = this._particle.position.y + this._cam_axisX.y * this._rotated.x + this._cam_axisY.y * this._rotated.y + this._cam_axisZ.y * this._rotated.z;
                         this._positions32[idx + 2] = this._particle.position.z + this._cam_axisX.z * this._rotated.x + this._cam_axisY.z * this._rotated.y + this._cam_axisZ.z * this._rotated.z;

Diferenças do arquivo suprimidas por serem muito extensas
+ 40 - 40
dist/preview release/babylon.worker.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 9633 - 9000
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts


Diferenças do arquivo suprimidas por serem muito extensas
+ 25 - 25
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js


+ 46 - 10
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js

@@ -7346,6 +7346,7 @@ var BABYLON;
         };
         Observable.prototype._deferUnregister = function (observer) {
             var _this = this;
+            observer.unregisterOnNextCall = false;
             BABYLON.Tools.SetImmediate(function () {
                 _this.remove(observer);
             });
@@ -51067,7 +51068,7 @@ var BABYLON;
 
 
 
-//# sourceMappingURL=babylon.IParticleEmitterType.js.map
+//# sourceMappingURL=babylon.iParticleEmitterType.js.map
 
 var BABYLON;
 (function (BABYLON) {
@@ -51122,6 +51123,12 @@ var BABYLON;
              */
             this.pivot = BABYLON.Vector3.Zero();
             /**
+             * Must the particle be translated from its pivot point in its local space ?
+             * In this case, the pivot point is set at the origin of the particle local space and the particle is translated.
+             * Default : false
+             */
+            this.translateFromPivot = false;
+            /**
              * Is the particle active or not ?
              */
             this.alive = true;
@@ -51380,6 +51387,7 @@ var BABYLON;
                 return (p2.sqDistance - p1.sqDistance);
             };
             this._needs32Bits = false;
+            this._pivotBackTranslation = BABYLON.Vector3.Zero();
             this.name = name;
             this._scene = scene || BABYLON.Engine.LastCreatedScene;
             this._camera = scene.activeCamera;
@@ -51591,6 +51599,7 @@ var BABYLON;
             this._copy.uvs.z = 1.0;
             this._copy.uvs.w = 1.0;
             this._copy.color = null;
+            this._copy.translateFromPivot = false;
         };
         // _meshBuilder : inserts the shape model in the global SPS mesh
         SolidParticleSystem.prototype._meshBuilder = function (p, shape, positions, meshInd, indices, meshUV, uvs, meshCol, colors, meshNor, normals, idx, idxInShape, options) {
@@ -51613,6 +51622,12 @@ var BABYLON;
                 this._quaternionRotationYPR();
             }
             this._quaternionToRotationMatrix();
+            if (this._copy.translateFromPivot) {
+                this._pivotBackTranslation.copyFromFloats(0.0, 0.0, 0.0);
+            }
+            else {
+                this._pivotBackTranslation.copyFrom(this._copy.pivot);
+            }
             for (i = 0; i < shape.length; i++) {
                 this._vertex.x = shape[i].x;
                 this._vertex.y = shape[i].y;
@@ -51623,10 +51638,11 @@ var BABYLON;
                 this._vertex.x *= this._copy.scaling.x;
                 this._vertex.y *= this._copy.scaling.y;
                 this._vertex.z *= this._copy.scaling.z;
-                this._vertex.x += this._copy.pivot.x;
-                this._vertex.y += this._copy.pivot.y;
-                this._vertex.z += this._copy.pivot.z;
+                this._vertex.x -= this._copy.pivot.x;
+                this._vertex.y -= this._copy.pivot.y;
+                this._vertex.z -= this._copy.pivot.z;
                 BABYLON.Vector3.TransformCoordinatesToRef(this._vertex, this._rotMatrix, this._rotated);
+                this._rotated.addInPlace(this._pivotBackTranslation);
                 positions.push(this._copy.position.x + this._rotated.x, this._copy.position.y + this._rotated.y, this._copy.position.z + this._rotated.z);
                 if (meshUV) {
                     uvs.push((this._copy.uvs.z - this._copy.uvs.x) * meshUV[u] + this._copy.uvs.x, (this._copy.uvs.w - this._copy.uvs.y) * meshUV[u + 1] + this._copy.uvs.y);
@@ -51768,6 +51784,12 @@ var BABYLON;
                 this._quaternionRotationYPR();
             }
             this._quaternionToRotationMatrix();
+            if (this._copy.translateFromPivot) {
+                this._pivotBackTranslation.copyFromFloats(0.0, 0.0, 0.0);
+            }
+            else {
+                this._pivotBackTranslation.copyFrom(this._copy.pivot);
+            }
             this._shape = particle._model._shape;
             for (var pt = 0; pt < this._shape.length; pt++) {
                 this._vertex.x = this._shape[pt].x;
@@ -51779,10 +51801,11 @@ var BABYLON;
                 this._vertex.x *= this._copy.scaling.x;
                 this._vertex.y *= this._copy.scaling.y;
                 this._vertex.z *= this._copy.scaling.z;
-                this._vertex.x += this._copy.pivot.x;
-                this._vertex.y += this._copy.pivot.y;
-                this._vertex.z += this._copy.pivot.z;
+                this._vertex.x -= this._copy.pivot.x;
+                this._vertex.y -= this._copy.pivot.y;
+                this._vertex.z -= this._copy.pivot.z;
                 BABYLON.Vector3.TransformCoordinatesToRef(this._vertex, this._rotMatrix, this._rotated);
+                this._rotated.addInPlace(this._pivotBackTranslation);
                 this._positions32[particle._pos + pt * 3] = this._copy.position.x + this._rotated.x;
                 this._positions32[particle._pos + pt * 3 + 1] = this._copy.position.y + this._rotated.y;
                 this._positions32[particle._pos + pt * 3 + 2] = this._copy.position.z + this._rotated.z;
@@ -51937,6 +51960,16 @@ var BABYLON;
                         this._particle._rotationMatrix[7] = this._rotMatrix.m[9];
                         this._particle._rotationMatrix[8] = this._rotMatrix.m[10];
                     }
+                    if (this._particle.translateFromPivot) {
+                        this._pivotBackTranslation.x = 0.0;
+                        this._pivotBackTranslation.y = 0.0;
+                        this._pivotBackTranslation.z = 0.0;
+                    }
+                    else {
+                        this._pivotBackTranslation.x = this._particle.pivot.x;
+                        this._pivotBackTranslation.y = this._particle.pivot.y;
+                        this._pivotBackTranslation.z = this._particle.pivot.z;
+                    }
                     // particle vertex loop
                     for (pt = 0; pt < this._shape.length; pt++) {
                         idx = index + pt * 3;
@@ -51952,12 +51985,15 @@ var BABYLON;
                         this._vertex.x *= this._particle.scaling.x;
                         this._vertex.y *= this._particle.scaling.y;
                         this._vertex.z *= this._particle.scaling.z;
-                        this._vertex.x += this._particle.pivot.x;
-                        this._vertex.y += this._particle.pivot.y;
-                        this._vertex.z += this._particle.pivot.z;
+                        this._vertex.x -= this._particle.pivot.x;
+                        this._vertex.y -= this._particle.pivot.y;
+                        this._vertex.z -= this._particle.pivot.z;
                         this._rotated.x = this._vertex.x * this._particle._rotationMatrix[0] + this._vertex.y * this._particle._rotationMatrix[3] + this._vertex.z * this._particle._rotationMatrix[6];
                         this._rotated.y = this._vertex.x * this._particle._rotationMatrix[1] + this._vertex.y * this._particle._rotationMatrix[4] + this._vertex.z * this._particle._rotationMatrix[7];
                         this._rotated.z = this._vertex.x * this._particle._rotationMatrix[2] + this._vertex.y * this._particle._rotationMatrix[5] + this._vertex.z * this._particle._rotationMatrix[8];
+                        this._rotated.x += this._pivotBackTranslation.x;
+                        this._rotated.y += this._pivotBackTranslation.y;
+                        this._rotated.z += this._pivotBackTranslation.z;
                         this._positions32[idx] = this._particle.position.x + this._cam_axisX.x * this._rotated.x + this._cam_axisY.x * this._rotated.y + this._cam_axisZ.x * this._rotated.z;
                         this._positions32[idx + 1] = this._particle.position.y + this._cam_axisX.y * this._rotated.x + this._cam_axisY.y * this._rotated.y + this._cam_axisZ.y * this._rotated.z;
                         this._positions32[idx + 2] = this._particle.position.z + this._cam_axisX.z * this._rotated.x + this._cam_axisY.z * this._rotated.y + this._cam_axisZ.z * this._rotated.z;

+ 46 - 10
dist/preview release/customConfigurations/minimalGLTFViewer/es6.js

@@ -7332,6 +7332,7 @@ var BABYLON;
         };
         Observable.prototype._deferUnregister = function (observer) {
             var _this = this;
+            observer.unregisterOnNextCall = false;
             BABYLON.Tools.SetImmediate(function () {
                 _this.remove(observer);
             });
@@ -51053,7 +51054,7 @@ var BABYLON;
 
 
 
-//# sourceMappingURL=babylon.IParticleEmitterType.js.map
+//# sourceMappingURL=babylon.iParticleEmitterType.js.map
 
 var BABYLON;
 (function (BABYLON) {
@@ -51108,6 +51109,12 @@ var BABYLON;
              */
             this.pivot = BABYLON.Vector3.Zero();
             /**
+             * Must the particle be translated from its pivot point in its local space ?
+             * In this case, the pivot point is set at the origin of the particle local space and the particle is translated.
+             * Default : false
+             */
+            this.translateFromPivot = false;
+            /**
              * Is the particle active or not ?
              */
             this.alive = true;
@@ -51366,6 +51373,7 @@ var BABYLON;
                 return (p2.sqDistance - p1.sqDistance);
             };
             this._needs32Bits = false;
+            this._pivotBackTranslation = BABYLON.Vector3.Zero();
             this.name = name;
             this._scene = scene || BABYLON.Engine.LastCreatedScene;
             this._camera = scene.activeCamera;
@@ -51577,6 +51585,7 @@ var BABYLON;
             this._copy.uvs.z = 1.0;
             this._copy.uvs.w = 1.0;
             this._copy.color = null;
+            this._copy.translateFromPivot = false;
         };
         // _meshBuilder : inserts the shape model in the global SPS mesh
         SolidParticleSystem.prototype._meshBuilder = function (p, shape, positions, meshInd, indices, meshUV, uvs, meshCol, colors, meshNor, normals, idx, idxInShape, options) {
@@ -51599,6 +51608,12 @@ var BABYLON;
                 this._quaternionRotationYPR();
             }
             this._quaternionToRotationMatrix();
+            if (this._copy.translateFromPivot) {
+                this._pivotBackTranslation.copyFromFloats(0.0, 0.0, 0.0);
+            }
+            else {
+                this._pivotBackTranslation.copyFrom(this._copy.pivot);
+            }
             for (i = 0; i < shape.length; i++) {
                 this._vertex.x = shape[i].x;
                 this._vertex.y = shape[i].y;
@@ -51609,10 +51624,11 @@ var BABYLON;
                 this._vertex.x *= this._copy.scaling.x;
                 this._vertex.y *= this._copy.scaling.y;
                 this._vertex.z *= this._copy.scaling.z;
-                this._vertex.x += this._copy.pivot.x;
-                this._vertex.y += this._copy.pivot.y;
-                this._vertex.z += this._copy.pivot.z;
+                this._vertex.x -= this._copy.pivot.x;
+                this._vertex.y -= this._copy.pivot.y;
+                this._vertex.z -= this._copy.pivot.z;
                 BABYLON.Vector3.TransformCoordinatesToRef(this._vertex, this._rotMatrix, this._rotated);
+                this._rotated.addInPlace(this._pivotBackTranslation);
                 positions.push(this._copy.position.x + this._rotated.x, this._copy.position.y + this._rotated.y, this._copy.position.z + this._rotated.z);
                 if (meshUV) {
                     uvs.push((this._copy.uvs.z - this._copy.uvs.x) * meshUV[u] + this._copy.uvs.x, (this._copy.uvs.w - this._copy.uvs.y) * meshUV[u + 1] + this._copy.uvs.y);
@@ -51754,6 +51770,12 @@ var BABYLON;
                 this._quaternionRotationYPR();
             }
             this._quaternionToRotationMatrix();
+            if (this._copy.translateFromPivot) {
+                this._pivotBackTranslation.copyFromFloats(0.0, 0.0, 0.0);
+            }
+            else {
+                this._pivotBackTranslation.copyFrom(this._copy.pivot);
+            }
             this._shape = particle._model._shape;
             for (var pt = 0; pt < this._shape.length; pt++) {
                 this._vertex.x = this._shape[pt].x;
@@ -51765,10 +51787,11 @@ var BABYLON;
                 this._vertex.x *= this._copy.scaling.x;
                 this._vertex.y *= this._copy.scaling.y;
                 this._vertex.z *= this._copy.scaling.z;
-                this._vertex.x += this._copy.pivot.x;
-                this._vertex.y += this._copy.pivot.y;
-                this._vertex.z += this._copy.pivot.z;
+                this._vertex.x -= this._copy.pivot.x;
+                this._vertex.y -= this._copy.pivot.y;
+                this._vertex.z -= this._copy.pivot.z;
                 BABYLON.Vector3.TransformCoordinatesToRef(this._vertex, this._rotMatrix, this._rotated);
+                this._rotated.addInPlace(this._pivotBackTranslation);
                 this._positions32[particle._pos + pt * 3] = this._copy.position.x + this._rotated.x;
                 this._positions32[particle._pos + pt * 3 + 1] = this._copy.position.y + this._rotated.y;
                 this._positions32[particle._pos + pt * 3 + 2] = this._copy.position.z + this._rotated.z;
@@ -51923,6 +51946,16 @@ var BABYLON;
                         this._particle._rotationMatrix[7] = this._rotMatrix.m[9];
                         this._particle._rotationMatrix[8] = this._rotMatrix.m[10];
                     }
+                    if (this._particle.translateFromPivot) {
+                        this._pivotBackTranslation.x = 0.0;
+                        this._pivotBackTranslation.y = 0.0;
+                        this._pivotBackTranslation.z = 0.0;
+                    }
+                    else {
+                        this._pivotBackTranslation.x = this._particle.pivot.x;
+                        this._pivotBackTranslation.y = this._particle.pivot.y;
+                        this._pivotBackTranslation.z = this._particle.pivot.z;
+                    }
                     // particle vertex loop
                     for (pt = 0; pt < this._shape.length; pt++) {
                         idx = index + pt * 3;
@@ -51938,12 +51971,15 @@ var BABYLON;
                         this._vertex.x *= this._particle.scaling.x;
                         this._vertex.y *= this._particle.scaling.y;
                         this._vertex.z *= this._particle.scaling.z;
-                        this._vertex.x += this._particle.pivot.x;
-                        this._vertex.y += this._particle.pivot.y;
-                        this._vertex.z += this._particle.pivot.z;
+                        this._vertex.x -= this._particle.pivot.x;
+                        this._vertex.y -= this._particle.pivot.y;
+                        this._vertex.z -= this._particle.pivot.z;
                         this._rotated.x = this._vertex.x * this._particle._rotationMatrix[0] + this._vertex.y * this._particle._rotationMatrix[3] + this._vertex.z * this._particle._rotationMatrix[6];
                         this._rotated.y = this._vertex.x * this._particle._rotationMatrix[1] + this._vertex.y * this._particle._rotationMatrix[4] + this._vertex.z * this._particle._rotationMatrix[7];
                         this._rotated.z = this._vertex.x * this._particle._rotationMatrix[2] + this._vertex.y * this._particle._rotationMatrix[5] + this._vertex.z * this._particle._rotationMatrix[8];
+                        this._rotated.x += this._pivotBackTranslation.x;
+                        this._rotated.y += this._pivotBackTranslation.y;
+                        this._rotated.z += this._pivotBackTranslation.z;
                         this._positions32[idx] = this._particle.position.x + this._cam_axisX.x * this._rotated.x + this._cam_axisY.x * this._rotated.y + this._cam_axisZ.x * this._rotated.z;
                         this._positions32[idx + 1] = this._particle.position.y + this._cam_axisX.y * this._rotated.x + this._cam_axisY.y * this._rotated.y + this._cam_axisZ.y * this._rotated.z;
                         this._positions32[idx + 2] = this._particle.position.z + this._cam_axisX.z * this._rotated.x + this._cam_axisY.z * this._rotated.y + this._cam_axisZ.z * this._rotated.z;

+ 46 - 10
dist/preview release/es6.js

@@ -7332,6 +7332,7 @@ var BABYLON;
         };
         Observable.prototype._deferUnregister = function (observer) {
             var _this = this;
+            observer.unregisterOnNextCall = false;
             BABYLON.Tools.SetImmediate(function () {
                 _this.remove(observer);
             });
@@ -51053,7 +51054,7 @@ var BABYLON;
 
 
 
-//# sourceMappingURL=babylon.IParticleEmitterType.js.map
+//# sourceMappingURL=babylon.iParticleEmitterType.js.map
 
 var BABYLON;
 (function (BABYLON) {
@@ -51314,6 +51315,12 @@ var BABYLON;
              */
             this.pivot = BABYLON.Vector3.Zero();
             /**
+             * Must the particle be translated from its pivot point in its local space ?
+             * In this case, the pivot point is set at the origin of the particle local space and the particle is translated.
+             * Default : false
+             */
+            this.translateFromPivot = false;
+            /**
              * Is the particle active or not ?
              */
             this.alive = true;
@@ -51572,6 +51579,7 @@ var BABYLON;
                 return (p2.sqDistance - p1.sqDistance);
             };
             this._needs32Bits = false;
+            this._pivotBackTranslation = BABYLON.Vector3.Zero();
             this.name = name;
             this._scene = scene || BABYLON.Engine.LastCreatedScene;
             this._camera = scene.activeCamera;
@@ -51783,6 +51791,7 @@ var BABYLON;
             this._copy.uvs.z = 1.0;
             this._copy.uvs.w = 1.0;
             this._copy.color = null;
+            this._copy.translateFromPivot = false;
         };
         // _meshBuilder : inserts the shape model in the global SPS mesh
         SolidParticleSystem.prototype._meshBuilder = function (p, shape, positions, meshInd, indices, meshUV, uvs, meshCol, colors, meshNor, normals, idx, idxInShape, options) {
@@ -51805,6 +51814,12 @@ var BABYLON;
                 this._quaternionRotationYPR();
             }
             this._quaternionToRotationMatrix();
+            if (this._copy.translateFromPivot) {
+                this._pivotBackTranslation.copyFromFloats(0.0, 0.0, 0.0);
+            }
+            else {
+                this._pivotBackTranslation.copyFrom(this._copy.pivot);
+            }
             for (i = 0; i < shape.length; i++) {
                 this._vertex.x = shape[i].x;
                 this._vertex.y = shape[i].y;
@@ -51815,10 +51830,11 @@ var BABYLON;
                 this._vertex.x *= this._copy.scaling.x;
                 this._vertex.y *= this._copy.scaling.y;
                 this._vertex.z *= this._copy.scaling.z;
-                this._vertex.x += this._copy.pivot.x;
-                this._vertex.y += this._copy.pivot.y;
-                this._vertex.z += this._copy.pivot.z;
+                this._vertex.x -= this._copy.pivot.x;
+                this._vertex.y -= this._copy.pivot.y;
+                this._vertex.z -= this._copy.pivot.z;
                 BABYLON.Vector3.TransformCoordinatesToRef(this._vertex, this._rotMatrix, this._rotated);
+                this._rotated.addInPlace(this._pivotBackTranslation);
                 positions.push(this._copy.position.x + this._rotated.x, this._copy.position.y + this._rotated.y, this._copy.position.z + this._rotated.z);
                 if (meshUV) {
                     uvs.push((this._copy.uvs.z - this._copy.uvs.x) * meshUV[u] + this._copy.uvs.x, (this._copy.uvs.w - this._copy.uvs.y) * meshUV[u + 1] + this._copy.uvs.y);
@@ -51960,6 +51976,12 @@ var BABYLON;
                 this._quaternionRotationYPR();
             }
             this._quaternionToRotationMatrix();
+            if (this._copy.translateFromPivot) {
+                this._pivotBackTranslation.copyFromFloats(0.0, 0.0, 0.0);
+            }
+            else {
+                this._pivotBackTranslation.copyFrom(this._copy.pivot);
+            }
             this._shape = particle._model._shape;
             for (var pt = 0; pt < this._shape.length; pt++) {
                 this._vertex.x = this._shape[pt].x;
@@ -51971,10 +51993,11 @@ var BABYLON;
                 this._vertex.x *= this._copy.scaling.x;
                 this._vertex.y *= this._copy.scaling.y;
                 this._vertex.z *= this._copy.scaling.z;
-                this._vertex.x += this._copy.pivot.x;
-                this._vertex.y += this._copy.pivot.y;
-                this._vertex.z += this._copy.pivot.z;
+                this._vertex.x -= this._copy.pivot.x;
+                this._vertex.y -= this._copy.pivot.y;
+                this._vertex.z -= this._copy.pivot.z;
                 BABYLON.Vector3.TransformCoordinatesToRef(this._vertex, this._rotMatrix, this._rotated);
+                this._rotated.addInPlace(this._pivotBackTranslation);
                 this._positions32[particle._pos + pt * 3] = this._copy.position.x + this._rotated.x;
                 this._positions32[particle._pos + pt * 3 + 1] = this._copy.position.y + this._rotated.y;
                 this._positions32[particle._pos + pt * 3 + 2] = this._copy.position.z + this._rotated.z;
@@ -52129,6 +52152,16 @@ var BABYLON;
                         this._particle._rotationMatrix[7] = this._rotMatrix.m[9];
                         this._particle._rotationMatrix[8] = this._rotMatrix.m[10];
                     }
+                    if (this._particle.translateFromPivot) {
+                        this._pivotBackTranslation.x = 0.0;
+                        this._pivotBackTranslation.y = 0.0;
+                        this._pivotBackTranslation.z = 0.0;
+                    }
+                    else {
+                        this._pivotBackTranslation.x = this._particle.pivot.x;
+                        this._pivotBackTranslation.y = this._particle.pivot.y;
+                        this._pivotBackTranslation.z = this._particle.pivot.z;
+                    }
                     // particle vertex loop
                     for (pt = 0; pt < this._shape.length; pt++) {
                         idx = index + pt * 3;
@@ -52144,12 +52177,15 @@ var BABYLON;
                         this._vertex.x *= this._particle.scaling.x;
                         this._vertex.y *= this._particle.scaling.y;
                         this._vertex.z *= this._particle.scaling.z;
-                        this._vertex.x += this._particle.pivot.x;
-                        this._vertex.y += this._particle.pivot.y;
-                        this._vertex.z += this._particle.pivot.z;
+                        this._vertex.x -= this._particle.pivot.x;
+                        this._vertex.y -= this._particle.pivot.y;
+                        this._vertex.z -= this._particle.pivot.z;
                         this._rotated.x = this._vertex.x * this._particle._rotationMatrix[0] + this._vertex.y * this._particle._rotationMatrix[3] + this._vertex.z * this._particle._rotationMatrix[6];
                         this._rotated.y = this._vertex.x * this._particle._rotationMatrix[1] + this._vertex.y * this._particle._rotationMatrix[4] + this._vertex.z * this._particle._rotationMatrix[7];
                         this._rotated.z = this._vertex.x * this._particle._rotationMatrix[2] + this._vertex.y * this._particle._rotationMatrix[5] + this._vertex.z * this._particle._rotationMatrix[8];
+                        this._rotated.x += this._pivotBackTranslation.x;
+                        this._rotated.y += this._pivotBackTranslation.y;
+                        this._rotated.z += this._pivotBackTranslation.z;
                         this._positions32[idx] = this._particle.position.x + this._cam_axisX.x * this._rotated.x + this._cam_axisY.x * this._rotated.y + this._cam_axisZ.x * this._rotated.z;
                         this._positions32[idx + 1] = this._particle.position.y + this._cam_axisX.y * this._rotated.x + this._cam_axisY.y * this._rotated.y + this._cam_axisZ.y * this._rotated.z;
                         this._positions32[idx + 2] = this._particle.position.z + this._cam_axisX.z * this._rotated.x + this._cam_axisY.z * this._rotated.y + this._cam_axisZ.z * this._rotated.z;

Diferenças do arquivo suprimidas por serem muito extensas
+ 3 - 3
dist/preview release/gui/babylon.gui.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 4 - 4
dist/preview release/inspector/babylon.inspector.bundle.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 3 - 3
dist/preview release/inspector/babylon.inspector.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 2 - 2
dist/preview release/loaders/babylon.glTF1FileLoader.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 2 - 2
dist/preview release/loaders/babylon.glTF2FileLoader.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 3 - 3
dist/preview release/loaders/babylon.glTFFileLoader.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 1
dist/preview release/loaders/babylon.objFileLoader.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 3 - 3
dist/preview release/loaders/babylonjs.loaders.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 1
dist/preview release/materialsLibrary/babylon.customMaterial.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 1
dist/preview release/materialsLibrary/babylon.shadowOnlyMaterial.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 1
dist/preview release/materialsLibrary/babylon.waterMaterial.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 3 - 3
dist/preview release/materialsLibrary/babylonjs.materials.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 1
dist/preview release/postProcessesLibrary/babylon.asciiArtPostProcess.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 1
dist/preview release/postProcessesLibrary/babylon.digitalRainPostProcess.min.js


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 1
dist/preview release/postProcessesLibrary/babylonjs.postProcess.min.js


+ 6 - 749
dist/preview release/typedocValidationBaseline.json

@@ -1,7 +1,7 @@
 {
-  "errors": 7689,
+  "errors": 7550,
   "babylon.typedoc.json": {
-    "errors": 7689,
+    "errors": 7550,
     "AnimationKeyInterpolation": {
       "Enumeration": {
         "Comments": {
@@ -15805,618 +15805,32 @@
       }
     },
     "Material": {
-      "Class": {
-        "Comments": {
-          "MissingText": true
-        }
-      },
-      "Constructor": {
-        "new Material": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "name": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "scene": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "doNotAdd": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        }
-      },
-      "Property": {
-        "_effect": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "_wasPreviouslyReady": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "alpha": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "alphaMode": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "animations": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "backFaceCulling": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "checkReadyOnEveryCall": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "checkReadyOnlyOnce": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "disableDepthWrite": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "doNotSerialize": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "fillMode": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "fogEnabled": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "forceDepthWrite": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "getRenderTargetTextures": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "id": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "isFrozen": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "name": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "needDepthPrePass": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "onBind": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "onCompiled": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "onDispose": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "onError": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "pointSize": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "pointsCloud": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "separateCullingPass": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "sideOrientation": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "state": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "storeEffectOnSubMeshes": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "wireframe": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "zOffset": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "AttributesDirtyFlag": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "ClockWiseSideOrientation": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "CounterClockWiseSideOrientation": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "FresnelDirtyFlag": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "LightDirtyFlag": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "LineListDrawMode": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "LineLoopDrawMode": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "LineStripDrawMode": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "MiscDirtyFlag": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "PointFillMode": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "PointListDrawMode": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "TextureDirtyFlag": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "TriangleFanDrawMode": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "TriangleFillMode": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "TriangleStripDrawMode": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "WireFrameFillMode": {
-          "Comments": {
-            "MissingText": true
-          }
-        }
-      },
-      "Method": {
-        "_preBind": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "effect": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "overrideOrientation": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "bind": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "world": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "mesh": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "bindForSubMesh": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "world": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "mesh": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "subMesh": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "bindOnlyWorldMatrix": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "world": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "bindSceneUniformBuffer": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "effect": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "sceneUbo": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "bindView": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "effect": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "bindViewProjection": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "effect": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "clone": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "name": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "dispose": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "forceDisposeEffect": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "forceDisposeTextures": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "forceCompilation": {
-          "Parameter": {
-            "mesh": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "onCompiled": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "options": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "freeze": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "getActiveTextures": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "getAlphaTestTexture": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "getBindedMeshes": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "getClassName": {
-          "Comments": {
-            "MissingReturn": true
-          }
-        },
-        "getEffect": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "getScene": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "hasTexture": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "texture": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "isReady": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "mesh": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "useInstances": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "isReadyForSubMesh": {
+      "Method": {
+        "_preBind": {
           "Comments": {
             "MissingText": true
           },
           "Parameter": {
-            "mesh": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "subMesh": {
+            "effect": {
               "Comments": {
                 "MissingText": true
               }
             },
-            "useInstances": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "markAsDirty": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "flag": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "markDirty": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "needAlphaBlending": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "needAlphaBlendingForMesh": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "mesh": {
+            "overrideOrientation": {
               "Comments": {
                 "MissingText": true
               }
             }
           }
         },
-        "needAlphaTesting": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "serialize": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
         "ToString": {
           "Comments": {
-            "MissingText": true,
-            "MissingReturn": true
-          }
-        },
-        "unbind": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "unfreeze": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "Parse": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "parsedMaterial": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "scene": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "rootUrl": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "ParseMultiMaterial": {
-          "Comments": {
             "MissingText": true
-          },
-          "Parameter": {
-            "parsedMultiMaterial": {
-              "Comments": {
-                "MissingText": true
-              }
-            },
-            "scene": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
           }
         }
       }
     },
     "MaterialDefines": {
-      "Class": {
-        "Comments": {
-          "MissingText": true
-        }
-      },
       "Property": {
         "_areAttributesDirty": {
           "Comments": {
@@ -16472,97 +15886,6 @@
           "Comments": {
             "MissingText": true
           }
-        },
-        "isDirty": {
-          "Comments": {
-            "MissingText": true
-          }
-        }
-      },
-      "Method": {
-        "cloneTo": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "other": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "isEqual": {
-          "Comments": {
-            "MissingText": true
-          },
-          "Parameter": {
-            "other": {
-              "Comments": {
-                "MissingText": true
-              }
-            }
-          }
-        },
-        "markAllAsDirty": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "markAsAttributesDirty": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "markAsFresnelDirty": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "markAsImageProcessingDirty": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "markAsLightDirty": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "markAsMiscDirty": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "markAsProcessed": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "markAsTexturesDirty": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "markAsUnprocessed": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "rebuild": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "reset": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "ToString": {
-          "Comments": {
-            "MissingText": true
-          }
         }
       }
     },
@@ -22308,27 +21631,6 @@
         }
       }
     },
-    "PBRBaseMaterial": {
-      "Property": {
-        "useLogarithmicDepth": {
-          "Comments": {
-            "MissingText": true
-          }
-        }
-      },
-      "Method": {
-        "buildUniformLayout": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "getAnimatables": {
-          "Comments": {
-            "MissingText": true
-          }
-        }
-      }
-    },
     "PBRBaseSimpleMaterial": {
       "Property": {
         "lightmapTexture": {
@@ -22345,51 +21647,6 @@
     },
     "PBRMaterial": {
       "Property": {
-        "ambientColor": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "bumpTexture": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "emissiveColor": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "emissiveTexture": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "lightmapTexture": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "opacityTexture": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "reflectionColor": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "reflectionTexture": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "refractionTexture": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
         "useLightmapAsShadowmap": {
           "Comments": {
             "MissingText": true

Diferenças do arquivo suprimidas por serem muito extensas
+ 22 - 22
dist/preview release/viewer/babylon.viewer.js


+ 1 - 0
src/Tools/babylon.observable.ts

@@ -233,6 +233,7 @@
         }
 
         private _deferUnregister(observer: Observer<T>): void {
+            observer.unregisterOnNextCall = false;
             Tools.SetImmediate(() => {
                 this.remove(observer);
             })