瀏覽代碼

Merge pull request #7306 from BabylonJS/new-ts

New ts
David Catuhe 5 年之前
父節點
當前提交
801f7ba4fa
共有 39 個文件被更改,包括 17793 次插入13133 次删除
  1. 2 2
      Tools/Gulp/helpers/gulp-validateTypedoc.js
  2. 2473 1884
      dist/preview release/babylon.d.ts
  3. 1 1
      dist/preview release/babylon.js
  4. 26 28
      dist/preview release/babylon.max.js
  5. 1 1
      dist/preview release/babylon.max.js.map
  6. 4945 3767
      dist/preview release/babylon.module.d.ts
  7. 3086 2246
      dist/preview release/documentation.d.ts
  8. 496 284
      dist/preview release/gui/babylon.gui.d.ts
  9. 992 568
      dist/preview release/gui/babylon.gui.module.d.ts
  10. 5 3
      dist/preview release/inspector/babylon.inspector.d.ts
  11. 10 6
      dist/preview release/inspector/babylon.inspector.module.d.ts
  12. 23 21
      dist/preview release/loaders/babylonjs.loaders.d.ts
  13. 46 42
      dist/preview release/loaders/babylonjs.loaders.module.d.ts
  14. 10 7
      dist/preview release/materialsLibrary/babylonjs.materials.d.ts
  15. 20 14
      dist/preview release/materialsLibrary/babylonjs.materials.module.d.ts
  16. 60 44
      dist/preview release/nodeEditor/babylon.nodeEditor.d.ts
  17. 120 88
      dist/preview release/nodeEditor/babylon.nodeEditor.module.d.ts
  18. 1 1
      dist/preview release/packagesSizeBaseLine.json
  19. 13 11
      dist/preview release/postProcessesLibrary/babylonjs.postProcess.d.ts
  20. 26 22
      dist/preview release/postProcessesLibrary/babylonjs.postProcess.module.d.ts
  21. 68 36
      dist/preview release/proceduralTexturesLibrary/babylonjs.proceduralTextures.d.ts
  22. 136 72
      dist/preview release/proceduralTexturesLibrary/babylonjs.proceduralTextures.module.d.ts
  23. 3 3
      dist/preview release/serializers/babylonjs.serializers.d.ts
  24. 6 6
      dist/preview release/serializers/babylonjs.serializers.module.d.ts
  25. 4945 3767
      dist/preview release/viewer/babylon.module.d.ts
  26. 104 70
      dist/preview release/viewer/babylon.viewer.d.ts
  27. 10 10
      dist/preview release/viewer/babylon.viewer.js
  28. 1 1
      dist/preview release/viewer/babylon.viewer.max.js
  29. 104 70
      dist/preview release/viewer/babylon.viewer.module.d.ts
  30. 46 42
      dist/preview release/viewer/babylonjs.loaders.module.d.ts
  31. 4 4
      package.json
  32. 1 1
      src/Engines/Extensions/engine.multiRender.ts
  33. 2 2
      src/Engines/engine.ts
  34. 1 1
      src/Engines/thinEngine.ts
  35. 1 1
      src/Gamepads/gamepadManager.ts
  36. 1 1
      src/LibDeclarations/webgl.d.ts
  37. 1 1
      src/Meshes/abstractMesh.ts
  38. 2 2
      src/Misc/promise.ts
  39. 1 3
      src/Misc/tools.ts

+ 2 - 2
Tools/Gulp/helpers/gulp-validateTypedoc.js

