David Catuhe 7 年之前
父節點
當前提交
13b482f26d

文件差異過大導致無法顯示
+ 7673 - 7673
Playground/babylon.d.txt


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


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


+ 7 - 5
dist/preview release/babylon.max.js

@@ -49478,7 +49478,7 @@ var BABYLON;
              * as outer angle.
              */
             get: function () {
-                return this._angle;
+                return this._innerAngle;
             },
             /**
              * Only used in gltf falloff mode, this defines the angle where
@@ -55808,7 +55808,6 @@ var BABYLON;
                     // Look at using Y as forward
                     emitterMesh.lookAt(BABYLON.Tmp.Vector3[0], 0, Math.PI / 2);
                 }
-                emitterMesh.computeWorldMatrix(true);
             }
             else {
                 var emitterPosition = subEmitter.particleSystem.emitter;
@@ -55823,7 +55822,7 @@ var BABYLON;
             var _this = this;
             if (this._attachedSubEmitters && this._attachedSubEmitters.length > 0) {
                 this._attachedSubEmitters.forEach(function (subEmitter) {
-                    _this, _this._inheritParticleInfoToSubEmitter(subEmitter);
+                    _this._inheritParticleInfoToSubEmitter(subEmitter);
                 });
             }
         };
@@ -57429,6 +57428,9 @@ var BABYLON;
                 this.activeSubSystems = new Array();
             }
             if (this.preWarmCycles) {
+                if (this.emitter instanceof BABYLON.AbstractMesh) {
+                    this.emitter.computeWorldMatrix(true);
+                }
                 var noiseTextureAsProcedural_1 = this.noiseTexture;
                 if (noiseTextureAsProcedural_1 && noiseTextureAsProcedural_1.onGeneratedObservable) {
                     noiseTextureAsProcedural_1.onGeneratedObservable.addOnce(function () {
@@ -59692,7 +59694,7 @@ var BABYLON;
                 emitter = emitter.clone();
             }
             else if (emitter instanceof BABYLON.AbstractMesh) {
-                emitter = new BABYLON.Mesh("", emitter._scene);
+                emitter = new BABYLON.Mesh("", emitter.getScene());
             }
             var clone = new SubEmitter(this.particleSystem.clone("", emitter));
             // Clone properties
@@ -65957,7 +65959,7 @@ var BABYLON;
      *
      * **Decoder**
      *
-     * By default, the configuration points to a copy of the Draco decoder files for glTF from https://preview.babylonjs.com.
+     * By default, the configuration points to a copy of the Draco decoder files for glTF from the babylon.js preview cdn https://preview.babylonjs.com/draco_wasm_wrapper_gltf.js.
      *
      * To update the configuration, use the following code:
      * ```javascript

+ 7 - 5
dist/preview release/babylon.no-module.max.js

@@ -49445,7 +49445,7 @@ var BABYLON;
              * as outer angle.
              */
             get: function () {
-                return this._angle;
+                return this._innerAngle;
             },
             /**
              * Only used in gltf falloff mode, this defines the angle where
@@ -55775,7 +55775,6 @@ var BABYLON;
                     // Look at using Y as forward
                     emitterMesh.lookAt(BABYLON.Tmp.Vector3[0], 0, Math.PI / 2);
                 }
-                emitterMesh.computeWorldMatrix(true);
             }
             else {
                 var emitterPosition = subEmitter.particleSystem.emitter;
@@ -55790,7 +55789,7 @@ var BABYLON;
             var _this = this;
             if (this._attachedSubEmitters && this._attachedSubEmitters.length > 0) {
                 this._attachedSubEmitters.forEach(function (subEmitter) {
-                    _this, _this._inheritParticleInfoToSubEmitter(subEmitter);
+                    _this._inheritParticleInfoToSubEmitter(subEmitter);
                 });
             }
         };
@@ -57396,6 +57395,9 @@ var BABYLON;
                 this.activeSubSystems = new Array();
             }
             if (this.preWarmCycles) {
+                if (this.emitter instanceof BABYLON.AbstractMesh) {
+                    this.emitter.computeWorldMatrix(true);
+                }
                 var noiseTextureAsProcedural_1 = this.noiseTexture;
                 if (noiseTextureAsProcedural_1 && noiseTextureAsProcedural_1.onGeneratedObservable) {
                     noiseTextureAsProcedural_1.onGeneratedObservable.addOnce(function () {
@@ -59659,7 +59661,7 @@ var BABYLON;
                 emitter = emitter.clone();
             }
             else if (emitter instanceof BABYLON.AbstractMesh) {
-                emitter = new BABYLON.Mesh("", emitter._scene);
+                emitter = new BABYLON.Mesh("", emitter.getScene());
             }
             var clone = new SubEmitter(this.particleSystem.clone("", emitter));
             // Clone properties
@@ -65924,7 +65926,7 @@ var BABYLON;
      *
      * **Decoder**
      *
-     * By default, the configuration points to a copy of the Draco decoder files for glTF from https://preview.babylonjs.com.
+     * By default, the configuration points to a copy of the Draco decoder files for glTF from the babylon.js preview cdn https://preview.babylonjs.com/draco_wasm_wrapper_gltf.js.
      *
      * To update the configuration, use the following code:
      * ```javascript

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


+ 7 - 5
dist/preview release/es6.js

@@ -49445,7 +49445,7 @@ var BABYLON;
              * as outer angle.
              */
             get: function () {
-                return this._angle;
+                return this._innerAngle;
             },
             /**
              * Only used in gltf falloff mode, this defines the angle where
@@ -55775,7 +55775,6 @@ var BABYLON;
                     // Look at using Y as forward
                     emitterMesh.lookAt(BABYLON.Tmp.Vector3[0], 0, Math.PI / 2);
                 }
-                emitterMesh.computeWorldMatrix(true);
             }
             else {
                 var emitterPosition = subEmitter.particleSystem.emitter;
@@ -55790,7 +55789,7 @@ var BABYLON;
             var _this = this;
             if (this._attachedSubEmitters && this._attachedSubEmitters.length > 0) {
                 this._attachedSubEmitters.forEach(function (subEmitter) {
-                    _this, _this._inheritParticleInfoToSubEmitter(subEmitter);
+                    _this._inheritParticleInfoToSubEmitter(subEmitter);
                 });
             }
         };
@@ -57396,6 +57395,9 @@ var BABYLON;
                 this.activeSubSystems = new Array();
             }
             if (this.preWarmCycles) {
+                if (this.emitter instanceof BABYLON.AbstractMesh) {
+                    this.emitter.computeWorldMatrix(true);
+                }
                 var noiseTextureAsProcedural_1 = this.noiseTexture;
                 if (noiseTextureAsProcedural_1 && noiseTextureAsProcedural_1.onGeneratedObservable) {
                     noiseTextureAsProcedural_1.onGeneratedObservable.addOnce(function () {
@@ -59659,7 +59661,7 @@ var BABYLON;
                 emitter = emitter.clone();
             }
             else if (emitter instanceof BABYLON.AbstractMesh) {
-                emitter = new BABYLON.Mesh("", emitter._scene);
+                emitter = new BABYLON.Mesh("", emitter.getScene());
             }
             var clone = new SubEmitter(this.particleSystem.clone("", emitter));
             // Clone properties
@@ -65924,7 +65926,7 @@ var BABYLON;
      *
      * **Decoder**
      *
-     * By default, the configuration points to a copy of the Draco decoder files for glTF from https://preview.babylonjs.com.
+     * By default, the configuration points to a copy of the Draco decoder files for glTF from the babylon.js preview cdn https://preview.babylonjs.com/draco_wasm_wrapper_gltf.js.
      *
      * To update the configuration, use the following code:
      * ```javascript

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

@@ -3434,8 +3434,8 @@ var BABYLON;
                     return GLTF2.GLTFLoader.LoadExtensionAsync(context, node, this.name, function (extensionContext, extension) {
                         return _this._loader.loadNodeAsync(context, node, function (babylonMesh) {
                             var babylonLight;
-                            var name = babylonMesh.name;
                             var light = GLTF2.ArrayItem.Get(extensionContext, _this._lights, extension.light);
+                            var name = light.name || babylonMesh.name;
                             switch (light.type) {
                                 case LightType.DIRECTIONAL: {
                                     babylonLight = new BABYLON.DirectionalLight(name, BABYLON.Vector3.Backward(), _this._loader.babylonScene);
@@ -3446,9 +3446,9 @@ var BABYLON;
                                     break;
                                 }
                                 case LightType.SPOT: {
-                                    var babylonSpotLight = new BABYLON.SpotLight(name, BABYLON.Vector3.Zero(), BABYLON.Vector3.Backward(), 0, 2, _this._loader.babylonScene);
-                                    babylonSpotLight.angle = light.spot && light.spot.outerConeAngle || Math.PI / 4;
-                                    babylonSpotLight.innerAngle = light.spot && light.spot.innerConeAngle || 0;
+                                    var babylonSpotLight = new BABYLON.SpotLight(name, BABYLON.Vector3.Zero(), BABYLON.Vector3.Backward(), 0, 1, _this._loader.babylonScene);
+                                    babylonSpotLight.angle = ((light.spot && light.spot.outerConeAngle) || Math.PI / 4) * 2;
+                                    babylonSpotLight.innerAngle = ((light.spot && light.spot.innerConeAngle) || 0) * 2;
                                     babylonLight = babylonSpotLight;
                                     break;
                                 }

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


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

@@ -5641,8 +5641,8 @@ var BABYLON;
                     return GLTF2.GLTFLoader.LoadExtensionAsync(context, node, this.name, function (extensionContext, extension) {
                         return _this._loader.loadNodeAsync(context, node, function (babylonMesh) {
                             var babylonLight;
-                            var name = babylonMesh.name;
                             var light = GLTF2.ArrayItem.Get(extensionContext, _this._lights, extension.light);
+                            var name = light.name || babylonMesh.name;
                             switch (light.type) {
                                 case LightType.DIRECTIONAL: {
                                     babylonLight = new BABYLON.DirectionalLight(name, BABYLON.Vector3.Backward(), _this._loader.babylonScene);
@@ -5653,9 +5653,9 @@ var BABYLON;
                                     break;
                                 }
                                 case LightType.SPOT: {
-                                    var babylonSpotLight = new BABYLON.SpotLight(name, BABYLON.Vector3.Zero(), BABYLON.Vector3.Backward(), 0, 2, _this._loader.babylonScene);
-                                    babylonSpotLight.angle = light.spot && light.spot.outerConeAngle || Math.PI / 4;
-                                    babylonSpotLight.innerAngle = light.spot && light.spot.innerConeAngle || 0;
+                                    var babylonSpotLight = new BABYLON.SpotLight(name, BABYLON.Vector3.Zero(), BABYLON.Vector3.Backward(), 0, 1, _this._loader.babylonScene);
+                                    babylonSpotLight.angle = ((light.spot && light.spot.outerConeAngle) || Math.PI / 4) * 2;
+                                    babylonSpotLight.innerAngle = ((light.spot && light.spot.innerConeAngle) || 0) * 2;
                                     babylonLight = babylonSpotLight;
                                     break;
                                 }

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


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

@@ -6700,8 +6700,8 @@ var BABYLON;
                     return GLTF2.GLTFLoader.LoadExtensionAsync(context, node, this.name, function (extensionContext, extension) {
                         return _this._loader.loadNodeAsync(context, node, function (babylonMesh) {
                             var babylonLight;
-                            var name = babylonMesh.name;
                             var light = GLTF2.ArrayItem.Get(extensionContext, _this._lights, extension.light);
+                            var name = light.name || babylonMesh.name;
                             switch (light.type) {
                                 case LightType.DIRECTIONAL: {
                                     babylonLight = new BABYLON.DirectionalLight(name, BABYLON.Vector3.Backward(), _this._loader.babylonScene);
@@ -6712,9 +6712,9 @@ var BABYLON;
                                     break;
                                 }
                                 case LightType.SPOT: {
-                                    var babylonSpotLight = new BABYLON.SpotLight(name, BABYLON.Vector3.Zero(), BABYLON.Vector3.Backward(), 0, 2, _this._loader.babylonScene);
-                                    babylonSpotLight.angle = light.spot && light.spot.outerConeAngle || Math.PI / 4;
-                                    babylonSpotLight.innerAngle = light.spot && light.spot.innerConeAngle || 0;
+                                    var babylonSpotLight = new BABYLON.SpotLight(name, BABYLON.Vector3.Zero(), BABYLON.Vector3.Backward(), 0, 1, _this._loader.babylonScene);
+                                    babylonSpotLight.angle = ((light.spot && light.spot.outerConeAngle) || Math.PI / 4) * 2;
+                                    babylonSpotLight.innerAngle = ((light.spot && light.spot.innerConeAngle) || 0) * 2;
                                     babylonLight = babylonSpotLight;
                                     break;
                                 }

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


+ 159 - 9
dist/preview release/viewer/babylon.viewer.d.ts

@@ -515,10 +515,167 @@ declare module BabylonViewer {
     }
 }
 declare module BabylonViewer {
+    /**
+        * The current state of the model
+        */
+    export enum ModelState {
+            INIT = 0,
+            LOADING = 1,
+            LOADED = 2,
+            ENTRY = 3,
+            ENTRYDONE = 4,
+            COMPLETE = 5,
+            CANCELED = 6,
+            ERROR = 7
+    }
+    /**
+        * The viewer model is a container for all assets representing a sngle loaded model.
+        */
+    export class ViewerModel implements BABYLON.IDisposable {
+            /**
+                * The loader used to load this model.
+                */
+            loader: BABYLON.ISceneLoaderPlugin | BABYLON.ISceneLoaderPluginAsync;
+            /**
+                * This model's root mesh (the parent of all other meshes).
+                * This mesh does not(!) exist in the meshes array.
+                */
+            rootMesh: BABYLON.AbstractMesh;
+            /**
+                * ParticleSystems connected to this model
+                */
+            particleSystems: Array<BABYLON.IParticleSystem>;
+            /**
+                * Skeletons defined in this model
+                */
+            skeletons: Array<BABYLON.Skeleton>;
+            /**
+                * The current model animation.
+                * On init, this will be undefined.
+                */
+            currentAnimation: IModelAnimation;
+            /**
+                * Observers registered here will be executed when the model is done loading
+                */
+            onLoadedObservable: BABYLON.Observable<ViewerModel>;
+            /**
+                * Observers registered here will be executed when the loader notified of a progress event
+                */
+            onLoadProgressObservable: BABYLON.Observable<BABYLON.SceneLoaderProgressEvent>;
+            /**
+                * Observers registered here will be executed when the loader notified of an error.
+                */
+            onLoadErrorObservable: BABYLON.Observable<{
+                    message: string;
+                    exception: any;
+            }>;
+            /**
+                * Will be executed after the model finished loading and complete, including entry animation and lod
+                */
+            onCompleteObservable: BABYLON.Observable<ViewerModel>;
+            /**
+                * Observers registered here will be executed every time the model is being configured.
+                * This can be used to extend the model's configuration without extending the class itself
+                */
+            onAfterConfigure: BABYLON.Observable<ViewerModel>;
+            /**
+                * The current model state (loaded, error, etc)
+                */
+            state: ModelState;
+            /**
+                * A loadID provided by the modelLoader, unique to ths (Abstract)Viewer instance.
+                */
+            loadId: number;
+            loadInfo: BABYLON.GLTF2.IAsset;
+            constructor(_observablesManager: ObservablesManager, modelConfiguration: IModelConfiguration, _configurationContainer?: ConfigurationContainer | undefined);
+            shadowsRenderedAfterLoad: boolean;
+            getViewerId(): string | undefined;
+            /**
+             * Set whether this model is enabled or not.
+             */
+            enabled: boolean;
+            loaderDone: boolean;
+            /**
+                * Add a mesh to this model.
+                * Any mesh that has no parent will be provided with the root mesh as its new parent.
+                *
+                * @param mesh the new mesh to add
+                * @param triggerLoaded should this mesh trigger the onLoaded observable. Used when adding meshes manually.
+                */
+            addMesh(mesh: BABYLON.AbstractMesh, triggerLoaded?: boolean): Promise<ViewerModel> | undefined;
+            /**
+                * get the list of meshes (excluding the root mesh)
+                */
+            readonly meshes: BABYLON.AbstractMesh[];
+            /**
+             * (Re-)set the model's entire configuration
+             * @param newConfiguration the new configuration to replace the new one
+             */
+            configuration: IModelConfiguration;
+            /**
+                * Update the current configuration with new values.
+                * Configuration will not be overwritten, but merged with the new configuration.
+                * Priority is to the new configuration
+                * @param newConfiguration the configuration to be merged into the current configuration;
+                */
+            updateConfiguration(newConfiguration: Partial<IModelConfiguration>): void;
+            /**
+                * Add a new animation group to this model.
+                * @param animationGroup the new animation group to be added
+                */
+            addAnimationGroup(animationGroup: BABYLON.AnimationGroup): void;
+            /**
+                * Get the ModelAnimation array
+                */
+            getAnimations(): Array<IModelAnimation>;
+            /**
+                * Get the animations' names. Using the names you can play a specific animation.
+                */
+            getAnimationNames(): Array<string>;
+            /**
+                * Get an animation by the provided name. Used mainly when playing n animation.
+                * @param name the name of the animation to find
+                */
+            protected _getAnimationByName(name: string): BABYLON.Nullable<IModelAnimation>;
+            /**
+                * Choose an initialized animation using its name and start playing it
+                * @param name the name of the animation to play
+                * @returns The model aniamtion to be played.
+                */
+            playAnimation(name: string): IModelAnimation;
+            setCurrentAnimationByName(name: string): IModelAnimation;
+            /**
+                * Apply a material configuration to a material
+                * @param material BABYLON.Material to apply configuration to
+                * @hidden
+                */
+            _applyModelMaterialConfiguration(material: BABYLON.Material): void;
+            /**
+             * Begin @animations with the specified @easingFunction
+             * @param animations The BABYLON Animations to begin
+             * @param duration of transition, in seconds
+             * @param easingFunction An easing function to apply
+             * @param easingMode A easing mode to apply to the easingFunction
+             * @param onAnimationEnd Call back trigger at the end of the animation.
+             */
+            transitionTo(animations: BABYLON.Animation[], duration: number, easingFunction: any, easingMode: number | undefined, onAnimationEnd: () => void): void;
+            /**
+                * Stops and removes all animations that have been applied to the model
+                */
+            stopAllAnimations(): void;
+            /**
+                * Will remove this model from the viewer (but NOT dispose it).
+                */
+            remove(): void;
+            /**
+                * Dispose this model, including all of its associated assets.
+                */
+            dispose(): void;
+    }
 }
 declare module BabylonViewer {
     /**
-        * Animation play mode enum - is the animation looping or playing once
+        * BABYLON.Animation play mode enum - is the animation looping or playing once
         */
     export const enum AnimationPlayMode {
             ONCE = 0,
@@ -600,7 +757,7 @@ declare module BabylonViewer {
                 */
             readonly currentFrame: number;
             /**
-                * Animation's FPS value
+                * BABYLON.Animation's FPS value
                 */
             readonly fps: number;
             /**
@@ -1046,13 +1203,6 @@ declare module BabylonViewer {
     }
 }
 declare module BabylonViewer {
-    export class ConfigurationContainer {
-        configuration: ViewerConfiguration;
-        viewerId: string;
-        mainColor: BABYLON.Color3;
-        reflectionColor: BABYLON.Color3;
-        scene?: BABYLON.Scene;
-    }
 }
 declare module BabylonViewer {
     /**

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


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


+ 164 - 10
dist/preview release/viewer/babylon.viewer.module.d.ts

@@ -566,7 +566,169 @@ declare module 'babylonjs-viewer/loader/modelLoader' {
 }
 
 declare module 'babylonjs-viewer/model/viewerModel' {
-    
+    import { ISceneLoaderPlugin, ISceneLoaderPluginAsync, AnimationGroup, AbstractMesh, Observable, SceneLoaderProgressEvent, IParticleSystem, Skeleton, IDisposable, Nullable, Animation, Material } from "babylonjs";
+    import { GLTF2 } from "babylonjs-loaders";
+    import { IModelConfiguration } from "babylonjs-viewer/configuration/interfaces/modelConfiguration";
+    import { IModelAnimation } from "babylonjs-viewer/model/modelAnimation";
+    import { ObservablesManager } from "babylonjs-viewer/managers/observablesManager";
+    import { ConfigurationContainer } from "babylonjs-viewer/configuration/configurationContainer";
+    /**
+        * The current state of the model
+        */
+    export enum ModelState {
+            INIT = 0,
+            LOADING = 1,
+            LOADED = 2,
+            ENTRY = 3,
+            ENTRYDONE = 4,
+            COMPLETE = 5,
+            CANCELED = 6,
+            ERROR = 7
+    }
+    /**
+        * The viewer model is a container for all assets representing a sngle loaded model.
+        */
+    export class ViewerModel implements IDisposable {
+            /**
+                * The loader used to load this model.
+                */
+            loader: ISceneLoaderPlugin | ISceneLoaderPluginAsync;
+            /**
+                * This model's root mesh (the parent of all other meshes).
+                * This mesh does not(!) exist in the meshes array.
+                */
+            rootMesh: AbstractMesh;
+            /**
+                * ParticleSystems connected to this model
+                */
+            particleSystems: Array<IParticleSystem>;
+            /**
+                * Skeletons defined in this model
+                */
+            skeletons: Array<Skeleton>;
+            /**
+                * The current model animation.
+                * On init, this will be undefined.
+                */
+            currentAnimation: IModelAnimation;
+            /**
+                * Observers registered here will be executed when the model is done loading
+                */
+            onLoadedObservable: Observable<ViewerModel>;
+            /**
+                * Observers registered here will be executed when the loader notified of a progress event
+                */
+            onLoadProgressObservable: Observable<SceneLoaderProgressEvent>;
+            /**
+                * Observers registered here will be executed when the loader notified of an error.
+                */
+            onLoadErrorObservable: Observable<{
+                    message: string;
+                    exception: any;
+            }>;
+            /**
+                * Will be executed after the model finished loading and complete, including entry animation and lod
+                */
+            onCompleteObservable: Observable<ViewerModel>;
+            /**
+                * Observers registered here will be executed every time the model is being configured.
+                * This can be used to extend the model's configuration without extending the class itself
+                */
+            onAfterConfigure: Observable<ViewerModel>;
+            /**
+                * The current model state (loaded, error, etc)
+                */
+            state: ModelState;
+            /**
+                * A loadID provided by the modelLoader, unique to ths (Abstract)Viewer instance.
+                */
+            loadId: number;
+            loadInfo: GLTF2.IAsset;
+            constructor(_observablesManager: ObservablesManager, modelConfiguration: IModelConfiguration, _configurationContainer?: ConfigurationContainer | undefined);
+            shadowsRenderedAfterLoad: boolean;
+            getViewerId(): string | undefined;
+            /**
+             * Set whether this model is enabled or not.
+             */
+            enabled: boolean;
+            loaderDone: boolean;
+            /**
+                * Add a mesh to this model.
+                * Any mesh that has no parent will be provided with the root mesh as its new parent.
+                *
+                * @param mesh the new mesh to add
+                * @param triggerLoaded should this mesh trigger the onLoaded observable. Used when adding meshes manually.
+                */
+            addMesh(mesh: AbstractMesh, triggerLoaded?: boolean): Promise<ViewerModel> | undefined;
+            /**
+                * get the list of meshes (excluding the root mesh)
+                */
+            readonly meshes: AbstractMesh[];
+            /**
+             * (Re-)set the model's entire configuration
+             * @param newConfiguration the new configuration to replace the new one
+             */
+            configuration: IModelConfiguration;
+            /**
+                * Update the current configuration with new values.
+                * Configuration will not be overwritten, but merged with the new configuration.
+                * Priority is to the new configuration
+                * @param newConfiguration the configuration to be merged into the current configuration;
+                */
+            updateConfiguration(newConfiguration: Partial<IModelConfiguration>): void;
+            /**
+                * Add a new animation group to this model.
+                * @param animationGroup the new animation group to be added
+                */
+            addAnimationGroup(animationGroup: AnimationGroup): void;
+            /**
+                * Get the ModelAnimation array
+                */
+            getAnimations(): Array<IModelAnimation>;
+            /**
+                * Get the animations' names. Using the names you can play a specific animation.
+                */
+            getAnimationNames(): Array<string>;
+            /**
+                * Get an animation by the provided name. Used mainly when playing n animation.
+                * @param name the name of the animation to find
+                */
+            protected _getAnimationByName(name: string): Nullable<IModelAnimation>;
+            /**
+                * Choose an initialized animation using its name and start playing it
+                * @param name the name of the animation to play
+                * @returns The model aniamtion to be played.
+                */
+            playAnimation(name: string): IModelAnimation;
+            setCurrentAnimationByName(name: string): IModelAnimation;
+            /**
+                * Apply a material configuration to a material
+                * @param material Material to apply configuration to
+                * @hidden
+                */
+            _applyModelMaterialConfiguration(material: Material): void;
+            /**
+             * Begin @animations with the specified @easingFunction
+             * @param animations The BABYLON Animations to begin
+             * @param duration of transition, in seconds
+             * @param easingFunction An easing function to apply
+             * @param easingMode A easing mode to apply to the easingFunction
+             * @param onAnimationEnd Call back trigger at the end of the animation.
+             */
+            transitionTo(animations: Animation[], duration: number, easingFunction: any, easingMode: number | undefined, onAnimationEnd: () => void): void;
+            /**
+                * Stops and removes all animations that have been applied to the model
+                */
+            stopAllAnimations(): void;
+            /**
+                * Will remove this model from the viewer (but NOT dispose it).
+                */
+            remove(): void;
+            /**
+                * Dispose this model, including all of its associated assets.
+                */
+            dispose(): void;
+    }
 }
 
 declare module 'babylonjs-viewer/model/modelAnimation' {
@@ -1121,15 +1283,7 @@ declare module 'babylonjs-viewer/templating/templateManager' {
 }
 
 declare module 'babylonjs-viewer/configuration/configurationContainer' {
-    import { ViewerConfiguration } from 'babylonjs-viewer/configuration/configuration';
-    import { Color3, Scene } from 'babylonjs';
-    export class ConfigurationContainer {
-        configuration: ViewerConfiguration;
-        viewerId: string;
-        mainColor: Color3;
-        reflectionColor: Color3;
-        scene?: Scene;
-    }
+    
 }
 
 declare module 'babylonjs-viewer/configuration/loader' {