@@ -525,8 +525,7 @@ Validate.prototype.validateNaming = function(parent, node) {
     else if (node.kindString == "Interface" ||
         node.kindString == "Class" ||
         node.kindString == "Enumeration" ||
-        node.kindString == "Enumeration member" ||
-        node.kindString == "Accessor" ||
+        node.kindString == "Enumeration member" ||        
         node.kindString == "Type alias") {
         if (!Validate.pascalCase.test(node.name)) {
             this.errorCallback(parent ? parent.name : null,
@@ -539,6 +538,7 @@ Validate.prototype.validateNaming = function(parent, node) {
     }
     else if (node.kindString == "Method" ||
         node.kindString == "Property" ||
+        node.kindString == "Accessor" ||
         node.kindString == "Object literal") {
 
         // Only warn here as special properties such as FOV may be better capitalized 

文件差異過大導致無法顯示
+ 2473 - 1884
dist/preview release/babylon.d.ts


文件差異過大導致無法顯示
+ 1 - 1
dist/preview release/babylon.js


文件差異過大導致無法顯示
+ 26 - 28
dist/preview release/babylon.max.js


文件差異過大導致無法顯示
+ 1 - 1
dist/preview release/babylon.max.js.map


文件差異過大導致無法顯示
+ 4945 - 3767
dist/preview release/babylon.module.d.ts


文件差異過大導致無法顯示
+ 3086 - 2246
dist/preview release/documentation.d.ts


文件差異過大導致無法顯示
+ 496 - 284
dist/preview release/gui/babylon.gui.d.ts


文件差異過大導致無法顯示
+ 992 - 568
dist/preview release/gui/babylon.gui.module.d.ts


+ 5 - 3
dist/preview release/inspector/babylon.inspector.d.ts

@@ -51,9 +51,11 @@ declare module INSPECTOR {
         selectedLineContainerTitle: string;
         recorder: ReplayRecorder;
         private _onlyUseEulers;
-        onlyUseEulers: boolean;
+        get onlyUseEulers(): boolean;
+        set onlyUseEulers(value: boolean);
         private _ignoreBackfacesForPicking;
-        ignoreBackfacesForPicking: boolean;
+        get ignoreBackfacesForPicking(): boolean;
+        set ignoreBackfacesForPicking(value: boolean);
         init(propertyChangedObservable: BABYLON.Observable<PropertyChangedEvent>): void;
         prepareGLTFPlugin(loader: BABYLON.GLTFFileLoader): void;
         lightGizmos: Array<BABYLON.LightGizmo>;
@@ -1846,7 +1848,7 @@ declare module INSPECTOR {
         private static _CreateActionTabs;
         private static _CreateEmbedHost;
         static _CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): BABYLON.Nullable<HTMLDivElement>;
-        static readonly IsVisible: boolean;
+        static get IsVisible(): boolean;
         static EarlyAttachToLoader(): void;
         static Show(scene: BABYLON.Scene, userOptions: Partial<BABYLON.IInspectorOptions>): void;
         static _CreateCanvasContainer(parentControl: HTMLElement): void;

+ 10 - 6
dist/preview release/inspector/babylon.inspector.module.d.ts

@@ -62,9 +62,11 @@ declare module "babylonjs-inspector/components/globalState" {
         selectedLineContainerTitle: string;
         recorder: ReplayRecorder;
         private _onlyUseEulers;
-        onlyUseEulers: boolean;
+        get onlyUseEulers(): boolean;
+        set onlyUseEulers(value: boolean);
         private _ignoreBackfacesForPicking;
-        ignoreBackfacesForPicking: boolean;
+        get ignoreBackfacesForPicking(): boolean;
+        set ignoreBackfacesForPicking(value: boolean);
         init(propertyChangedObservable: Observable<PropertyChangedEvent>): void;
         prepareGLTFPlugin(loader: GLTFFileLoader): void;
         lightGizmos: Array<LightGizmo>;
@@ -2332,7 +2334,7 @@ declare module "babylonjs-inspector/inspector" {
         private static _CreateActionTabs;
         private static _CreateEmbedHost;
         static _CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): Nullable<HTMLDivElement>;
-        static readonly IsVisible: boolean;
+        static get IsVisible(): boolean;
         static EarlyAttachToLoader(): void;
         static Show(scene: Scene, userOptions: Partial<IInspectorOptions>): void;
         static _CreateCanvasContainer(parentControl: HTMLElement): void;
@@ -2404,9 +2406,11 @@ declare module INSPECTOR {
         selectedLineContainerTitle: string;
         recorder: ReplayRecorder;
         private _onlyUseEulers;
-        onlyUseEulers: boolean;
+        get onlyUseEulers(): boolean;
+        set onlyUseEulers(value: boolean);
         private _ignoreBackfacesForPicking;
-        ignoreBackfacesForPicking: boolean;
+        get ignoreBackfacesForPicking(): boolean;
+        set ignoreBackfacesForPicking(value: boolean);
         init(propertyChangedObservable: BABYLON.Observable<PropertyChangedEvent>): void;
         prepareGLTFPlugin(loader: BABYLON.GLTFFileLoader): void;
         lightGizmos: Array<BABYLON.LightGizmo>;
@@ -4199,7 +4203,7 @@ declare module INSPECTOR {
         private static _CreateActionTabs;
         private static _CreateEmbedHost;
         static _CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): BABYLON.Nullable<HTMLDivElement>;
-        static readonly IsVisible: boolean;
+        static get IsVisible(): boolean;
         static EarlyAttachToLoader(): void;
         static Show(scene: BABYLON.Scene, userOptions: Partial<BABYLON.IInspectorOptions>): void;
         static _CreateCanvasContainer(parentControl: HTMLElement): void;

+ 23 - 21
dist/preview release/loaders/babylonjs.loaders.d.ts

@@ -104,7 +104,7 @@ declare module BABYLON {
         /**
          * Raised when the asset has been parsed
          */
-        onParsed: (loaderData: IGLTFLoaderData) => void;
+        set onParsed(callback: (loaderData: IGLTFLoaderData) => void);
         /**
          * Set this property to false to disable incremental loading which delays the loader from calling the success callback until after loading the meshes and shaders.
          * Textures always loads asynchronously. For example, the success callback can compute the bounding information of the loaded meshes when incremental loading is disabled.
@@ -166,7 +166,7 @@ declare module BABYLON {
         /**
          * Callback raised when the loader creates a mesh after parsing the glTF properties of the mesh.
          */
-        onMeshLoaded: (mesh: AbstractMesh) => void;
+        set onMeshLoaded(callback: (mesh: AbstractMesh) => void);
         /**
          * Observable raised when the loader creates a texture after parsing the glTF properties of the texture.
          */
@@ -175,7 +175,7 @@ declare module BABYLON {
         /**
          * Callback raised when the loader creates a texture after parsing the glTF properties of the texture.
          */
-        onTextureLoaded: (texture: BaseTexture) => void;
+        set onTextureLoaded(callback: (texture: BaseTexture) => void);
         /**
          * Observable raised when the loader creates a material after parsing the glTF properties of the material.
          */
@@ -184,7 +184,7 @@ declare module BABYLON {
         /**
          * Callback raised when the loader creates a material after parsing the glTF properties of the material.
          */
-        onMaterialLoaded: (material: Material) => void;
+        set onMaterialLoaded(callback: (material: Material) => void);
         /**
          * Observable raised when the loader creates a camera after parsing the glTF properties of the camera.
          */
@@ -193,7 +193,7 @@ declare module BABYLON {
         /**
          * Callback raised when the loader creates a camera after parsing the glTF properties of the camera.
          */
-        onCameraLoaded: (camera: Camera) => void;
+        set onCameraLoaded(callback: (camera: Camera) => void);
         /**
          * Observable raised when the asset is completely loaded, immediately before the loader is disposed.
          * For assets with LODs, raised when all of the LODs are complete.
@@ -206,7 +206,7 @@ declare module BABYLON {
          * For assets with LODs, raised when all of the LODs are complete.
          * For assets without LODs, raised when the model is complete, immediately after the loader resolves the returned promise.
          */
-        onComplete: () => void;
+        set onComplete(callback: () => void);
         /**
          * Observable raised when an error occurs.
          */
@@ -215,7 +215,7 @@ declare module BABYLON {
         /**
          * Callback raised when an error occurs.
          */
-        onError: (reason: any) => void;
+        set onError(callback: (reason: any) => void);
         /**
          * Observable raised after the loader is disposed.
          */
@@ -224,7 +224,7 @@ declare module BABYLON {
         /**
          * Callback raised after the loader is disposed.
          */
-        onDispose: () => void;
+        set onDispose(callback: () => void);
         /**
          * Observable raised after a loader extension is created.
          * Set additional options for a loader extension in this event.
@@ -234,15 +234,17 @@ declare module BABYLON {
         /**
          * Callback raised after a loader extension is created.
          */
-        onExtensionLoaded: (extension: IGLTFLoaderExtension) => void;
+        set onExtensionLoaded(callback: (extension: IGLTFLoaderExtension) => void);
         /**
          * Defines if the loader logging is enabled.
          */
-        loggingEnabled: boolean;
+        get loggingEnabled(): boolean;
+        set loggingEnabled(value: boolean);
         /**
          * Defines if the loader should capture performance counters.
          */
-        capturePerformanceCounters: boolean;
+        get capturePerformanceCounters(): boolean;
+        set capturePerformanceCounters(value: boolean);
         /**
          * Defines if the loader should validate the asset.
          */
@@ -255,7 +257,7 @@ declare module BABYLON {
         /**
          * Callback raised after a loader extension is created.
          */
-        onValidated: (results: BABYLON.GLTF2.IGLTFValidationResults) => void;
+        set onValidated(callback: (results: BABYLON.GLTF2.IGLTFValidationResults) => void);
         private _loader;
         /**
          * Name of the loader ("gltf")
@@ -300,7 +302,7 @@ declare module BABYLON {
         /**
          * The loader state or null if the loader is not active.
          */
-        readonly loaderState: Nullable<GLTFLoaderState>;
+        get loaderState(): Nullable<GLTFLoaderState>;
         /**
          * Returns a promise that resolves when the asset is completely loaded.
          * @returns a promise that resolves when the asset is completely loaded.
@@ -859,7 +861,7 @@ declare module BABYLON.GLTF1 {
     export abstract class GLTFLoaderExtension {
         private _name;
         constructor(name: string);
-        readonly name: string;
+        get name(): string;
         /**
         * Defines an override for loading the runtime
         * Return true to stop further extensions from loading the runtime
@@ -1308,27 +1310,27 @@ declare module BABYLON.GLTF2 {
         /**
          * Gets the loader state.
          */
-        readonly state: Nullable<GLTFLoaderState>;
+        get state(): Nullable<GLTFLoaderState>;
         /**
          * The object that represents the glTF JSON.
          */
-        readonly gltf: IGLTF;
+        get gltf(): IGLTF;
         /**
          * The BIN chunk of a binary glTF.
          */
-        readonly bin: Nullable<IDataBuffer>;
+        get bin(): Nullable<IDataBuffer>;
         /**
          * The parent file loader.
          */
-        readonly parent: GLTFFileLoader;
+        get parent(): GLTFFileLoader;
         /**
          * The Babylon scene when loading the asset.
          */
-        readonly babylonScene: Scene;
+        get babylonScene(): Scene;
         /**
          * The root Babylon mesh when loading the asset.
          */
-        readonly rootBabylonMesh: Mesh;
+        get rootBabylonMesh(): Mesh;
         /** @hidden */
         constructor(parent: GLTFFileLoader);
         /** @hidden */
@@ -2135,7 +2137,7 @@ declare module BABYLON {
          * @param meshLoadOptions options for loading and parsing OBJ/MTL files.
          */
         constructor(meshLoadOptions?: MeshLoadOptions);
-        private static readonly currentMeshLoadOptions;
+        private static get currentMeshLoadOptions();
         /**
          * Calls synchronously the MTL file attached to this obj.
          * Load function or importMesh function don't enable to load 2 files in the same time asynchronously.

+ 46 - 42
dist/preview release/loaders/babylonjs.loaders.module.d.ts

@@ -120,7 +120,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Raised when the asset has been parsed
          */
-        onParsed: (loaderData: IGLTFLoaderData) => void;
+        set onParsed(callback: (loaderData: IGLTFLoaderData) => void);
         /**
          * Set this property to false to disable incremental loading which delays the loader from calling the success callback until after loading the meshes and shaders.
          * Textures always loads asynchronously. For example, the success callback can compute the bounding information of the loaded meshes when incremental loading is disabled.
@@ -182,7 +182,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised when the loader creates a mesh after parsing the glTF properties of the mesh.
          */
-        onMeshLoaded: (mesh: AbstractMesh) => void;
+        set onMeshLoaded(callback: (mesh: AbstractMesh) => void);
         /**
          * Observable raised when the loader creates a texture after parsing the glTF properties of the texture.
          */
@@ -191,7 +191,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised when the loader creates a texture after parsing the glTF properties of the texture.
          */
-        onTextureLoaded: (texture: BaseTexture) => void;
+        set onTextureLoaded(callback: (texture: BaseTexture) => void);
         /**
          * Observable raised when the loader creates a material after parsing the glTF properties of the material.
          */
@@ -200,7 +200,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised when the loader creates a material after parsing the glTF properties of the material.
          */
-        onMaterialLoaded: (material: Material) => void;
+        set onMaterialLoaded(callback: (material: Material) => void);
         /**
          * Observable raised when the loader creates a camera after parsing the glTF properties of the camera.
          */
@@ -209,7 +209,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised when the loader creates a camera after parsing the glTF properties of the camera.
          */
-        onCameraLoaded: (camera: Camera) => void;
+        set onCameraLoaded(callback: (camera: Camera) => void);
         /**
          * Observable raised when the asset is completely loaded, immediately before the loader is disposed.
          * For assets with LODs, raised when all of the LODs are complete.
@@ -222,7 +222,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
          * For assets with LODs, raised when all of the LODs are complete.
          * For assets without LODs, raised when the model is complete, immediately after the loader resolves the returned promise.
          */
-        onComplete: () => void;
+        set onComplete(callback: () => void);
         /**
          * Observable raised when an error occurs.
          */
@@ -231,7 +231,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised when an error occurs.
          */
-        onError: (reason: any) => void;
+        set onError(callback: (reason: any) => void);
         /**
          * Observable raised after the loader is disposed.
          */
@@ -240,7 +240,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised after the loader is disposed.
          */
-        onDispose: () => void;
+        set onDispose(callback: () => void);
         /**
          * Observable raised after a loader extension is created.
          * Set additional options for a loader extension in this event.
@@ -250,15 +250,17 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised after a loader extension is created.
          */
-        onExtensionLoaded: (extension: IGLTFLoaderExtension) => void;
+        set onExtensionLoaded(callback: (extension: IGLTFLoaderExtension) => void);
         /**
          * Defines if the loader logging is enabled.
          */
-        loggingEnabled: boolean;
+        get loggingEnabled(): boolean;
+        set loggingEnabled(value: boolean);
         /**
          * Defines if the loader should capture performance counters.
          */
-        capturePerformanceCounters: boolean;
+        get capturePerformanceCounters(): boolean;
+        set capturePerformanceCounters(value: boolean);
         /**
          * Defines if the loader should validate the asset.
          */
@@ -271,7 +273,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised after a loader extension is created.
          */
-        onValidated: (results: GLTF2.IGLTFValidationResults) => void;
+        set onValidated(callback: (results: GLTF2.IGLTFValidationResults) => void);
         private _loader;
         /**
          * Name of the loader ("gltf")
@@ -316,7 +318,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * The loader state or null if the loader is not active.
          */
-        readonly loaderState: Nullable<GLTFLoaderState>;
+        get loaderState(): Nullable<GLTFLoaderState>;
         /**
          * Returns a promise that resolves when the asset is completely loaded.
          * @returns a promise that resolves when the asset is completely loaded.
@@ -896,7 +898,7 @@ declare module "babylonjs-loaders/glTF/1.0/glTFLoader" {
     export abstract class GLTFLoaderExtension {
         private _name;
         constructor(name: string);
-        readonly name: string;
+        get name(): string;
         /**
         * Defines an override for loading the runtime
         * Return true to stop further extensions from loading the runtime
@@ -1399,27 +1401,27 @@ declare module "babylonjs-loaders/glTF/2.0/glTFLoader" {
         /**
          * Gets the loader state.
          */
-        readonly state: Nullable<GLTFLoaderState>;
+        get state(): Nullable<GLTFLoaderState>;
         /**
          * The object that represents the glTF JSON.
          */
-        readonly gltf: IGLTF;
+        get gltf(): IGLTF;
         /**
          * The BIN chunk of a binary glTF.
          */
-        readonly bin: Nullable<IDataBuffer>;
+        get bin(): Nullable<IDataBuffer>;
         /**
          * The parent file loader.
          */
-        readonly parent: GLTFFileLoader;
+        get parent(): GLTFFileLoader;
         /**
          * The Babylon scene when loading the asset.
          */
-        readonly babylonScene: Scene;
+        get babylonScene(): Scene;
         /**
          * The root Babylon mesh when loading the asset.
          */
-        readonly rootBabylonMesh: Mesh;
+        get rootBabylonMesh(): Mesh;
         /** @hidden */
         constructor(parent: GLTFFileLoader);
         /** @hidden */
@@ -2344,7 +2346,7 @@ declare module "babylonjs-loaders/OBJ/objFileLoader" {
          * @param meshLoadOptions options for loading and parsing OBJ/MTL files.
          */
         constructor(meshLoadOptions?: MeshLoadOptions);
-        private static readonly currentMeshLoadOptions;
+        private static get currentMeshLoadOptions();
         /**
          * Calls synchronously the MTL file attached to this obj.
          * Load function or importMesh function don't enable to load 2 files in the same time asynchronously.
@@ -2645,7 +2647,7 @@ declare module BABYLON {
         /**
          * Raised when the asset has been parsed
          */
-        onParsed: (loaderData: IGLTFLoaderData) => void;
+        set onParsed(callback: (loaderData: IGLTFLoaderData) => void);
         /**
          * Set this property to false to disable incremental loading which delays the loader from calling the success callback until after loading the meshes and shaders.
          * Textures always loads asynchronously. For example, the success callback can compute the bounding information of the loaded meshes when incremental loading is disabled.
@@ -2707,7 +2709,7 @@ declare module BABYLON {
         /**
          * Callback raised when the loader creates a mesh after parsing the glTF properties of the mesh.
          */
-        onMeshLoaded: (mesh: AbstractMesh) => void;
+        set onMeshLoaded(callback: (mesh: AbstractMesh) => void);
         /**
          * Observable raised when the loader creates a texture after parsing the glTF properties of the texture.
          */
@@ -2716,7 +2718,7 @@ declare module BABYLON {
         /**
          * Callback raised when the loader creates a texture after parsing the glTF properties of the texture.
          */
-        onTextureLoaded: (texture: BaseTexture) => void;
+        set onTextureLoaded(callback: (texture: BaseTexture) => void);
         /**
          * Observable raised when the loader creates a material after parsing the glTF properties of the material.
          */
@@ -2725,7 +2727,7 @@ declare module BABYLON {
         /**
          * Callback raised when the loader creates a material after parsing the glTF properties of the material.
          */
-        onMaterialLoaded: (material: Material) => void;
+        set onMaterialLoaded(callback: (material: Material) => void);
         /**
          * Observable raised when the loader creates a camera after parsing the glTF properties of the camera.
          */
@@ -2734,7 +2736,7 @@ declare module BABYLON {
         /**
          * Callback raised when the loader creates a camera after parsing the glTF properties of the camera.
          */
-        onCameraLoaded: (camera: Camera) => void;
+        set onCameraLoaded(callback: (camera: Camera) => void);
         /**
          * Observable raised when the asset is completely loaded, immediately before the loader is disposed.
          * For assets with LODs, raised when all of the LODs are complete.
@@ -2747,7 +2749,7 @@ declare module BABYLON {
          * For assets with LODs, raised when all of the LODs are complete.
          * For assets without LODs, raised when the model is complete, immediately after the loader resolves the returned promise.
          */
-        onComplete: () => void;
+        set onComplete(callback: () => void);
         /**
          * Observable raised when an error occurs.
          */
@@ -2756,7 +2758,7 @@ declare module BABYLON {
         /**
          * Callback raised when an error occurs.
          */
-        onError: (reason: any) => void;
+        set onError(callback: (reason: any) => void);
         /**
          * Observable raised after the loader is disposed.
          */
@@ -2765,7 +2767,7 @@ declare module BABYLON {
         /**
          * Callback raised after the loader is disposed.
          */
-        onDispose: () => void;
+        set onDispose(callback: () => void);
         /**
          * Observable raised after a loader extension is created.
          * Set additional options for a loader extension in this event.
@@ -2775,15 +2777,17 @@ declare module BABYLON {
         /**
          * Callback raised after a loader extension is created.
          */
-        onExtensionLoaded: (extension: IGLTFLoaderExtension) => void;
+        set onExtensionLoaded(callback: (extension: IGLTFLoaderExtension) => void);
         /**
          * Defines if the loader logging is enabled.
          */
-        loggingEnabled: boolean;
+        get loggingEnabled(): boolean;
+        set loggingEnabled(value: boolean);
         /**
          * Defines if the loader should capture performance counters.
          */
-        capturePerformanceCounters: boolean;
+        get capturePerformanceCounters(): boolean;
+        set capturePerformanceCounters(value: boolean);
         /**
          * Defines if the loader should validate the asset.
          */
@@ -2796,7 +2800,7 @@ declare module BABYLON {
         /**
          * Callback raised after a loader extension is created.
          */
-        onValidated: (results: BABYLON.GLTF2.IGLTFValidationResults) => void;
+        set onValidated(callback: (results: BABYLON.GLTF2.IGLTFValidationResults) => void);
         private _loader;
         /**
          * Name of the loader ("gltf")
@@ -2841,7 +2845,7 @@ declare module BABYLON {
         /**
          * The loader state or null if the loader is not active.
          */
-        readonly loaderState: Nullable<GLTFLoaderState>;
+        get loaderState(): Nullable<GLTFLoaderState>;
         /**
          * Returns a promise that resolves when the asset is completely loaded.
          * @returns a promise that resolves when the asset is completely loaded.
@@ -3400,7 +3404,7 @@ declare module BABYLON.GLTF1 {
     export abstract class GLTFLoaderExtension {
         private _name;
         constructor(name: string);
-        readonly name: string;
+        get name(): string;
         /**
         * Defines an override for loading the runtime
         * Return true to stop further extensions from loading the runtime
@@ -3849,27 +3853,27 @@ declare module BABYLON.GLTF2 {
         /**
          * Gets the loader state.
          */
-        readonly state: Nullable<GLTFLoaderState>;
+        get state(): Nullable<GLTFLoaderState>;
         /**
          * The object that represents the glTF JSON.
          */
-        readonly gltf: IGLTF;
+        get gltf(): IGLTF;
         /**
          * The BIN chunk of a binary glTF.
          */
-        readonly bin: Nullable<IDataBuffer>;
+        get bin(): Nullable<IDataBuffer>;
         /**
          * The parent file loader.
          */
-        readonly parent: GLTFFileLoader;
+        get parent(): GLTFFileLoader;
         /**
          * The Babylon scene when loading the asset.
          */
-        readonly babylonScene: Scene;
+        get babylonScene(): Scene;
         /**
          * The root Babylon mesh when loading the asset.
          */
-        readonly rootBabylonMesh: Mesh;
+        get rootBabylonMesh(): Mesh;
         /** @hidden */
         constructor(parent: GLTFFileLoader);
         /** @hidden */
@@ -4676,7 +4680,7 @@ declare module BABYLON {
          * @param meshLoadOptions options for loading and parsing OBJ/MTL files.
          */
         constructor(meshLoadOptions?: MeshLoadOptions);
-        private static readonly currentMeshLoadOptions;
+        private static get currentMeshLoadOptions();
         /**
          * Calls synchronously the MTL file attached to this obj.
          * Load function or importMesh function don't enable to load 2 files in the same time asynchronously.

+ 10 - 7
dist/preview release/materialsLibrary/babylonjs.materials.d.ts

@@ -232,7 +232,8 @@ declare module BABYLON {
         private _renderId;
         private _furTime;
         constructor(name: string, scene: BABYLON.Scene);
-        furTime: number;
+        get furTime(): number;
+        set furTime(furTime: number);
         needAlphaBlending(): boolean;
         needAlphaTesting(): boolean;
         getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
@@ -556,7 +557,8 @@ declare module BABYLON {
         needAlphaBlending(): boolean;
         needAlphaTesting(): boolean;
         getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
-        activeLight: BABYLON.IShadowLight;
+        get activeLight(): BABYLON.IShadowLight;
+        set activeLight(light: BABYLON.IShadowLight);
         isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
         bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
         clone(name: string): ShadowOnlyMaterial;
@@ -962,18 +964,19 @@ declare module BABYLON {
         /**
          * Gets a boolean indicating that current material needs to register RTT
          */
-        readonly hasRenderTargetTextures: boolean;
+        get hasRenderTargetTextures(): boolean;
         /**
         * Constructor
         */
         constructor(name: string, scene: BABYLON.Scene, renderTargetSize?: BABYLON.Vector2);
-        useLogarithmicDepth: boolean;
-        readonly refractionTexture: BABYLON.Nullable<BABYLON.RenderTargetTexture>;
-        readonly reflectionTexture: BABYLON.Nullable<BABYLON.RenderTargetTexture>;
+        get useLogarithmicDepth(): boolean;
+        set useLogarithmicDepth(value: boolean);
+        get refractionTexture(): BABYLON.Nullable<BABYLON.RenderTargetTexture>;
+        get reflectionTexture(): BABYLON.Nullable<BABYLON.RenderTargetTexture>;
         addToRenderList(node: any): void;
         enableRenderTargets(enable: boolean): void;
         getRenderList(): BABYLON.Nullable<BABYLON.AbstractMesh[]>;
-        readonly renderTargetsEnabled: boolean;
+        get renderTargetsEnabled(): boolean;
         needAlphaBlending(): boolean;
         needAlphaTesting(): boolean;
         getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;

+ 20 - 14
dist/preview release/materialsLibrary/babylonjs.materials.module.d.ts

@@ -348,7 +348,8 @@ declare module "babylonjs-materials/fur/furMaterial" {
         private _renderId;
         private _furTime;
         constructor(name: string, scene: Scene);
-        furTime: number;
+        get furTime(): number;
+        set furTime(furTime: number);
         needAlphaBlending(): boolean;
         needAlphaTesting(): boolean;
         getAlphaTestTexture(): Nullable<BaseTexture>;
@@ -876,7 +877,8 @@ declare module "babylonjs-materials/shadowOnly/shadowOnlyMaterial" {
         needAlphaBlending(): boolean;
         needAlphaTesting(): boolean;
         getAlphaTestTexture(): Nullable<BaseTexture>;
-        activeLight: IShadowLight;
+        get activeLight(): IShadowLight;
+        set activeLight(light: IShadowLight);
         isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
         bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
         clone(name: string): ShadowOnlyMaterial;
@@ -1460,18 +1462,19 @@ declare module "babylonjs-materials/water/waterMaterial" {
         /**
          * Gets a boolean indicating that current material needs to register RTT
          */
-        readonly hasRenderTargetTextures: boolean;
+        get hasRenderTargetTextures(): boolean;
         /**
         * Constructor
         */
         constructor(name: string, scene: Scene, renderTargetSize?: Vector2);
-        useLogarithmicDepth: boolean;
-        readonly refractionTexture: Nullable<RenderTargetTexture>;
-        readonly reflectionTexture: Nullable<RenderTargetTexture>;
+        get useLogarithmicDepth(): boolean;
+        set useLogarithmicDepth(value: boolean);
+        get refractionTexture(): Nullable<RenderTargetTexture>;
+        get reflectionTexture(): Nullable<RenderTargetTexture>;
         addToRenderList(node: any): void;
         enableRenderTargets(enable: boolean): void;
         getRenderList(): Nullable<AbstractMesh[]>;
-        readonly renderTargetsEnabled: boolean;
+        get renderTargetsEnabled(): boolean;
         needAlphaBlending(): boolean;
         needAlphaTesting(): boolean;
         getAlphaTestTexture(): Nullable<BaseTexture>;
@@ -1794,7 +1797,8 @@ declare module BABYLON {
         private _renderId;
         private _furTime;
         constructor(name: string, scene: BABYLON.Scene);
-        furTime: number;
+        get furTime(): number;
+        set furTime(furTime: number);
         needAlphaBlending(): boolean;
         needAlphaTesting(): boolean;
         getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
@@ -2118,7 +2122,8 @@ declare module BABYLON {
         needAlphaBlending(): boolean;
         needAlphaTesting(): boolean;
         getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
-        activeLight: BABYLON.IShadowLight;
+        get activeLight(): BABYLON.IShadowLight;
+        set activeLight(light: BABYLON.IShadowLight);
         isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
         bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
         clone(name: string): ShadowOnlyMaterial;
@@ -2524,18 +2529,19 @@ declare module BABYLON {
         /**
          * Gets a boolean indicating that current material needs to register RTT
          */
-        readonly hasRenderTargetTextures: boolean;
+        get hasRenderTargetTextures(): boolean;
         /**
         * Constructor
         */
         constructor(name: string, scene: BABYLON.Scene, renderTargetSize?: BABYLON.Vector2);
-        useLogarithmicDepth: boolean;
-        readonly refractionTexture: BABYLON.Nullable<BABYLON.RenderTargetTexture>;
-        readonly reflectionTexture: BABYLON.Nullable<BABYLON.RenderTargetTexture>;
+        get useLogarithmicDepth(): boolean;
+        set useLogarithmicDepth(value: boolean);
+        get refractionTexture(): BABYLON.Nullable<BABYLON.RenderTargetTexture>;
+        get reflectionTexture(): BABYLON.Nullable<BABYLON.RenderTargetTexture>;
         addToRenderList(node: any): void;
         enableRenderTargets(enable: boolean): void;
         getRenderList(): BABYLON.Nullable<BABYLON.AbstractMesh[]>;
-        readonly renderTargetsEnabled: boolean;
+        get renderTargetsEnabled(): boolean;
         needAlphaBlending(): boolean;
         needAlphaTesting(): boolean;
         getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;

+ 60 - 44
dist/preview release/nodeEditor/babylon.nodeEditor.d.ts

@@ -63,7 +63,7 @@ declare module NODEEDITOR {
         private _globalState;
         private _onCandidateLinkMovedObserver;
         delegatedPort: BABYLON.Nullable<NodePort>;
-        readonly element: HTMLDivElement;
+        get element(): HTMLDivElement;
         refresh(): void;
         constructor(portContainer: HTMLElement, connectionPoint: BABYLON.NodeMaterialConnectionPoint, node: GraphNode, globalState: GlobalState);
         dispose(): void;
@@ -123,15 +123,22 @@ declare module NODEEDITOR {
         private readonly CloseSVG;
         private readonly ExpandSVG;
         private readonly CollapseSVG;
-        isCollapsed: boolean;
+        get isCollapsed(): boolean;
         private _createInputPort;
-        readonly nodes: GraphNode[];
-        name: string;
-        color: BABYLON.Color3;
-        x: number;
-        y: number;
-        width: number;
-        height: number;
+        set isCollapsed(value: boolean);
+        get nodes(): GraphNode[];
+        get name(): string;
+        set name(value: string);
+        get color(): BABYLON.Color3;
+        set color(value: BABYLON.Color3);
+        get x(): number;
+        set x(value: number);
+        get y(): number;
+        set y(value: number);
+        get width(): number;
+        set width(value: number);
+        get height(): number;
+        set height(value: number);
         constructor(candidate: BABYLON.Nullable<HTMLDivElement>, canvas: GraphCanvasComponent, doNotCaptureNodes?: boolean);
         refresh(): void;
         addNode(node: GraphNode): void;
@@ -159,11 +166,12 @@ declare module NODEEDITOR {
         private _onSelectionChangedObserver;
         private _isVisible;
         onDisposedObservable: BABYLON.Observable<NodeLink>;
-        isVisible: boolean;
-        readonly portA: NodePort;
-        readonly portB: NodePort | undefined;
-        readonly nodeA: GraphNode;
-        readonly nodeB: GraphNode | undefined;
+        get isVisible(): boolean;
+        set isVisible(value: boolean);
+        get portA(): NodePort;
+        get portB(): NodePort | undefined;
+        get nodeA(): GraphNode;
+        get nodeB(): GraphNode | undefined;
         update(endX?: number, endY?: number, straight?: boolean): void;
         constructor(graphCanvas: GraphCanvasComponent, portA: NodePort, nodeA: GraphNode, portB?: NodePort, nodeB?: GraphNode);
         onClick(): void;
@@ -207,21 +215,25 @@ declare module NODEEDITOR {
         private _ctrlKeyIsPressed;
         private _oldY;
         _frameIsMoving: boolean;
-        gridSize: number;
-        readonly globalState: GlobalState;
-        readonly nodes: GraphNode[];
-        readonly links: NodeLink[];
-        readonly frames: GraphFrame[];
-        zoom: number;
-        x: number;
-        y: number;
-        readonly selectedNodes: GraphNode[];
-        readonly selectedLink: BABYLON.Nullable<NodeLink>;
-        readonly selectedFrame: BABYLON.Nullable<GraphFrame>;
-        readonly canvasContainer: HTMLDivElement;
-        readonly svgCanvas: HTMLElement;
-        readonly selectionContainer: HTMLDivElement;
-        readonly frameContainer: HTMLDivElement;
+        get gridSize(): number;
+        set gridSize(value: number);
+        get globalState(): GlobalState;
+        get nodes(): GraphNode[];
+        get links(): NodeLink[];
+        get frames(): GraphFrame[];
+        get zoom(): number;
+        set zoom(value: number);
+        get x(): number;
+        set x(value: number);
+        get y(): number;
+        set y(value: number);
+        get selectedNodes(): GraphNode[];
+        get selectedLink(): BABYLON.Nullable<NodeLink>;
+        get selectedFrame(): BABYLON.Nullable<GraphFrame>;
+        get canvasContainer(): HTMLDivElement;
+        get svgCanvas(): HTMLElement;
+        get selectionContainer(): HTMLDivElement;
+        get frameContainer(): HTMLDivElement;
         constructor(props: IGraphCanvasComponentProps);
         getGridPosition(position: number, useCeil?: boolean): number;
         getGridPositionCeil(position: number): number;
@@ -757,7 +769,7 @@ declare module NODEEDITOR {
         isEmbedded: boolean;
         loadAsCubeTexture: boolean;
     }> {
-        readonly textureBlock: BABYLON.TextureBlock | BABYLON.ReflectionTextureBlock;
+        get textureBlock(): BABYLON.TextureBlock | BABYLON.ReflectionTextureBlock;
         constructor(props: IPropertyComponentProps);
         UNSAFE_componentWillUpdate(nextProps: IPropertyComponentProps, nextState: {
             isEmbedded: boolean;
@@ -937,19 +949,23 @@ declare module NODEEDITOR {
         private _isSelected;
         private _displayManager;
         private _isVisible;
-        isVisible: boolean;
-        readonly outputPorts: NodePort[];
-        readonly inputPorts: NodePort[];
-        readonly links: NodeLink[];
-        readonly gridAlignedX: number;
-        readonly gridAlignedY: number;
-        x: number;
-        y: number;
-        readonly width: number;
-        readonly height: number;
-        readonly id: number;
-        readonly name: string;
-        isSelected: boolean;
+        get isVisible(): boolean;
+        set isVisible(value: boolean);
+        get outputPorts(): NodePort[];
+        get inputPorts(): NodePort[];
+        get links(): NodeLink[];
+        get gridAlignedX(): number;
+        get gridAlignedY(): number;
+        get x(): number;
+        set x(value: number);
+        get y(): number;
+        set y(value: number);
+        get width(): number;
+        get height(): number;
+        get id(): number;
+        get name(): string;
+        get isSelected(): boolean;
+        set isSelected(value: boolean);
         constructor(block: BABYLON.NodeMaterialBlock, globalState: GlobalState);
         isOverlappingFrame(frame: GraphFrame): boolean;
         getPortForConnectionPoint(point: BABYLON.NodeMaterialConnectionPoint): BABYLON.Nullable<NodePort>;
@@ -987,7 +1003,7 @@ declare module NODEEDITOR {
         onDepthPrePassChanged: BABYLON.Observable<void>;
         onAnimationCommandActivated: BABYLON.Observable<void>;
         onCandidateLinkMoved: BABYLON.Observable<BABYLON.Nullable<BABYLON.Vector2>>;
-        onSelectionBoxMoved: BABYLON.Observable<ClientRect | DOMRect>;
+        onSelectionBoxMoved: BABYLON.Observable<DOMRect | ClientRect>;
         onFrameCreated: BABYLON.Observable<GraphFrame>;
         onCandidatePortSelected: BABYLON.Observable<BABYLON.Nullable<NodePort>>;
         onGetNodeFromBlock: (block: BABYLON.NodeMaterialBlock) => GraphNode;

+ 120 - 88
dist/preview release/nodeEditor/babylon.nodeEditor.module.d.ts

@@ -133,7 +133,7 @@ declare module "babylonjs-node-editor/diagram/nodePort" {
         private _globalState;
         private _onCandidateLinkMovedObserver;
         delegatedPort: Nullable<NodePort>;
-        readonly element: HTMLDivElement;
+        get element(): HTMLDivElement;
         refresh(): void;
         constructor(portContainer: HTMLElement, connectionPoint: NodeMaterialConnectionPoint, node: GraphNode, globalState: GlobalState);
         dispose(): void;
@@ -198,15 +198,22 @@ declare module "babylonjs-node-editor/diagram/graphFrame" {
         private readonly CloseSVG;
         private readonly ExpandSVG;
         private readonly CollapseSVG;
-        isCollapsed: boolean;
+        get isCollapsed(): boolean;
         private _createInputPort;
-        readonly nodes: GraphNode[];
-        name: string;
-        color: Color3;
-        x: number;
-        y: number;
-        width: number;
-        height: number;
+        set isCollapsed(value: boolean);
+        get nodes(): GraphNode[];
+        get name(): string;
+        set name(value: string);
+        get color(): Color3;
+        set color(value: Color3);
+        get x(): number;
+        set x(value: number);
+        get y(): number;
+        set y(value: number);
+        get width(): number;
+        set width(value: number);
+        get height(): number;
+        set height(value: number);
         constructor(candidate: Nullable<HTMLDivElement>, canvas: GraphCanvasComponent, doNotCaptureNodes?: boolean);
         refresh(): void;
         addNode(node: GraphNode): void;
@@ -238,11 +245,12 @@ declare module "babylonjs-node-editor/diagram/nodeLink" {
         private _onSelectionChangedObserver;
         private _isVisible;
         onDisposedObservable: Observable<NodeLink>;
-        isVisible: boolean;
-        readonly portA: NodePort;
-        readonly portB: NodePort | undefined;
-        readonly nodeA: GraphNode;
-        readonly nodeB: GraphNode | undefined;
+        get isVisible(): boolean;
+        set isVisible(value: boolean);
+        get portA(): NodePort;
+        get portB(): NodePort | undefined;
+        get nodeA(): GraphNode;
+        get nodeB(): GraphNode | undefined;
         update(endX?: number, endY?: number, straight?: boolean): void;
         constructor(graphCanvas: GraphCanvasComponent, portA: NodePort, nodeA: GraphNode, portB?: NodePort, nodeB?: GraphNode);
         onClick(): void;
@@ -295,21 +303,25 @@ declare module "babylonjs-node-editor/diagram/graphCanvas" {
         private _ctrlKeyIsPressed;
         private _oldY;
         _frameIsMoving: boolean;
-        gridSize: number;
-        readonly globalState: GlobalState;
-        readonly nodes: GraphNode[];
-        readonly links: NodeLink[];
-        readonly frames: GraphFrame[];
-        zoom: number;
-        x: number;
-        y: number;
-        readonly selectedNodes: GraphNode[];
-        readonly selectedLink: Nullable<NodeLink>;
-        readonly selectedFrame: Nullable<GraphFrame>;
-        readonly canvasContainer: HTMLDivElement;
-        readonly svgCanvas: HTMLElement;
-        readonly selectionContainer: HTMLDivElement;
-        readonly frameContainer: HTMLDivElement;
+        get gridSize(): number;
+        set gridSize(value: number);
+        get globalState(): GlobalState;
+        get nodes(): GraphNode[];
+        get links(): NodeLink[];
+        get frames(): GraphFrame[];
+        get zoom(): number;
+        set zoom(value: number);
+        get x(): number;
+        set x(value: number);
+        get y(): number;
+        set y(value: number);
+        get selectedNodes(): GraphNode[];
+        get selectedLink(): Nullable<NodeLink>;
+        get selectedFrame(): Nullable<GraphFrame>;
+        get canvasContainer(): HTMLDivElement;
+        get svgCanvas(): HTMLElement;
+        get selectionContainer(): HTMLDivElement;
+        get frameContainer(): HTMLDivElement;
         constructor(props: IGraphCanvasComponentProps);
         getGridPosition(position: number, useCeil?: boolean): number;
         getGridPositionCeil(position: number): number;
@@ -935,7 +947,7 @@ declare module "babylonjs-node-editor/diagram/properties/texturePropertyTabCompo
         isEmbedded: boolean;
         loadAsCubeTexture: boolean;
     }> {
-        readonly textureBlock: TextureBlock | ReflectionTextureBlock;
+        get textureBlock(): TextureBlock | ReflectionTextureBlock;
         constructor(props: IPropertyComponentProps);
         UNSAFE_componentWillUpdate(nextProps: IPropertyComponentProps, nextState: {
             isEmbedded: boolean;
@@ -1144,19 +1156,23 @@ declare module "babylonjs-node-editor/diagram/graphNode" {
         private _isSelected;
         private _displayManager;
         private _isVisible;
-        isVisible: boolean;
-        readonly outputPorts: NodePort[];
-        readonly inputPorts: NodePort[];
-        readonly links: NodeLink[];
-        readonly gridAlignedX: number;
-        readonly gridAlignedY: number;
-        x: number;
-        y: number;
-        readonly width: number;
-        readonly height: number;
-        readonly id: number;
-        readonly name: string;
-        isSelected: boolean;
+        get isVisible(): boolean;
+        set isVisible(value: boolean);
+        get outputPorts(): NodePort[];
+        get inputPorts(): NodePort[];
+        get links(): NodeLink[];
+        get gridAlignedX(): number;
+        get gridAlignedY(): number;
+        get x(): number;
+        set x(value: number);
+        get y(): number;
+        set y(value: number);
+        get width(): number;
+        get height(): number;
+        get id(): number;
+        get name(): string;
+        get isSelected(): boolean;
+        set isSelected(value: boolean);
         constructor(block: NodeMaterialBlock, globalState: GlobalState);
         isOverlappingFrame(frame: GraphFrame): boolean;
         getPortForConnectionPoint(point: NodeMaterialConnectionPoint): Nullable<NodePort>;
@@ -1206,7 +1222,7 @@ declare module "babylonjs-node-editor/globalState" {
         onDepthPrePassChanged: Observable<void>;
         onAnimationCommandActivated: Observable<void>;
         onCandidateLinkMoved: Observable<Nullable<Vector2>>;
-        onSelectionBoxMoved: Observable<ClientRect | DOMRect>;
+        onSelectionBoxMoved: Observable<DOMRect | ClientRect>;
         onFrameCreated: Observable<GraphFrame>;
         onCandidatePortSelected: Observable<Nullable<NodePort>>;
         onGetNodeFromBlock: (block: NodeMaterialBlock) => GraphNode;
@@ -1525,7 +1541,7 @@ declare module NODEEDITOR {
         private _globalState;
         private _onCandidateLinkMovedObserver;
         delegatedPort: BABYLON.Nullable<NodePort>;
-        readonly element: HTMLDivElement;
+        get element(): HTMLDivElement;
         refresh(): void;
         constructor(portContainer: HTMLElement, connectionPoint: BABYLON.NodeMaterialConnectionPoint, node: GraphNode, globalState: GlobalState);
         dispose(): void;
@@ -1585,15 +1601,22 @@ declare module NODEEDITOR {
         private readonly CloseSVG;
         private readonly ExpandSVG;
         private readonly CollapseSVG;
-        isCollapsed: boolean;
+        get isCollapsed(): boolean;
         private _createInputPort;
-        readonly nodes: GraphNode[];
-        name: string;
-        color: BABYLON.Color3;
-        x: number;
-        y: number;
-        width: number;
-        height: number;
+        set isCollapsed(value: boolean);
+        get nodes(): GraphNode[];
+        get name(): string;
+        set name(value: string);
+        get color(): BABYLON.Color3;
+        set color(value: BABYLON.Color3);
+        get x(): number;
+        set x(value: number);
+        get y(): number;
+        set y(value: number);
+        get width(): number;
+        set width(value: number);
+        get height(): number;
+        set height(value: number);
         constructor(candidate: BABYLON.Nullable<HTMLDivElement>, canvas: GraphCanvasComponent, doNotCaptureNodes?: boolean);
         refresh(): void;
         addNode(node: GraphNode): void;
@@ -1621,11 +1644,12 @@ declare module NODEEDITOR {
         private _onSelectionChangedObserver;
         private _isVisible;
         onDisposedObservable: BABYLON.Observable<NodeLink>;
-        isVisible: boolean;
-        readonly portA: NodePort;
-        readonly portB: NodePort | undefined;
-        readonly nodeA: GraphNode;
-        readonly nodeB: GraphNode | undefined;
+        get isVisible(): boolean;
+        set isVisible(value: boolean);
+        get portA(): NodePort;
+        get portB(): NodePort | undefined;
+        get nodeA(): GraphNode;
+        get nodeB(): GraphNode | undefined;
         update(endX?: number, endY?: number, straight?: boolean): void;
         constructor(graphCanvas: GraphCanvasComponent, portA: NodePort, nodeA: GraphNode, portB?: NodePort, nodeB?: GraphNode);
         onClick(): void;
@@ -1669,21 +1693,25 @@ declare module NODEEDITOR {
         private _ctrlKeyIsPressed;
         private _oldY;
         _frameIsMoving: boolean;
-        gridSize: number;
-        readonly globalState: GlobalState;
-        readonly nodes: GraphNode[];
-        readonly links: NodeLink[];
-        readonly frames: GraphFrame[];
-        zoom: number;
-        x: number;
-        y: number;
-        readonly selectedNodes: GraphNode[];
-        readonly selectedLink: BABYLON.Nullable<NodeLink>;
-        readonly selectedFrame: BABYLON.Nullable<GraphFrame>;
-        readonly canvasContainer: HTMLDivElement;
-        readonly svgCanvas: HTMLElement;
-        readonly selectionContainer: HTMLDivElement;
-        readonly frameContainer: HTMLDivElement;
+        get gridSize(): number;
+        set gridSize(value: number);
+        get globalState(): GlobalState;
+        get nodes(): GraphNode[];
+        get links(): NodeLink[];
+        get frames(): GraphFrame[];
+        get zoom(): number;
+        set zoom(value: number);
+        get x(): number;
+        set x(value: number);
+        get y(): number;
+        set y(value: number);
+        get selectedNodes(): GraphNode[];
+        get selectedLink(): BABYLON.Nullable<NodeLink>;
+        get selectedFrame(): BABYLON.Nullable<GraphFrame>;
+        get canvasContainer(): HTMLDivElement;
+        get svgCanvas(): HTMLElement;
+        get selectionContainer(): HTMLDivElement;
+        get frameContainer(): HTMLDivElement;
         constructor(props: IGraphCanvasComponentProps);
         getGridPosition(position: number, useCeil?: boolean): number;
         getGridPositionCeil(position: number): number;
@@ -2219,7 +2247,7 @@ declare module NODEEDITOR {
         isEmbedded: boolean;
         loadAsCubeTexture: boolean;
     }> {
-        readonly textureBlock: BABYLON.TextureBlock | BABYLON.ReflectionTextureBlock;
+        get textureBlock(): BABYLON.TextureBlock | BABYLON.ReflectionTextureBlock;
         constructor(props: IPropertyComponentProps);
         UNSAFE_componentWillUpdate(nextProps: IPropertyComponentProps, nextState: {
             isEmbedded: boolean;
@@ -2399,19 +2427,23 @@ declare module NODEEDITOR {
         private _isSelected;
         private _displayManager;
         private _isVisible;
-        isVisible: boolean;
-        readonly outputPorts: NodePort[];
-        readonly inputPorts: NodePort[];
-        readonly links: NodeLink[];
-        readonly gridAlignedX: number;
-        readonly gridAlignedY: number;
-        x: number;
-        y: number;
-        readonly width: number;
-        readonly height: number;
-        readonly id: number;
-        readonly name: string;
-        isSelected: boolean;
+        get isVisible(): boolean;
+        set isVisible(value: boolean);
+        get outputPorts(): NodePort[];
+        get inputPorts(): NodePort[];
+        get links(): NodeLink[];
+        get gridAlignedX(): number;
+        get gridAlignedY(): number;
+        get x(): number;
+        set x(value: number);
+        get y(): number;
+        set y(value: number);
+        get width(): number;
+        get height(): number;
+        get id(): number;
+        get name(): string;
+        get isSelected(): boolean;
+        set isSelected(value: boolean);
         constructor(block: BABYLON.NodeMaterialBlock, globalState: GlobalState);
         isOverlappingFrame(frame: GraphFrame): boolean;
         getPortForConnectionPoint(point: BABYLON.NodeMaterialConnectionPoint): BABYLON.Nullable<NodePort>;
@@ -2449,7 +2481,7 @@ declare module NODEEDITOR {
         onDepthPrePassChanged: BABYLON.Observable<void>;
         onAnimationCommandActivated: BABYLON.Observable<void>;
         onCandidateLinkMoved: BABYLON.Observable<BABYLON.Nullable<BABYLON.Vector2>>;
-        onSelectionBoxMoved: BABYLON.Observable<ClientRect | DOMRect>;
+        onSelectionBoxMoved: BABYLON.Observable<DOMRect | ClientRect>;
         onFrameCreated: BABYLON.Observable<GraphFrame>;
         onCandidatePortSelected: BABYLON.Observable<BABYLON.Nullable<NodePort>>;
         onGetNodeFromBlock: (block: BABYLON.NodeMaterialBlock) => GraphNode;

+ 1 - 1
dist/preview release/packagesSizeBaseLine.json

@@ -1 +1 @@
-{"thinEngineOnly":119289,"engineOnly":156098,"sceneOnly":501835,"minGridMaterial":631835,"minStandardMaterial":755733}
+{"thinEngineOnly":119323,"engineOnly":156166,"sceneOnly":501891,"minGridMaterial":631891,"minStandardMaterial":755789}

+ 13 - 11
dist/preview release/postProcessesLibrary/babylonjs.postProcess.d.ts

@@ -19,7 +19,7 @@ declare module BABYLON {
         /**
          * Gets the size of one char in the texture (each char fits in size * size space in the texture).
          */
-        readonly charSize: number;
+        get charSize(): number;
         /**
          * Create a new instance of the Ascii Art FontTexture class
          * @param name the name of the texture
@@ -127,7 +127,7 @@ declare module BABYLON {
         /**
          * Gets the size of one char in the texture (each char fits in size * size space in the texture).
          */
-        readonly charSize: number;
+        get charSize(): number;
         /**
          * Create a new instance of the Digital Rain FontTexture class
          * @param name the name of the texture
@@ -254,24 +254,26 @@ declare module BABYLON {
         /**
          * Gets a boolean indicating if the real-time reflection is enabled on the ocean.
          */
+        get reflectionEnabled(): boolean;
         /**
-        * Sets weither or not the real-time reflection is enabled on the ocean.
-        * Is set to true, the reflection mirror texture will be used as reflection texture.
-        */
-        reflectionEnabled: boolean;
+         * Sets weither or not the real-time reflection is enabled on the ocean.
+         * Is set to true, the reflection mirror texture will be used as reflection texture.
+         */
+        set reflectionEnabled(enabled: boolean);
         /**
          * Gets a boolean indicating if the real-time refraction is enabled on the ocean.
          */
+        get refractionEnabled(): boolean;
         /**
-        * Sets weither or not the real-time refraction is enabled on the ocean.
-        * Is set to true, the refraction render target texture will be used as refraction texture.
-        */
-        refractionEnabled: boolean;
+         * Sets weither or not the real-time refraction is enabled on the ocean.
+         * Is set to true, the refraction render target texture will be used as refraction texture.
+         */
+        set refractionEnabled(enabled: boolean);
         /**
          * Gets wether or not the post-processes is supported by the running hardware.
          * This requires draw buffer supports.
          */
-        readonly isSupported: boolean;
+        get isSupported(): boolean;
         /**
          * This is the reflection mirror texture used to display reflections on the ocean.
          * By default, render list is empty.

+ 26 - 22
dist/preview release/postProcessesLibrary/babylonjs.postProcess.module.d.ts

@@ -25,7 +25,7 @@ declare module "babylonjs-post-process/asciiArt/asciiArtPostProcess" {
         /**
          * Gets the size of one char in the texture (each char fits in size * size space in the texture).
          */
-        readonly charSize: number;
+        get charSize(): number;
         /**
          * Create a new instance of the Ascii Art FontTexture class
          * @param name the name of the texture
@@ -142,7 +142,7 @@ declare module "babylonjs-post-process/digitalRain/digitalRainPostProcess" {
         /**
          * Gets the size of one char in the texture (each char fits in size * size space in the texture).
          */
-        readonly charSize: number;
+        get charSize(): number;
         /**
          * Create a new instance of the Digital Rain FontTexture class
          * @param name the name of the texture
@@ -277,24 +277,26 @@ declare module "babylonjs-post-process/ocean/oceanPostProcess" {
         /**
          * Gets a boolean indicating if the real-time reflection is enabled on the ocean.
          */
+        get reflectionEnabled(): boolean;
         /**
-        * Sets weither or not the real-time reflection is enabled on the ocean.
-        * Is set to true, the reflection mirror texture will be used as reflection texture.
-        */
-        reflectionEnabled: boolean;
+         * Sets weither or not the real-time reflection is enabled on the ocean.
+         * Is set to true, the reflection mirror texture will be used as reflection texture.
+         */
+        set reflectionEnabled(enabled: boolean);
         /**
          * Gets a boolean indicating if the real-time refraction is enabled on the ocean.
          */
+        get refractionEnabled(): boolean;
         /**
-        * Sets weither or not the real-time refraction is enabled on the ocean.
-        * Is set to true, the refraction render target texture will be used as refraction texture.
-        */
-        refractionEnabled: boolean;
+         * Sets weither or not the real-time refraction is enabled on the ocean.
+         * Is set to true, the refraction render target texture will be used as refraction texture.
+         */
+        set refractionEnabled(enabled: boolean);
         /**
          * Gets wether or not the post-processes is supported by the running hardware.
          * This requires draw buffer supports.
          */
-        readonly isSupported: boolean;
+        get isSupported(): boolean;
         /**
          * This is the reflection mirror texture used to display reflections on the ocean.
          * By default, render list is empty.
@@ -372,7 +374,7 @@ declare module BABYLON {
         /**
          * Gets the size of one char in the texture (each char fits in size * size space in the texture).
          */
-        readonly charSize: number;
+        get charSize(): number;
         /**
          * Create a new instance of the Ascii Art FontTexture class
          * @param name the name of the texture
@@ -480,7 +482,7 @@ declare module BABYLON {
         /**
          * Gets the size of one char in the texture (each char fits in size * size space in the texture).
          */
-        readonly charSize: number;
+        get charSize(): number;
         /**
          * Create a new instance of the Digital Rain FontTexture class
          * @param name the name of the texture
@@ -607,24 +609,26 @@ declare module BABYLON {
         /**
          * Gets a boolean indicating if the real-time reflection is enabled on the ocean.
          */
+        get reflectionEnabled(): boolean;
         /**
-        * Sets weither or not the real-time reflection is enabled on the ocean.
-        * Is set to true, the reflection mirror texture will be used as reflection texture.
-        */
-        reflectionEnabled: boolean;
+         * Sets weither or not the real-time reflection is enabled on the ocean.
+         * Is set to true, the reflection mirror texture will be used as reflection texture.
+         */
+        set reflectionEnabled(enabled: boolean);
         /**
          * Gets a boolean indicating if the real-time refraction is enabled on the ocean.
          */
+        get refractionEnabled(): boolean;
         /**
-        * Sets weither or not the real-time refraction is enabled on the ocean.
-        * Is set to true, the refraction render target texture will be used as refraction texture.
-        */
-        refractionEnabled: boolean;
+         * Sets weither or not the real-time refraction is enabled on the ocean.
+         * Is set to true, the refraction render target texture will be used as refraction texture.
+         */
+        set refractionEnabled(enabled: boolean);
         /**
          * Gets wether or not the post-processes is supported by the running hardware.
          * This requires draw buffer supports.
          */
-        readonly isSupported: boolean;
+        get isSupported(): boolean;
         /**
          * This is the reflection mirror texture used to display reflections on the ocean.
          * By default, render list is empty.

+ 68 - 36
dist/preview release/proceduralTexturesLibrary/babylonjs.proceduralTextures.d.ts

@@ -13,10 +13,14 @@ declare module BABYLON {
         private _brickColor;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        numberOfBricksHeight: number;
-        numberOfBricksWidth: number;
-        jointColor: BABYLON.Color3;
-        brickColor: BABYLON.Color3;
+        get numberOfBricksHeight(): number;
+        set numberOfBricksHeight(value: number);
+        get numberOfBricksWidth(): number;
+        set numberOfBricksWidth(value: number);
+        get jointColor(): BABYLON.Color3;
+        set jointColor(value: BABYLON.Color3);
+        get brickColor(): BABYLON.Color3;
+        set brickColor(value: BABYLON.Color3);
         /**
          * Serializes this brick procedural texture
          * @returns a serialized brick procedural texture object
@@ -45,8 +49,10 @@ declare module BABYLON {
         private _cloudColor;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        skyColor: BABYLON.Color4;
-        cloudColor: BABYLON.Color4;
+        get skyColor(): BABYLON.Color4;
+        set skyColor(value: BABYLON.Color4);
+        get cloudColor(): BABYLON.Color4;
+        set cloudColor(value: BABYLON.Color4);
         /**
          * Serializes this cloud procedural texture
          * @returns a serialized cloud procedural texture object
@@ -79,15 +85,20 @@ declare module BABYLON {
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
         render(useCameraPostProcess?: boolean): void;
-        static readonly PurpleFireColors: BABYLON.Color3[];
-        static readonly GreenFireColors: BABYLON.Color3[];
-        static readonly RedFireColors: BABYLON.Color3[];
-        static readonly BlueFireColors: BABYLON.Color3[];
-        autoGenerateTime: boolean;
-        fireColors: BABYLON.Color3[];
-        time: number;
-        speed: BABYLON.Vector2;
-        alphaThreshold: number;
+        static get PurpleFireColors(): BABYLON.Color3[];
+        static get GreenFireColors(): BABYLON.Color3[];
+        static get RedFireColors(): BABYLON.Color3[];
+        static get BlueFireColors(): BABYLON.Color3[];
+        get autoGenerateTime(): boolean;
+        set autoGenerateTime(value: boolean);
+        get fireColors(): BABYLON.Color3[];
+        set fireColors(value: BABYLON.Color3[]);
+        get time(): number;
+        set time(value: number);
+        get speed(): BABYLON.Vector2;
+        set speed(value: BABYLON.Vector2);
+        get alphaThreshold(): number;
+        set alphaThreshold(value: number);
         /**
          * Serializes this fire procedural texture
          * @returns a serialized fire procedural texture object
@@ -116,8 +127,10 @@ declare module BABYLON {
         private _groundColor;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        grassColors: BABYLON.Color3[];
-        groundColor: BABYLON.Color3;
+        get grassColors(): BABYLON.Color3[];
+        set grassColors(value: BABYLON.Color3[]);
+        get groundColor(): BABYLON.Color3;
+        set groundColor(value: BABYLON.Color3);
         /**
          * Serializes this grass procedural texture
          * @returns a serialized grass procedural texture object
@@ -148,10 +161,14 @@ declare module BABYLON {
         private _jointColor;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        numberOfTilesHeight: number;
-        amplitude: number;
-        numberOfTilesWidth: number;
-        jointColor: BABYLON.Color3;
+        get numberOfTilesHeight(): number;
+        set numberOfTilesHeight(value: number);
+        get amplitude(): number;
+        set amplitude(value: number);
+        get numberOfTilesWidth(): number;
+        set numberOfTilesWidth(value: number);
+        get jointColor(): BABYLON.Color3;
+        set jointColor(value: BABYLON.Color3);
         /**
          * Serializes this marble procedural texture
          * @returns a serialized marble procedural texture object
@@ -181,7 +198,8 @@ declare module BABYLON {
         updateShaderUniforms(): void;
         render(useCameraPostProcess?: boolean): void;
         resize(size: any, generateMipMaps: any): void;
-        baseTexture: BABYLON.Texture;
+        get baseTexture(): BABYLON.Texture;
+        set baseTexture(texture: BABYLON.Texture);
         /**
          * Serializes this normal map procedural texture
          * @returns a serialized normal map procedural texture object
@@ -241,7 +259,8 @@ declare module BABYLON {
         private _roadColor;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        roadColor: BABYLON.Color3;
+        get roadColor(): BABYLON.Color3;
+        set roadColor(value: BABYLON.Color3);
         /**
          * Serializes this road procedural texture
          * @returns a serialized road procedural texture object
@@ -279,17 +298,28 @@ declare module BABYLON {
         private _saturation;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        time: number;
-        alpha: number;
-        beta: number;
-        formuparam: number;
-        stepsize: number;
-        zoom: number;
-        tile: number;
-        brightness: number;
-        darkmatter: number;
-        distfading: number;
-        saturation: number;
+        get time(): number;
+        set time(value: number);
+        get alpha(): number;
+        set alpha(value: number);
+        get beta(): number;
+        set beta(value: number);
+        get formuparam(): number;
+        set formuparam(value: number);
+        get stepsize(): number;
+        set stepsize(value: number);
+        get zoom(): number;
+        set zoom(value: number);
+        get tile(): number;
+        set tile(value: number);
+        get brightness(): number;
+        set brightness(value: number);
+        get darkmatter(): number;
+        set darkmatter(value: number);
+        get distfading(): number;
+        set distfading(value: number);
+        get saturation(): number;
+        set saturation(value: number);
         /**
          * Serializes this starfield procedural texture
          * @returns a serialized starfield procedural texture object
@@ -318,8 +348,10 @@ declare module BABYLON {
         private _woodColor;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        ampScale: number;
-        woodColor: BABYLON.Color3;
+        get ampScale(): number;
+        set ampScale(value: number);
+        get woodColor(): BABYLON.Color3;
+        set woodColor(value: BABYLON.Color3);
         /**
          * Serializes this wood procedural texture
          * @returns a serialized wood procedural texture object

+ 136 - 72
dist/preview release/proceduralTexturesLibrary/babylonjs.proceduralTextures.module.d.ts

@@ -18,10 +18,14 @@ declare module "babylonjs-procedural-textures/brick/brickProceduralTexture" {
         private _brickColor;
         constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        numberOfBricksHeight: number;
-        numberOfBricksWidth: number;
-        jointColor: Color3;
-        brickColor: Color3;
+        get numberOfBricksHeight(): number;
+        set numberOfBricksHeight(value: number);
+        get numberOfBricksWidth(): number;
+        set numberOfBricksWidth(value: number);
+        get jointColor(): Color3;
+        set jointColor(value: Color3);
+        get brickColor(): Color3;
+        set brickColor(value: Color3);
         /**
          * Serializes this brick procedural texture
          * @returns a serialized brick procedural texture object
@@ -58,8 +62,10 @@ declare module "babylonjs-procedural-textures/cloud/cloudProceduralTexture" {
         private _cloudColor;
         constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        skyColor: Color4;
-        cloudColor: Color4;
+        get skyColor(): Color4;
+        set skyColor(value: Color4);
+        get cloudColor(): Color4;
+        set cloudColor(value: Color4);
         /**
          * Serializes this cloud procedural texture
          * @returns a serialized cloud procedural texture object
@@ -100,15 +106,20 @@ declare module "babylonjs-procedural-textures/fire/fireProceduralTexture" {
         constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
         render(useCameraPostProcess?: boolean): void;
-        static readonly PurpleFireColors: Color3[];
-        static readonly GreenFireColors: Color3[];
-        static readonly RedFireColors: Color3[];
-        static readonly BlueFireColors: Color3[];
-        autoGenerateTime: boolean;
-        fireColors: Color3[];
-        time: number;
-        speed: Vector2;
-        alphaThreshold: number;
+        static get PurpleFireColors(): Color3[];
+        static get GreenFireColors(): Color3[];
+        static get RedFireColors(): Color3[];
+        static get BlueFireColors(): Color3[];
+        get autoGenerateTime(): boolean;
+        set autoGenerateTime(value: boolean);
+        get fireColors(): Color3[];
+        set fireColors(value: Color3[]);
+        get time(): number;
+        set time(value: number);
+        get speed(): Vector2;
+        set speed(value: Vector2);
+        get alphaThreshold(): number;
+        set alphaThreshold(value: number);
         /**
          * Serializes this fire procedural texture
          * @returns a serialized fire procedural texture object
@@ -145,8 +156,10 @@ declare module "babylonjs-procedural-textures/grass/grassProceduralTexture" {
         private _groundColor;
         constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        grassColors: Color3[];
-        groundColor: Color3;
+        get grassColors(): Color3[];
+        set grassColors(value: Color3[]);
+        get groundColor(): Color3;
+        set groundColor(value: Color3);
         /**
          * Serializes this grass procedural texture
          * @returns a serialized grass procedural texture object
@@ -185,10 +198,14 @@ declare module "babylonjs-procedural-textures/marble/marbleProceduralTexture" {
         private _jointColor;
         constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        numberOfTilesHeight: number;
-        amplitude: number;
-        numberOfTilesWidth: number;
-        jointColor: Color3;
+        get numberOfTilesHeight(): number;
+        set numberOfTilesHeight(value: number);
+        get amplitude(): number;
+        set amplitude(value: number);
+        get numberOfTilesWidth(): number;
+        set numberOfTilesWidth(value: number);
+        get jointColor(): Color3;
+        set jointColor(value: Color3);
         /**
          * Serializes this marble procedural texture
          * @returns a serialized marble procedural texture object
@@ -225,7 +242,8 @@ declare module "babylonjs-procedural-textures/normalMap/normalMapProceduralTextu
         updateShaderUniforms(): void;
         render(useCameraPostProcess?: boolean): void;
         resize(size: any, generateMipMaps: any): void;
-        baseTexture: Texture;
+        get baseTexture(): Texture;
+        set baseTexture(texture: Texture);
         /**
          * Serializes this normal map procedural texture
          * @returns a serialized normal map procedural texture object
@@ -300,7 +318,8 @@ declare module "babylonjs-procedural-textures/road/roadProceduralTexture" {
         private _roadColor;
         constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        roadColor: Color3;
+        get roadColor(): Color3;
+        set roadColor(value: Color3);
         /**
          * Serializes this road procedural texture
          * @returns a serialized road procedural texture object
@@ -345,17 +364,28 @@ declare module "babylonjs-procedural-textures/starfield/starfieldProceduralTextu
         private _saturation;
         constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        time: number;
-        alpha: number;
-        beta: number;
-        formuparam: number;
-        stepsize: number;
-        zoom: number;
-        tile: number;
-        brightness: number;
-        darkmatter: number;
-        distfading: number;
-        saturation: number;
+        get time(): number;
+        set time(value: number);
+        get alpha(): number;
+        set alpha(value: number);
+        get beta(): number;
+        set beta(value: number);
+        get formuparam(): number;
+        set formuparam(value: number);
+        get stepsize(): number;
+        set stepsize(value: number);
+        get zoom(): number;
+        set zoom(value: number);
+        get tile(): number;
+        set tile(value: number);
+        get brightness(): number;
+        set brightness(value: number);
+        get darkmatter(): number;
+        set darkmatter(value: number);
+        get distfading(): number;
+        set distfading(value: number);
+        get saturation(): number;
+        set saturation(value: number);
         /**
          * Serializes this starfield procedural texture
          * @returns a serialized starfield procedural texture object
@@ -392,8 +422,10 @@ declare module "babylonjs-procedural-textures/wood/woodProceduralTexture" {
         private _woodColor;
         constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        ampScale: number;
-        woodColor: Color3;
+        get ampScale(): number;
+        set ampScale(value: number);
+        get woodColor(): Color3;
+        set woodColor(value: Color3);
         /**
          * Serializes this wood procedural texture
          * @returns a serialized wood procedural texture object
@@ -475,10 +507,14 @@ declare module BABYLON {
         private _brickColor;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        numberOfBricksHeight: number;
-        numberOfBricksWidth: number;
-        jointColor: BABYLON.Color3;
-        brickColor: BABYLON.Color3;
+        get numberOfBricksHeight(): number;
+        set numberOfBricksHeight(value: number);
+        get numberOfBricksWidth(): number;
+        set numberOfBricksWidth(value: number);
+        get jointColor(): BABYLON.Color3;
+        set jointColor(value: BABYLON.Color3);
+        get brickColor(): BABYLON.Color3;
+        set brickColor(value: BABYLON.Color3);
         /**
          * Serializes this brick procedural texture
          * @returns a serialized brick procedural texture object
@@ -507,8 +543,10 @@ declare module BABYLON {
         private _cloudColor;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        skyColor: BABYLON.Color4;
-        cloudColor: BABYLON.Color4;
+        get skyColor(): BABYLON.Color4;
+        set skyColor(value: BABYLON.Color4);
+        get cloudColor(): BABYLON.Color4;
+        set cloudColor(value: BABYLON.Color4);
         /**
          * Serializes this cloud procedural texture
          * @returns a serialized cloud procedural texture object
@@ -541,15 +579,20 @@ declare module BABYLON {
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
         render(useCameraPostProcess?: boolean): void;
-        static readonly PurpleFireColors: BABYLON.Color3[];
-        static readonly GreenFireColors: BABYLON.Color3[];
-        static readonly RedFireColors: BABYLON.Color3[];
-        static readonly BlueFireColors: BABYLON.Color3[];
-        autoGenerateTime: boolean;
-        fireColors: BABYLON.Color3[];
-        time: number;
-        speed: BABYLON.Vector2;
-        alphaThreshold: number;
+        static get PurpleFireColors(): BABYLON.Color3[];
+        static get GreenFireColors(): BABYLON.Color3[];
+        static get RedFireColors(): BABYLON.Color3[];
+        static get BlueFireColors(): BABYLON.Color3[];
+        get autoGenerateTime(): boolean;
+        set autoGenerateTime(value: boolean);
+        get fireColors(): BABYLON.Color3[];
+        set fireColors(value: BABYLON.Color3[]);
+        get time(): number;
+        set time(value: number);
+        get speed(): BABYLON.Vector2;
+        set speed(value: BABYLON.Vector2);
+        get alphaThreshold(): number;
+        set alphaThreshold(value: number);
         /**
          * Serializes this fire procedural texture
          * @returns a serialized fire procedural texture object
@@ -578,8 +621,10 @@ declare module BABYLON {
         private _groundColor;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        grassColors: BABYLON.Color3[];
-        groundColor: BABYLON.Color3;
+        get grassColors(): BABYLON.Color3[];
+        set grassColors(value: BABYLON.Color3[]);
+        get groundColor(): BABYLON.Color3;
+        set groundColor(value: BABYLON.Color3);
         /**
          * Serializes this grass procedural texture
          * @returns a serialized grass procedural texture object
@@ -610,10 +655,14 @@ declare module BABYLON {
         private _jointColor;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        numberOfTilesHeight: number;
-        amplitude: number;
-        numberOfTilesWidth: number;
-        jointColor: BABYLON.Color3;
+        get numberOfTilesHeight(): number;
+        set numberOfTilesHeight(value: number);
+        get amplitude(): number;
+        set amplitude(value: number);
+        get numberOfTilesWidth(): number;
+        set numberOfTilesWidth(value: number);
+        get jointColor(): BABYLON.Color3;
+        set jointColor(value: BABYLON.Color3);
         /**
          * Serializes this marble procedural texture
          * @returns a serialized marble procedural texture object
@@ -643,7 +692,8 @@ declare module BABYLON {
         updateShaderUniforms(): void;
         render(useCameraPostProcess?: boolean): void;
         resize(size: any, generateMipMaps: any): void;
-        baseTexture: BABYLON.Texture;
+        get baseTexture(): BABYLON.Texture;
+        set baseTexture(texture: BABYLON.Texture);
         /**
          * Serializes this normal map procedural texture
          * @returns a serialized normal map procedural texture object
@@ -703,7 +753,8 @@ declare module BABYLON {
         private _roadColor;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        roadColor: BABYLON.Color3;
+        get roadColor(): BABYLON.Color3;
+        set roadColor(value: BABYLON.Color3);
         /**
          * Serializes this road procedural texture
          * @returns a serialized road procedural texture object
@@ -741,17 +792,28 @@ declare module BABYLON {
         private _saturation;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        time: number;
-        alpha: number;
-        beta: number;
-        formuparam: number;
-        stepsize: number;
-        zoom: number;
-        tile: number;
-        brightness: number;
-        darkmatter: number;
-        distfading: number;
-        saturation: number;
+        get time(): number;
+        set time(value: number);
+        get alpha(): number;
+        set alpha(value: number);
+        get beta(): number;
+        set beta(value: number);
+        get formuparam(): number;
+        set formuparam(value: number);
+        get stepsize(): number;
+        set stepsize(value: number);
+        get zoom(): number;
+        set zoom(value: number);
+        get tile(): number;
+        set tile(value: number);
+        get brightness(): number;
+        set brightness(value: number);
+        get darkmatter(): number;
+        set darkmatter(value: number);
+        get distfading(): number;
+        set distfading(value: number);
+        get saturation(): number;
+        set saturation(value: number);
         /**
          * Serializes this starfield procedural texture
          * @returns a serialized starfield procedural texture object
@@ -780,8 +842,10 @@ declare module BABYLON {
         private _woodColor;
         constructor(name: string, size: number, scene: BABYLON.Scene, fallbackTexture?: BABYLON.Texture, generateMipMaps?: boolean);
         updateShaderUniforms(): void;
-        ampScale: number;
-        woodColor: BABYLON.Color3;
+        get ampScale(): number;
+        set ampScale(value: number);
+        get woodColor(): BABYLON.Color3;
+        set woodColor(value: BABYLON.Color3);
         /**
          * Serializes this wood procedural texture
          * @returns a serialized wood procedural texture object

+ 3 - 3
dist/preview release/serializers/babylonjs.serializers.d.ts

@@ -1047,7 +1047,7 @@ declare module BABYLON.GLTF2.Exporter.Extensions {
         constructor(exporter: _Exporter);
         dispose(): void;
         /** @hidden */
-        readonly wasUsed: boolean;
+        get wasUsed(): boolean;
         postExportTexture?(context: string, textureInfo: ITextureInfo, babylonTexture: Texture): void;
         preExportTextureAsync(context: string, babylonTexture: Texture, mimeType: ImageMimeType): Promise<Texture>;
         /**
@@ -1080,7 +1080,7 @@ declare module BABYLON.GLTF2.Exporter.Extensions {
         /** @hidden */
         dispose(): void;
         /** @hidden */
-        readonly wasUsed: boolean;
+        get wasUsed(): boolean;
         /** @hidden */
         onExporting(): void;
         /**
@@ -1111,7 +1111,7 @@ declare module BABYLON.GLTF2.Exporter.Extensions {
         constructor(exporter: _Exporter);
         dispose(): void;
         /** @hidden */
-        readonly wasUsed: boolean;
+        get wasUsed(): boolean;
         private _getTextureIndex;
         postExportTexture?(context: string, textureInfo: ITextureInfo, babylonTexture: Texture): void;
         postExportMaterialAdditionalTextures?(context: string, node: IMaterial, babylonMaterial: Material): BaseTexture[];

+ 6 - 6
dist/preview release/serializers/babylonjs.serializers.module.d.ts

@@ -1100,7 +1100,7 @@ declare module "babylonjs-serializers/glTF/2.0/Extensions/KHR_texture_transform"
         constructor(exporter: _Exporter);
         dispose(): void;
         /** @hidden */
-        readonly wasUsed: boolean;
+        get wasUsed(): boolean;
         postExportTexture?(context: string, textureInfo: ITextureInfo, babylonTexture: Texture): void;
         preExportTextureAsync(context: string, babylonTexture: Texture, mimeType: ImageMimeType): Promise<Texture>;
         /**
@@ -1137,7 +1137,7 @@ declare module "babylonjs-serializers/glTF/2.0/Extensions/KHR_lights_punctual" {
         /** @hidden */
         dispose(): void;
         /** @hidden */
-        readonly wasUsed: boolean;
+        get wasUsed(): boolean;
         /** @hidden */
         onExporting(): void;
         /**
@@ -1174,7 +1174,7 @@ declare module "babylonjs-serializers/glTF/2.0/Extensions/KHR_materials_sheen" {
         constructor(exporter: _Exporter);
         dispose(): void;
         /** @hidden */
-        readonly wasUsed: boolean;
+        get wasUsed(): boolean;
         private _getTextureIndex;
         postExportTexture?(context: string, textureInfo: ITextureInfo, babylonTexture: Texture): void;
         postExportMaterialAdditionalTextures?(context: string, node: IMaterial, babylonMaterial: Material): BaseTexture[];
@@ -2294,7 +2294,7 @@ declare module BABYLON.GLTF2.Exporter.Extensions {
         constructor(exporter: _Exporter);
         dispose(): void;
         /** @hidden */
-        readonly wasUsed: boolean;
+        get wasUsed(): boolean;
         postExportTexture?(context: string, textureInfo: ITextureInfo, babylonTexture: Texture): void;
         preExportTextureAsync(context: string, babylonTexture: Texture, mimeType: ImageMimeType): Promise<Texture>;
         /**
@@ -2327,7 +2327,7 @@ declare module BABYLON.GLTF2.Exporter.Extensions {
         /** @hidden */
         dispose(): void;
         /** @hidden */
-        readonly wasUsed: boolean;
+        get wasUsed(): boolean;
         /** @hidden */
         onExporting(): void;
         /**
@@ -2358,7 +2358,7 @@ declare module BABYLON.GLTF2.Exporter.Extensions {
         constructor(exporter: _Exporter);
         dispose(): void;
         /** @hidden */
-        readonly wasUsed: boolean;
+        get wasUsed(): boolean;
         private _getTextureIndex;
         postExportTexture?(context: string, textureInfo: ITextureInfo, babylonTexture: Texture): void;
         postExportMaterialAdditionalTextures?(context: string, node: IMaterial, babylonMaterial: Material): BaseTexture[];

文件差異過大導致無法顯示
+ 4945 - 3767
dist/preview release/viewer/babylon.module.d.ts


+ 104 - 70
dist/preview release/viewer/babylon.viewer.d.ts

@@ -91,7 +91,7 @@ declare module BabylonViewer {
     export class ViewerGlobals {
         disableInit: boolean;
         disableWebGL2Support: boolean;
-        readonly version: string;
+        get version(): string;
     }
     export let viewerGlobals: ViewerGlobals;
 }
@@ -263,56 +263,56 @@ declare module BabylonViewer {
             /**
                 * Will notify when the scene was initialized
                 */
-            readonly onSceneInitObservable: BABYLON.Observable<BABYLON.Scene>;
+            get onSceneInitObservable(): BABYLON.Observable<BABYLON.Scene>;
             /**
                 * will notify when the engine was initialized
                 */
-            readonly onEngineInitObservable: BABYLON.Observable<BABYLON.Engine>;
+            get onEngineInitObservable(): BABYLON.Observable<BABYLON.Engine>;
             /**
                 * Will notify when a new model was added to the scene.
                 * Note that added does not neccessarily mean loaded!
                 */
-            readonly onModelAddedObservable: BABYLON.Observable<ViewerModel>;
+            get onModelAddedObservable(): BABYLON.Observable<ViewerModel>;
             /**
                 * will notify after every model load
                 */
-            readonly onModelLoadedObservable: BABYLON.Observable<ViewerModel>;
+            get onModelLoadedObservable(): BABYLON.Observable<ViewerModel>;
             /**
                 * will notify when any model notify of progress
                 */
-            readonly onModelLoadProgressObservable: BABYLON.Observable<BABYLON.SceneLoaderProgressEvent>;
+            get onModelLoadProgressObservable(): BABYLON.Observable<BABYLON.SceneLoaderProgressEvent>;
             /**
                 * will notify when any model load failed.
                 */
-            readonly onModelLoadErrorObservable: BABYLON.Observable<{
+            get onModelLoadErrorObservable(): BABYLON.Observable<{
                     message: string;
                     exception: any;
             }>;
             /**
                 * Will notify when a model was removed from the scene;
                 */
-            readonly onModelRemovedObservable: BABYLON.Observable<ViewerModel>;
+            get onModelRemovedObservable(): BABYLON.Observable<ViewerModel>;
             /**
                 * will notify when a new loader was initialized.
                 * Used mainly to know when a model starts loading.
                 */
-            readonly onLoaderInitObservable: BABYLON.Observable<BABYLON.ISceneLoaderPlugin | BABYLON.ISceneLoaderPluginAsync>;
+            get onLoaderInitObservable(): BABYLON.Observable<BABYLON.ISceneLoaderPlugin | BABYLON.ISceneLoaderPluginAsync>;
             /**
                 * Observers registered here will be executed when the entire load process has finished.
                 */
-            readonly onInitDoneObservable: BABYLON.Observable<AbstractViewer>;
+            get onInitDoneObservable(): BABYLON.Observable<AbstractViewer>;
             /**
                 * Functions added to this observable will be executed on each frame rendered.
                 */
-            readonly onFrameRenderedObservable: BABYLON.Observable<AbstractViewer>;
+            get onFrameRenderedObservable(): BABYLON.Observable<AbstractViewer>;
             /**
                 * Observers registered here will be executed when VR more is entered.
                 */
-            readonly onEnteringVRObservable: BABYLON.Observable<AbstractViewer>;
+            get onEnteringVRObservable(): BABYLON.Observable<AbstractViewer>;
             /**
                 * Observers registered here will be executed when VR mode is exited.
                 */
-            readonly onExitingVRObservable: BABYLON.Observable<AbstractViewer>;
+            get onExitingVRObservable(): BABYLON.Observable<AbstractViewer>;
             observablesManager: ObservablesManager;
             /**
                 * The canvas associated with this viewer
@@ -321,7 +321,7 @@ declare module BabylonViewer {
             /**
                 * The (single) canvas of this viewer
                 */
-            readonly canvas: HTMLCanvasElement;
+            get canvas(): HTMLCanvasElement;
             /**
                 * is this viewer disposed?
                 */
@@ -340,7 +340,7 @@ declare module BabylonViewer {
                 */
             protected _isInit: boolean;
             protected _configurationContainer: ConfigurationContainer;
-            readonly configurationContainer: ConfigurationContainer;
+            get configurationContainer(): ConfigurationContainer;
             protected getConfigurationLoader(): RenderOnlyConfigurationLoader;
             constructor(containerElement: Element, initialConfiguration?: ViewerConfiguration);
             /**
@@ -352,15 +352,19 @@ declare module BabylonViewer {
                 */
             isCanvasInDOM(): boolean;
             /**
-             * Set the viewer's background rendering flag.
-             */
-            renderInBackground: boolean;
+                * Is the engine currently set to rende even when the page is in background
+                */
+            get renderInBackground(): boolean;
+            /**
+                * Set the viewer's background rendering flag.
+                */
+            set renderInBackground(value: boolean);
             /**
                 * Get the configuration object. This is a reference only.
                 * The configuration can ONLY be updated using the updateConfiguration function.
                 * changing this object will have no direct effect on the scene.
                 */
-            readonly configuration: ViewerConfiguration;
+            get configuration(): ViewerConfiguration;
             /**
                 * force resizing the engine.
                 */
@@ -485,7 +489,7 @@ declare module BabylonViewer {
                 * @param event The name of the Telemetry event
                 * @param details An additional value, or an object containing a list of property/value pairs
                 */
-            readonly broadcast: (event: string, viewerId?: string | undefined, details?: any) => void;
+            get broadcast(): (event: string, viewerId?: string | undefined, details?: any) => void;
             /**
                 * Log a Telemetry event for errors raised on the WebGL context.
                 * @param engine The Babylon engine with the WebGL context.
@@ -495,12 +499,12 @@ declare module BabylonViewer {
                 * Enable or disable telemetry events
                 * @param enabled Boolan, true if events are enabled
                 */
-            enable: boolean;
+            set enable(enabled: boolean);
             /**
                 * Returns the current session ID or creates one if it doesn't exixt
                 * @return The current session ID
                 */
-            readonly session: string;
+            get session(): string;
             /**
                 * Disposes the telemetry manager
                 */
@@ -516,7 +520,7 @@ declare module BabylonViewer {
         * A Model loader is unique per (Abstract)Viewer. It is being generated by the viewer
         */
     export class ModelLoader {
-            readonly baseUrl: string;
+            get baseUrl(): string;
             /**
                 * Create a new Model loader
                 * @param _viewer the viewer using this model loader
@@ -615,13 +619,18 @@ declare module BabylonViewer {
             loadId: number;
             loadInfo: IAsset;
             constructor(_observablesManager: ObservablesManager, modelConfiguration: IModelConfiguration, _configurationContainer?: ConfigurationContainer | undefined);
-            shadowsRenderedAfterLoad: boolean;
+            get shadowsRenderedAfterLoad(): boolean;
+            set shadowsRenderedAfterLoad(rendered: boolean);
             getViewerId(): string | undefined;
             /**
-             * Set whether this model is enabled or not.
-             */
-            enabled: boolean;
-            loaderDone: boolean;
+                * Is this model enabled?
+                */
+            get enabled(): boolean;
+            /**
+                * Set whether this model is enabled or not.
+                */
+            set enabled(enable: boolean);
+            set loaderDone(done: boolean);
             /**
                 * Add a mesh to this model.
                 * Any mesh that has no parent will be provided with the root mesh as its new parent.
@@ -633,12 +642,16 @@ declare module BabylonViewer {
             /**
                 * get the list of meshes (excluding the root mesh)
                 */
-            readonly meshes: BABYLON.AbstractMesh[];
+            get meshes(): BABYLON.AbstractMesh[];
             /**
-             * (Re-)set the model's entire configuration
-             * @param newConfiguration the new configuration to replace the new one
-             */
-            configuration: IModelConfiguration;
+                * Get the model's configuration
+                */
+            get configuration(): IModelConfiguration;
+            /**
+                * (Re-)set the model's entire configuration
+                * @param newConfiguration the new configuration to replace the new one
+                */
+            set configuration(newConfiguration: IModelConfiguration);
             /**
                 * Update the current configuration with new values.
                 * Configuration will not be overwritten, but merged with the new configuration.
@@ -841,38 +854,46 @@ declare module BabylonViewer {
             /**
                 * Get the animation's name
                 */
-            readonly name: string;
+            get name(): string;
             /**
                 * Get the current animation's state
                 */
-            readonly state: AnimationState;
+            get state(): AnimationState;
             /**
-             * Sets the speed ratio to use for all animations
-             */
-            speedRatio: number;
+                * Gets the speed ratio to use for all animations
+                */
+            get speedRatio(): number;
+            /**
+                * Sets the speed ratio to use for all animations
+                */
+            set speedRatio(value: number);
             /**
                 * Get the max numbers of frame available in the animation group
                 *
                 * In correlation to an arry, this would be ".length"
                 */
-            readonly frames: number;
+            get frames(): number;
             /**
                 * Get the current frame playing right now.
                 * This can be used to poll the frame currently playing (and, for exmaple, display a progress bar with the data)
                 *
                 * In correlation to an array, this would be the current index
                 */
-            readonly currentFrame: number;
+            get currentFrame(): number;
             /**
                 * Get the FPS value of this animation
                 */
-            readonly fps: number;
+            get fps(): number;
             /**
-             * Set the play mode.
-             * If the animation is played, it will continue playing at least once more, depending on the new play mode set.
-             * If the animation is not set, the will be initialized and will wait for the user to start playing it.
-             */
-            playMode: AnimationPlayMode;
+                * What is the animation'S play mode (looping or played once)
+                */
+            get playMode(): AnimationPlayMode;
+            /**
+                * Set the play mode.
+                * If the animation is played, it will continue playing at least once more, depending on the new play mode set.
+                * If the animation is not set, the will be initialized and will wait for the user to start playing it.
+                */
+            set playMode(value: AnimationPlayMode);
             /**
                 * Reset the animation group
                 */
@@ -1193,7 +1214,7 @@ declare module BabylonViewer {
             /**
                 * Get the template'S configuration
                 */
-            readonly configuration: ITemplateConfiguration;
+            get configuration(): ITemplateConfiguration;
             /**
                 * A template can be a parent element for other templates or HTML elements.
                 * This function will deliver all child HTML elements of this template.
@@ -1415,35 +1436,46 @@ declare module BabylonViewer {
                 * Please be careful when using labs in production.
                 */
             labs: ViewerLabs;
-            readonly defaultRenderingPipeline: BABYLON.Nullable<BABYLON.DefaultRenderingPipeline>;
+            get defaultRenderingPipeline(): BABYLON.Nullable<BABYLON.DefaultRenderingPipeline>;
             protected _vrHelper?: BABYLON.VRExperienceHelper;
-            readonly vrHelper: BABYLON.VRExperienceHelper | undefined;
+            get vrHelper(): BABYLON.VRExperienceHelper | undefined;
             constructor(_engine: BABYLON.Engine, _configurationContainer: ConfigurationContainer, _observablesManager?: ObservablesManager | undefined);
             /**
                 * Returns a boolean representing HDR support
                 */
-            readonly isHdrSupported: boolean;
+            get isHdrSupported(): boolean;
             /**
                 * Return the main color defined in the configuration.
                 */
-            readonly mainColor: BABYLON.Color3;
-            readonly reflectionColor: BABYLON.Color3;
-            animationBlendingEnabled: boolean;
-            readonly observablesManager: ObservablesManager | undefined;
+            get mainColor(): BABYLON.Color3;
+            get reflectionColor(): BABYLON.Color3;
+            get animationBlendingEnabled(): boolean;
+            set animationBlendingEnabled(value: boolean);
+            get observablesManager(): ObservablesManager | undefined;
             /**
-             * Should shadows be rendered every frame, or only once and stop.
-             * This can be used to optimize a scene.
-             *
-             * Not that the shadows will NOT disapear but will remain in place.
-             * @param process if true shadows will be updated once every frame. if false they will stop being updated.
-             */
-            processShadows: boolean;
-            groundEnabled: boolean;
+                * The flag defining whether shadows are rendered constantly or once.
+                */
+            get processShadows(): boolean;
             /**
-             * sets wether the reflection is disabled.
-             */
-            groundMirrorEnabled: boolean;
-            defaultRenderingPipelineEnabled: boolean;
+                * Should shadows be rendered every frame, or only once and stop.
+                * This can be used to optimize a scene.
+                *
+                * Not that the shadows will NOT disapear but will remain in place.
+                * @param process if true shadows will be updated once every frame. if false they will stop being updated.
+                */
+            set processShadows(process: boolean);
+            get groundEnabled(): boolean;
+            set groundEnabled(newValue: boolean);
+            /**
+                * gets wether the reflection is disabled.
+                */
+            get groundMirrorEnabled(): boolean;
+            /**
+                * sets wether the reflection is disabled.
+                */
+            set groundMirrorEnabled(value: boolean);
+            get defaultRenderingPipelineEnabled(): boolean;
+            set defaultRenderingPipelineEnabled(value: boolean);
             /**
                 * Sets the engine flags to unlock all babylon features.
                 * Can also be configured using the scene.flags configuration object
@@ -1460,8 +1492,10 @@ declare module BabylonViewer {
                 * @param globalConfiguration The global configuration object, after the new configuration was merged into it
                 */
             updateConfiguration(newConfiguration: Partial<ViewerConfiguration>): void;
-            bloomEnabled: boolean;
-            fxaaEnabled: boolean;
+            get bloomEnabled(): boolean;
+            set bloomEnabled(value: boolean);
+            get fxaaEnabled(): boolean;
+            set fxaaEnabled(value: boolean);
             setDefaultMaterial(sceneConfig: ISceneConfiguration): void;
             /**
                 * internally configure the scene using the provided configuration.
@@ -2428,11 +2462,11 @@ declare module BabylonViewer {
             /**
                 * Returns the width of a face of the texture or 0 if not available
                 */
-            readonly Width: number;
+            get Width(): number;
             /**
                 * Returns the height of a face of the texture or 0 if not available
                 */
-            readonly Height: number;
+            get Height(): number;
             /**
                 * constructor
                 * @param internalFormat WebGL pixel format for the texture on the GPU

文件差異過大導致無法顯示
+ 10 - 10
dist/preview release/viewer/babylon.viewer.js


文件差異過大導致無法顯示
+ 1 - 1
dist/preview release/viewer/babylon.viewer.max.js


+ 104 - 70
dist/preview release/viewer/babylon.viewer.module.d.ts

@@ -114,7 +114,7 @@ declare module 'babylonjs-viewer/configuration/globals' {
     export class ViewerGlobals {
         disableInit: boolean;
         disableWebGL2Support: boolean;
-        readonly version: string;
+        get version(): string;
     }
     export let viewerGlobals: ViewerGlobals;
 }
@@ -308,56 +308,56 @@ declare module 'babylonjs-viewer/viewer/viewer' {
             /**
                 * Will notify when the scene was initialized
                 */
-            readonly onSceneInitObservable: Observable<Scene>;
+            get onSceneInitObservable(): Observable<Scene>;
             /**
                 * will notify when the engine was initialized
                 */
-            readonly onEngineInitObservable: Observable<Engine>;
+            get onEngineInitObservable(): Observable<Engine>;
             /**
                 * Will notify when a new model was added to the scene.
                 * Note that added does not neccessarily mean loaded!
                 */
-            readonly onModelAddedObservable: Observable<ViewerModel>;
+            get onModelAddedObservable(): Observable<ViewerModel>;
             /**
                 * will notify after every model load
                 */
-            readonly onModelLoadedObservable: Observable<ViewerModel>;
+            get onModelLoadedObservable(): Observable<ViewerModel>;
             /**
                 * will notify when any model notify of progress
                 */
-            readonly onModelLoadProgressObservable: Observable<SceneLoaderProgressEvent>;
+            get onModelLoadProgressObservable(): Observable<SceneLoaderProgressEvent>;
             /**
                 * will notify when any model load failed.
                 */
-            readonly onModelLoadErrorObservable: Observable<{
+            get onModelLoadErrorObservable(): Observable<{
                     message: string;
                     exception: any;
             }>;
             /**
                 * Will notify when a model was removed from the scene;
                 */
-            readonly onModelRemovedObservable: Observable<ViewerModel>;
+            get onModelRemovedObservable(): Observable<ViewerModel>;
             /**
                 * will notify when a new loader was initialized.
                 * Used mainly to know when a model starts loading.
                 */
-            readonly onLoaderInitObservable: Observable<ISceneLoaderPlugin | ISceneLoaderPluginAsync>;
+            get onLoaderInitObservable(): Observable<ISceneLoaderPlugin | ISceneLoaderPluginAsync>;
             /**
                 * Observers registered here will be executed when the entire load process has finished.
                 */
-            readonly onInitDoneObservable: Observable<AbstractViewer>;
+            get onInitDoneObservable(): Observable<AbstractViewer>;
             /**
                 * Functions added to this observable will be executed on each frame rendered.
                 */
-            readonly onFrameRenderedObservable: Observable<AbstractViewer>;
+            get onFrameRenderedObservable(): Observable<AbstractViewer>;
             /**
                 * Observers registered here will be executed when VR more is entered.
                 */
-            readonly onEnteringVRObservable: Observable<AbstractViewer>;
+            get onEnteringVRObservable(): Observable<AbstractViewer>;
             /**
                 * Observers registered here will be executed when VR mode is exited.
                 */
-            readonly onExitingVRObservable: Observable<AbstractViewer>;
+            get onExitingVRObservable(): Observable<AbstractViewer>;
             observablesManager: ObservablesManager;
             /**
                 * The canvas associated with this viewer
@@ -366,7 +366,7 @@ declare module 'babylonjs-viewer/viewer/viewer' {
             /**
                 * The (single) canvas of this viewer
                 */
-            readonly canvas: HTMLCanvasElement;
+            get canvas(): HTMLCanvasElement;
             /**
                 * is this viewer disposed?
                 */
@@ -385,7 +385,7 @@ declare module 'babylonjs-viewer/viewer/viewer' {
                 */
             protected _isInit: boolean;
             protected _configurationContainer: ConfigurationContainer;
-            readonly configurationContainer: ConfigurationContainer;
+            get configurationContainer(): ConfigurationContainer;
             protected getConfigurationLoader(): RenderOnlyConfigurationLoader;
             constructor(containerElement: Element, initialConfiguration?: ViewerConfiguration);
             /**
@@ -397,15 +397,19 @@ declare module 'babylonjs-viewer/viewer/viewer' {
                 */
             isCanvasInDOM(): boolean;
             /**
-             * Set the viewer's background rendering flag.
-             */
-            renderInBackground: boolean;
+                * Is the engine currently set to rende even when the page is in background
+                */
+            get renderInBackground(): boolean;
+            /**
+                * Set the viewer's background rendering flag.
+                */
+            set renderInBackground(value: boolean);
             /**
                 * Get the configuration object. This is a reference only.
                 * The configuration can ONLY be updated using the updateConfiguration function.
                 * changing this object will have no direct effect on the scene.
                 */
-            readonly configuration: ViewerConfiguration;
+            get configuration(): ViewerConfiguration;
             /**
                 * force resizing the engine.
                 */
@@ -533,7 +537,7 @@ declare module 'babylonjs-viewer/managers/telemetryManager' {
                 * @param event The name of the Telemetry event
                 * @param details An additional value, or an object containing a list of property/value pairs
                 */
-            readonly broadcast: (event: string, viewerId?: string | undefined, details?: any) => void;
+            get broadcast(): (event: string, viewerId?: string | undefined, details?: any) => void;
             /**
                 * Log a Telemetry event for errors raised on the WebGL context.
                 * @param engine The Babylon engine with the WebGL context.
@@ -543,12 +547,12 @@ declare module 'babylonjs-viewer/managers/telemetryManager' {
                 * Enable or disable telemetry events
                 * @param enabled Boolan, true if events are enabled
                 */
-            enable: boolean;
+            set enable(enabled: boolean);
             /**
                 * Returns the current session ID or creates one if it doesn't exixt
                 * @return The current session ID
                 */
-            readonly session: string;
+            get session(): string;
             /**
                 * Disposes the telemetry manager
                 */
@@ -570,7 +574,7 @@ declare module 'babylonjs-viewer/loader/modelLoader' {
         * A Model loader is unique per (Abstract)Viewer. It is being generated by the viewer
         */
     export class ModelLoader {
-            readonly baseUrl: string;
+            get baseUrl(): string;
             /**
                 * Create a new Model loader
                 * @param _viewer the viewer using this model loader
@@ -686,13 +690,18 @@ declare module 'babylonjs-viewer/model/viewerModel' {
             loadId: number;
             loadInfo: IAsset;
             constructor(_observablesManager: ObservablesManager, modelConfiguration: IModelConfiguration, _configurationContainer?: ConfigurationContainer | undefined);
-            shadowsRenderedAfterLoad: boolean;
+            get shadowsRenderedAfterLoad(): boolean;
+            set shadowsRenderedAfterLoad(rendered: boolean);
             getViewerId(): string | undefined;
             /**
-             * Set whether this model is enabled or not.
-             */
-            enabled: boolean;
-            loaderDone: boolean;
+                * Is this model enabled?
+                */
+            get enabled(): boolean;
+            /**
+                * Set whether this model is enabled or not.
+                */
+            set enabled(enable: boolean);
+            set loaderDone(done: boolean);
             /**
                 * Add a mesh to this model.
                 * Any mesh that has no parent will be provided with the root mesh as its new parent.
@@ -704,12 +713,16 @@ declare module 'babylonjs-viewer/model/viewerModel' {
             /**
                 * get the list of meshes (excluding the root mesh)
                 */
-            readonly meshes: AbstractMesh[];
+            get meshes(): AbstractMesh[];
             /**
-             * (Re-)set the model's entire configuration
-             * @param newConfiguration the new configuration to replace the new one
-             */
-            configuration: IModelConfiguration;
+                * Get the model's configuration
+                */
+            get configuration(): IModelConfiguration;
+            /**
+                * (Re-)set the model's entire configuration
+                * @param newConfiguration the new configuration to replace the new one
+                */
+            set configuration(newConfiguration: IModelConfiguration);
             /**
                 * Update the current configuration with new values.
                 * Configuration will not be overwritten, but merged with the new configuration.
@@ -915,38 +928,46 @@ declare module 'babylonjs-viewer/model/modelAnimation' {
             /**
                 * Get the animation's name
                 */
-            readonly name: string;
+            get name(): string;
             /**
                 * Get the current animation's state
                 */
-            readonly state: AnimationState;
+            get state(): AnimationState;
             /**
-             * Sets the speed ratio to use for all animations
-             */
-            speedRatio: number;
+                * Gets the speed ratio to use for all animations
+                */
+            get speedRatio(): number;
+            /**
+                * Sets the speed ratio to use for all animations
+                */
+            set speedRatio(value: number);
             /**
                 * Get the max numbers of frame available in the animation group
                 *
                 * In correlation to an arry, this would be ".length"
                 */
-            readonly frames: number;
+            get frames(): number;
             /**
                 * Get the current frame playing right now.
                 * This can be used to poll the frame currently playing (and, for exmaple, display a progress bar with the data)
                 *
                 * In correlation to an array, this would be the current index
                 */
-            readonly currentFrame: number;
+            get currentFrame(): number;
             /**
                 * Get the FPS value of this animation
                 */
-            readonly fps: number;
+            get fps(): number;
             /**
-             * Set the play mode.
-             * If the animation is played, it will continue playing at least once more, depending on the new play mode set.
-             * If the animation is not set, the will be initialized and will wait for the user to start playing it.
-             */
-            playMode: AnimationPlayMode;
+                * What is the animation'S play mode (looping or played once)
+                */
+            get playMode(): AnimationPlayMode;
+            /**
+                * Set the play mode.
+                * If the animation is played, it will continue playing at least once more, depending on the new play mode set.
+                * If the animation is not set, the will be initialized and will wait for the user to start playing it.
+                */
+            set playMode(value: AnimationPlayMode);
             /**
                 * Reset the animation group
                 */
@@ -1293,7 +1314,7 @@ declare module 'babylonjs-viewer/templating/templateManager' {
             /**
                 * Get the template'S configuration
                 */
-            readonly configuration: ITemplateConfiguration;
+            get configuration(): ITemplateConfiguration;
             /**
                 * A template can be a parent element for other templates or HTML elements.
                 * This function will deliver all child HTML elements of this template.
@@ -1549,35 +1570,46 @@ declare module 'babylonjs-viewer/managers/sceneManager' {
                 * Please be careful when using labs in production.
                 */
             labs: ViewerLabs;
-            readonly defaultRenderingPipeline: Nullable<DefaultRenderingPipeline>;
+            get defaultRenderingPipeline(): Nullable<DefaultRenderingPipeline>;
             protected _vrHelper?: VRExperienceHelper;
-            readonly vrHelper: VRExperienceHelper | undefined;
+            get vrHelper(): VRExperienceHelper | undefined;
             constructor(_engine: Engine, _configurationContainer: ConfigurationContainer, _observablesManager?: ObservablesManager | undefined);
             /**
                 * Returns a boolean representing HDR support
                 */
-            readonly isHdrSupported: boolean;
+            get isHdrSupported(): boolean;
             /**
                 * Return the main color defined in the configuration.
                 */
-            readonly mainColor: Color3;
-            readonly reflectionColor: Color3;
-            animationBlendingEnabled: boolean;
-            readonly observablesManager: ObservablesManager | undefined;
+            get mainColor(): Color3;
+            get reflectionColor(): Color3;
+            get animationBlendingEnabled(): boolean;
+            set animationBlendingEnabled(value: boolean);
+            get observablesManager(): ObservablesManager | undefined;
             /**
-             * Should shadows be rendered every frame, or only once and stop.
-             * This can be used to optimize a scene.
-             *
-             * Not that the shadows will NOT disapear but will remain in place.
-             * @param process if true shadows will be updated once every frame. if false they will stop being updated.
-             */
-            processShadows: boolean;
-            groundEnabled: boolean;
+                * The flag defining whether shadows are rendered constantly or once.
+                */
+            get processShadows(): boolean;
             /**
-             * sets wether the reflection is disabled.
-             */
-            groundMirrorEnabled: boolean;
-            defaultRenderingPipelineEnabled: boolean;
+                * Should shadows be rendered every frame, or only once and stop.
+                * This can be used to optimize a scene.
+                *
+                * Not that the shadows will NOT disapear but will remain in place.
+                * @param process if true shadows will be updated once every frame. if false they will stop being updated.
+                */
+            set processShadows(process: boolean);
+            get groundEnabled(): boolean;
+            set groundEnabled(newValue: boolean);
+            /**
+                * gets wether the reflection is disabled.
+                */
+            get groundMirrorEnabled(): boolean;
+            /**
+                * sets wether the reflection is disabled.
+                */
+            set groundMirrorEnabled(value: boolean);
+            get defaultRenderingPipelineEnabled(): boolean;
+            set defaultRenderingPipelineEnabled(value: boolean);
             /**
                 * Sets the engine flags to unlock all babylon features.
                 * Can also be configured using the scene.flags configuration object
@@ -1594,8 +1626,10 @@ declare module 'babylonjs-viewer/managers/sceneManager' {
                 * @param globalConfiguration The global configuration object, after the new configuration was merged into it
                 */
             updateConfiguration(newConfiguration: Partial<ViewerConfiguration>): void;
-            bloomEnabled: boolean;
-            fxaaEnabled: boolean;
+            get bloomEnabled(): boolean;
+            set bloomEnabled(value: boolean);
+            get fxaaEnabled(): boolean;
+            set fxaaEnabled(value: boolean);
             setDefaultMaterial(sceneConfig: ISceneConfiguration): void;
             /**
                 * internally configure the scene using the provided configuration.
@@ -2642,11 +2676,11 @@ declare module 'babylonjs-viewer/labs/texture' {
             /**
                 * Returns the width of a face of the texture or 0 if not available
                 */
-            readonly Width: number;
+            get Width(): number;
             /**
                 * Returns the height of a face of the texture or 0 if not available
                 */
-            readonly Height: number;
+            get Height(): number;
             /**
                 * constructor
                 * @param internalFormat WebGL pixel format for the texture on the GPU

+ 46 - 42
dist/preview release/viewer/babylonjs.loaders.module.d.ts

@@ -120,7 +120,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Raised when the asset has been parsed
          */
-        onParsed: (loaderData: IGLTFLoaderData) => void;
+        set onParsed(callback: (loaderData: IGLTFLoaderData) => void);
         /**
          * Set this property to false to disable incremental loading which delays the loader from calling the success callback until after loading the meshes and shaders.
          * Textures always loads asynchronously. For example, the success callback can compute the bounding information of the loaded meshes when incremental loading is disabled.
@@ -182,7 +182,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised when the loader creates a mesh after parsing the glTF properties of the mesh.
          */
-        onMeshLoaded: (mesh: AbstractMesh) => void;
+        set onMeshLoaded(callback: (mesh: AbstractMesh) => void);
         /**
          * Observable raised when the loader creates a texture after parsing the glTF properties of the texture.
          */
@@ -191,7 +191,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised when the loader creates a texture after parsing the glTF properties of the texture.
          */
-        onTextureLoaded: (texture: BaseTexture) => void;
+        set onTextureLoaded(callback: (texture: BaseTexture) => void);
         /**
          * Observable raised when the loader creates a material after parsing the glTF properties of the material.
          */
@@ -200,7 +200,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised when the loader creates a material after parsing the glTF properties of the material.
          */
-        onMaterialLoaded: (material: Material) => void;
+        set onMaterialLoaded(callback: (material: Material) => void);
         /**
          * Observable raised when the loader creates a camera after parsing the glTF properties of the camera.
          */
@@ -209,7 +209,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised when the loader creates a camera after parsing the glTF properties of the camera.
          */
-        onCameraLoaded: (camera: Camera) => void;
+        set onCameraLoaded(callback: (camera: Camera) => void);
         /**
          * Observable raised when the asset is completely loaded, immediately before the loader is disposed.
          * For assets with LODs, raised when all of the LODs are complete.
@@ -222,7 +222,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
          * For assets with LODs, raised when all of the LODs are complete.
          * For assets without LODs, raised when the model is complete, immediately after the loader resolves the returned promise.
          */
-        onComplete: () => void;
+        set onComplete(callback: () => void);
         /**
          * Observable raised when an error occurs.
          */
@@ -231,7 +231,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised when an error occurs.
          */
-        onError: (reason: any) => void;
+        set onError(callback: (reason: any) => void);
         /**
          * Observable raised after the loader is disposed.
          */
@@ -240,7 +240,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised after the loader is disposed.
          */
-        onDispose: () => void;
+        set onDispose(callback: () => void);
         /**
          * Observable raised after a loader extension is created.
          * Set additional options for a loader extension in this event.
@@ -250,15 +250,17 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised after a loader extension is created.
          */
-        onExtensionLoaded: (extension: IGLTFLoaderExtension) => void;
+        set onExtensionLoaded(callback: (extension: IGLTFLoaderExtension) => void);
         /**
          * Defines if the loader logging is enabled.
          */
-        loggingEnabled: boolean;
+        get loggingEnabled(): boolean;
+        set loggingEnabled(value: boolean);
         /**
          * Defines if the loader should capture performance counters.
          */
-        capturePerformanceCounters: boolean;
+        get capturePerformanceCounters(): boolean;
+        set capturePerformanceCounters(value: boolean);
         /**
          * Defines if the loader should validate the asset.
          */
@@ -271,7 +273,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * Callback raised after a loader extension is created.
          */
-        onValidated: (results: GLTF2.IGLTFValidationResults) => void;
+        set onValidated(callback: (results: GLTF2.IGLTFValidationResults) => void);
         private _loader;
         /**
          * Name of the loader ("gltf")
@@ -316,7 +318,7 @@ declare module "babylonjs-loaders/glTF/glTFFileLoader" {
         /**
          * The loader state or null if the loader is not active.
          */
-        readonly loaderState: Nullable<GLTFLoaderState>;
+        get loaderState(): Nullable<GLTFLoaderState>;
         /**
          * Returns a promise that resolves when the asset is completely loaded.
          * @returns a promise that resolves when the asset is completely loaded.
@@ -896,7 +898,7 @@ declare module "babylonjs-loaders/glTF/1.0/glTFLoader" {
     export abstract class GLTFLoaderExtension {
         private _name;
         constructor(name: string);
-        readonly name: string;
+        get name(): string;
         /**
         * Defines an override for loading the runtime
         * Return true to stop further extensions from loading the runtime
@@ -1399,27 +1401,27 @@ declare module "babylonjs-loaders/glTF/2.0/glTFLoader" {
         /**
          * Gets the loader state.
          */
-        readonly state: Nullable<GLTFLoaderState>;
+        get state(): Nullable<GLTFLoaderState>;
         /**
          * The object that represents the glTF JSON.
          */
-        readonly gltf: IGLTF;
+        get gltf(): IGLTF;
         /**
          * The BIN chunk of a binary glTF.
          */
-        readonly bin: Nullable<IDataBuffer>;
+        get bin(): Nullable<IDataBuffer>;
         /**
          * The parent file loader.
          */
-        readonly parent: GLTFFileLoader;
+        get parent(): GLTFFileLoader;
         /**
          * The Babylon scene when loading the asset.
          */
-        readonly babylonScene: Scene;
+        get babylonScene(): Scene;
         /**
          * The root Babylon mesh when loading the asset.
          */
-        readonly rootBabylonMesh: Mesh;
+        get rootBabylonMesh(): Mesh;
         /** @hidden */
         constructor(parent: GLTFFileLoader);
         /** @hidden */
@@ -2344,7 +2346,7 @@ declare module "babylonjs-loaders/OBJ/objFileLoader" {
          * @param meshLoadOptions options for loading and parsing OBJ/MTL files.
          */
         constructor(meshLoadOptions?: MeshLoadOptions);
-        private static readonly currentMeshLoadOptions;
+        private static get currentMeshLoadOptions();
         /**
          * Calls synchronously the MTL file attached to this obj.
          * Load function or importMesh function don't enable to load 2 files in the same time asynchronously.
@@ -2645,7 +2647,7 @@ declare module BABYLON {
         /**
          * Raised when the asset has been parsed
          */
-        onParsed: (loaderData: IGLTFLoaderData) => void;
+        set onParsed(callback: (loaderData: IGLTFLoaderData) => void);
         /**
          * Set this property to false to disable incremental loading which delays the loader from calling the success callback until after loading the meshes and shaders.
          * Textures always loads asynchronously. For example, the success callback can compute the bounding information of the loaded meshes when incremental loading is disabled.
@@ -2707,7 +2709,7 @@ declare module BABYLON {
         /**
          * Callback raised when the loader creates a mesh after parsing the glTF properties of the mesh.
          */
-        onMeshLoaded: (mesh: AbstractMesh) => void;
+        set onMeshLoaded(callback: (mesh: AbstractMesh) => void);
         /**
          * Observable raised when the loader creates a texture after parsing the glTF properties of the texture.
          */
@@ -2716,7 +2718,7 @@ declare module BABYLON {
         /**
          * Callback raised when the loader creates a texture after parsing the glTF properties of the texture.
          */
-        onTextureLoaded: (texture: BaseTexture) => void;
+        set onTextureLoaded(callback: (texture: BaseTexture) => void);
         /**
          * Observable raised when the loader creates a material after parsing the glTF properties of the material.
          */
@@ -2725,7 +2727,7 @@ declare module BABYLON {
         /**
          * Callback raised when the loader creates a material after parsing the glTF properties of the material.
          */
-        onMaterialLoaded: (material: Material) => void;
+        set onMaterialLoaded(callback: (material: Material) => void);
         /**
          * Observable raised when the loader creates a camera after parsing the glTF properties of the camera.
          */
@@ -2734,7 +2736,7 @@ declare module BABYLON {
         /**
          * Callback raised when the loader creates a camera after parsing the glTF properties of the camera.
          */
-        onCameraLoaded: (camera: Camera) => void;
+        set onCameraLoaded(callback: (camera: Camera) => void);
         /**
          * Observable raised when the asset is completely loaded, immediately before the loader is disposed.
          * For assets with LODs, raised when all of the LODs are complete.
@@ -2747,7 +2749,7 @@ declare module BABYLON {
          * For assets with LODs, raised when all of the LODs are complete.
          * For assets without LODs, raised when the model is complete, immediately after the loader resolves the returned promise.
          */
-        onComplete: () => void;
+        set onComplete(callback: () => void);
         /**
          * Observable raised when an error occurs.
          */
@@ -2756,7 +2758,7 @@ declare module BABYLON {
         /**
          * Callback raised when an error occurs.
          */
-        onError: (reason: any) => void;
+        set onError(callback: (reason: any) => void);
         /**
          * Observable raised after the loader is disposed.
          */
@@ -2765,7 +2767,7 @@ declare module BABYLON {
         /**
          * Callback raised after the loader is disposed.
          */
-        onDispose: () => void;
+        set onDispose(callback: () => void);
         /**
          * Observable raised after a loader extension is created.
          * Set additional options for a loader extension in this event.
@@ -2775,15 +2777,17 @@ declare module BABYLON {
         /**
          * Callback raised after a loader extension is created.
          */
-        onExtensionLoaded: (extension: IGLTFLoaderExtension) => void;
+        set onExtensionLoaded(callback: (extension: IGLTFLoaderExtension) => void);
         /**
          * Defines if the loader logging is enabled.
          */
-        loggingEnabled: boolean;
+        get loggingEnabled(): boolean;
+        set loggingEnabled(value: boolean);
         /**
          * Defines if the loader should capture performance counters.
          */
-        capturePerformanceCounters: boolean;
+        get capturePerformanceCounters(): boolean;
+        set capturePerformanceCounters(value: boolean);
         /**
          * Defines if the loader should validate the asset.
          */
@@ -2796,7 +2800,7 @@ declare module BABYLON {
         /**
          * Callback raised after a loader extension is created.
          */
-        onValidated: (results: BABYLON.GLTF2.IGLTFValidationResults) => void;
+        set onValidated(callback: (results: BABYLON.GLTF2.IGLTFValidationResults) => void);
         private _loader;
         /**
          * Name of the loader ("gltf")
@@ -2841,7 +2845,7 @@ declare module BABYLON {
         /**
          * The loader state or null if the loader is not active.
          */
-        readonly loaderState: Nullable<GLTFLoaderState>;
+        get loaderState(): Nullable<GLTFLoaderState>;
         /**
          * Returns a promise that resolves when the asset is completely loaded.
          * @returns a promise that resolves when the asset is completely loaded.
@@ -3400,7 +3404,7 @@ declare module BABYLON.GLTF1 {
     export abstract class GLTFLoaderExtension {
         private _name;
         constructor(name: string);
-        readonly name: string;
+        get name(): string;
         /**
         * Defines an override for loading the runtime
         * Return true to stop further extensions from loading the runtime
@@ -3849,27 +3853,27 @@ declare module BABYLON.GLTF2 {
         /**
          * Gets the loader state.
          */
-        readonly state: Nullable<GLTFLoaderState>;
+        get state(): Nullable<GLTFLoaderState>;
         /**
          * The object that represents the glTF JSON.
          */
-        readonly gltf: IGLTF;
+        get gltf(): IGLTF;
         /**
          * The BIN chunk of a binary glTF.
          */
-        readonly bin: Nullable<IDataBuffer>;
+        get bin(): Nullable<IDataBuffer>;
         /**
          * The parent file loader.
          */
-        readonly parent: GLTFFileLoader;
+        get parent(): GLTFFileLoader;
         /**
          * The Babylon scene when loading the asset.
          */
-        readonly babylonScene: Scene;
+        get babylonScene(): Scene;
         /**
          * The root Babylon mesh when loading the asset.
          */
-        readonly rootBabylonMesh: Mesh;
+        get rootBabylonMesh(): Mesh;
         /** @hidden */
         constructor(parent: GLTFFileLoader);
         /** @hidden */
@@ -4676,7 +4680,7 @@ declare module BABYLON {
          * @param meshLoadOptions options for loading and parsing OBJ/MTL files.
          */
         constructor(meshLoadOptions?: MeshLoadOptions);
-        private static readonly currentMeshLoadOptions;
+        private static get currentMeshLoadOptions();
         /**
          * Calls synchronously the MTL file attached to this obj.
          * Load function or importMesh function don't enable to load 2 files in the same time asynchronously.

+ 4 - 4
package.json

@@ -67,7 +67,7 @@
         "gulp-rename": "^1.4.0",
         "gulp-replace": "~1.0.0",
         "gulp-tslint": "^8.1.3",
-        "gulp-typedoc": "^2.2.2",
+        "gulp-typedoc": "^2.2.3",
         "gulp-typescript": "4.0.2",
         "karma": "^4.0.1",
         "karma-browserstack-launcher": "^1.4.0",
@@ -96,8 +96,8 @@
         "ts-loader": "^5.2.1",
         "tslib": "^1.10.0",
         "tslint": "^5.11.0",
-        "typedoc": "^0.15.0",
-        "typescript": "~3.6.3",
+        "typedoc": "^0.15.4",
+        "typescript": "~3.7.3",
         "webpack": "^4.29.3",
         "webpack-bundle-analyzer": "^3.1.0",
         "webpack-cli": "^3.3.9",
@@ -106,4 +106,4 @@
         "xhr2": "^0.1.4",
         "xmlbuilder": "8.2.2"
     }
-}
+}

+ 1 - 1
src/Engines/Extensions/engine.multiRender.ts

@@ -282,7 +282,7 @@ ThinEngine.prototype.updateMultipleRenderTargetTextureSampleCount = function(tex
         }
     }
 
-    if (samples > 1) {
+    if (samples > 1 && gl.renderbufferStorageMultisample) {
         let framebuffer = gl.createFramebuffer();
 
         if (!framebuffer) {

+ 2 - 2
src/Engines/engine.ts

@@ -489,7 +489,7 @@ export class Engine extends ThinEngine {
 
         Engine.Instances.push(this);
 
-        if ((<HTMLCanvasElement>canvasOrContext).getContext) {
+        if ((<any>canvasOrContext).getContext) {
             let canvas = <HTMLCanvasElement>canvasOrContext;
 
             this._onCanvasFocus = () => {
@@ -1722,7 +1722,7 @@ export class Engine extends ThinEngine {
             texture._MSAARenderBuffer = null;
         }
 
-        if (samples > 1) {
+        if (samples > 1 && gl.renderbufferStorageMultisample) {
             let framebuffer = gl.createFramebuffer();
 
             if (!framebuffer) {

+ 1 - 1
src/Engines/thinEngine.ts

@@ -3299,7 +3299,7 @@ export class ThinEngine {
 
         gl.bindRenderbuffer(gl.RENDERBUFFER, depthStencilBuffer);
 
-        if (samples > 1) {
+        if (samples > 1 && gl.renderbufferStorageMultisample) {
             gl.renderbufferStorageMultisample(gl.RENDERBUFFER, samples, msInternalFormat, width, height);
         } else {
             gl.renderbufferStorage(gl.RENDERBUFFER, internalFormat, width, height);

+ 1 - 1
src/Gamepads/gamepadManager.ts

@@ -18,7 +18,7 @@ export class GamepadManager {
     /** @hidden */
     public _isMonitoring: boolean = false;
     private _gamepadEventSupported: boolean;
-    private _gamepadSupport: () => Array<any>;
+    private _gamepadSupport?: () => Array<any>;
 
     /**
      * observable to be triggered when the gamepad controller has been connected

+ 1 - 1
src/LibDeclarations/webgl.d.ts

@@ -8,7 +8,7 @@ interface WebGLRenderingContext {
     deleteVertexArray(vao: WebGLVertexArrayObject): void;
 
     blitFramebuffer(srcX0: number, srcY0: number, srcX1: number, srcY1: number, dstX0: number, dstY0: number, dstX1: number, dstY1: number, mask: number, filter: number): void;
-    renderbufferStorageMultisample(target: number, samples: number, internalformat: number, width: number, height: number): void;
+    renderbufferStorageMultisample?(target: number, samples: number, internalformat: number, width: number, height: number): void;
 
     bindBufferBase(target: number, index: number, buffer: WebGLBuffer | null): void;
     getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): number;

+ 1 - 1
src/Meshes/abstractMesh.ts

@@ -376,7 +376,7 @@ export class AbstractMesh extends TransformNode implements IDisposable, ICullabl
             value.meshMap[this.uniqueId] = this;
         }
 
-        if (this.onMaterialChangedObservable.hasObservers) {
+        if (this.onMaterialChangedObservable.hasObservers()) {
             this.onMaterialChangedObservable.notifyObservers(this);
         }
 

+ 2 - 2
src/Misc/promise.ts

@@ -71,10 +71,10 @@ class InternalPromise<T> {
         if (this._state !== PromiseStates.Pending) {
             setTimeout(() => {
                 if (this._state === PromiseStates.Fulfilled || this._rejectWasConsumed) {
-                    let returnedValue = newPromise._resolve(this._result);
+                    let returnedValue: any = newPromise._resolve(this._result);
 
                     if (returnedValue !== undefined && returnedValue !== null) {
-                        if ((<InternalPromise<T>>returnedValue)._state !== undefined) {
+                        if ((<any>returnedValue)._state !== undefined) {
                             let returnedPromise = returnedValue as InternalPromise<T>;
                             newPromise._children.push(returnedPromise);
                             returnedPromise._parent = newPromise;

+ 1 - 3
src/Misc/tools.ts

@@ -1010,9 +1010,7 @@ export class Tools {
 
         Tools._EndUserMark(counterName, condition);
 
-        if (console.time) {
-            console.timeEnd(counterName);
-        }
+        console.timeEnd(counterName);
     }
 
     /**