@babylonjs/viewer 5.0.0-beta.7 → 5.0.0-beta.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/configuration/configuration.d.ts +11 -1
- package/configuration/configuration.js.map +1 -1
- package/configuration/index.d.ts +1 -1
- package/configuration/index.js +1 -1
- package/configuration/index.js.map +1 -1
- package/configuration/loader.js +1 -1
- package/configuration/loader.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.js +2 -2
- package/index.js.map +1 -1
- package/loader/modelLoader.d.ts +1 -1
- package/loader/modelLoader.js +1 -1
- package/loader/modelLoader.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
import { ICameraConfiguration, IDefaultRenderingPipelineConfiguration, IGroundConfiguration, ILightConfiguration, IModelConfiguration, IObserversConfiguration, ISceneConfiguration, ISceneOptimizerConfiguration, ISkyboxConfiguration, ITemplateConfiguration, IVRConfiguration } from './interfaces';
|
|
2
1
|
import { IEnvironmentMapConfiguration } from './interfaces/environmentMapConfiguration';
|
|
3
2
|
import { EngineOptions } from '@babylonjs/core/Engines/thinEngine';
|
|
3
|
+
import { IObserversConfiguration } from './interfaces/observersConfiguration';
|
|
4
|
+
import { IModelConfiguration } from './interfaces/modelConfiguration';
|
|
5
|
+
import { ISceneConfiguration } from './interfaces/sceneConfiguration';
|
|
6
|
+
import { ISceneOptimizerConfiguration } from './interfaces/sceneOptimizerConfiguration';
|
|
7
|
+
import { ICameraConfiguration } from './interfaces/cameraConfiguration';
|
|
8
|
+
import { ISkyboxConfiguration } from './interfaces/skyboxConfiguration';
|
|
9
|
+
import { IGroundConfiguration } from './interfaces/groundConfiguration';
|
|
10
|
+
import { ILightConfiguration } from './interfaces/lightConfiguration';
|
|
11
|
+
import { ITemplateConfiguration } from './interfaces/templateConfiguration';
|
|
12
|
+
import { IVRConfiguration } from './interfaces/vrConfiguration';
|
|
13
|
+
import { IDefaultRenderingPipelineConfiguration } from './interfaces/defaultRenderingPipelineConfiguration';
|
|
4
14
|
export declare function getConfigurationKey(key: string, configObject: any): any;
|
|
5
15
|
export interface ViewerConfiguration {
|
|
6
16
|
version?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../../sourceES6/viewer/src/configuration/configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../../sourceES6/viewer/src/configuration/configuration.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,YAAiB;IAC9D,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE;QAAE,OAAO;KAAE;SAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YACjC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;SAC5B;KACJ;SAAM;QACH,IAAI,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,QAAS,CAAC,CAAC,CAAC;KACzE;AACL,CAAC","sourcesContent":["import { IEnvironmentMapConfiguration } from './interfaces/environmentMapConfiguration';\r\nimport { EngineOptions } from '@babylonjs/core/Engines/thinEngine';\r\nimport { IObserversConfiguration } from './interfaces/observersConfiguration';\r\nimport { IModelConfiguration } from './interfaces/modelConfiguration';\r\nimport { ISceneConfiguration } from './interfaces/sceneConfiguration';\r\nimport { ISceneOptimizerConfiguration } from './interfaces/sceneOptimizerConfiguration';\r\nimport { ICameraConfiguration } from './interfaces/cameraConfiguration';\r\nimport { ISkyboxConfiguration } from './interfaces/skyboxConfiguration';\r\nimport { IGroundConfiguration } from './interfaces/groundConfiguration';\r\nimport { ILightConfiguration } from './interfaces/lightConfiguration';\r\nimport { ITemplateConfiguration } from './interfaces/templateConfiguration';\r\nimport { IVRConfiguration } from './interfaces/vrConfiguration';\r\nimport { IDefaultRenderingPipelineConfiguration } from './interfaces/defaultRenderingPipelineConfiguration';\r\n\r\nexport function getConfigurationKey(key: string, configObject: any) {\r\n let splits = key.split('.');\r\n\r\n if (splits.length === 0 || !configObject) { return; }\r\n else if (splits.length === 1) {\r\n if (configObject[key] !== undefined) {\r\n return configObject[key];\r\n }\r\n } else {\r\n let firstKey = splits.shift();\r\n return getConfigurationKey(splits.join(\".\"), configObject[firstKey!]);\r\n }\r\n}\r\n\r\nexport interface ViewerConfiguration {\r\n\r\n // configuration version\r\n version?: string;\r\n extends?: string; // is this configuration extending an existing configuration?\r\n\r\n pageUrl?: string; // will be used for sharing and other fun stuff. This is the page showing the model (not the model's url!)\r\n\r\n configuration?: string | {\r\n url?: string;\r\n payload?: any;\r\n mapper?: string; // json (default), html, yaml, xml, etc'. if not provided, file extension will be used.\r\n };\r\n\r\n // names of functions in the window context.\r\n observers?: IObserversConfiguration;\r\n\r\n canvasElement?: string; // if there is a need to override the standard implementation - ID of HTMLCanvasElement\r\n\r\n model?: IModelConfiguration | string;\r\n\r\n scene?: ISceneConfiguration;\r\n optimizer?: ISceneOptimizerConfiguration | boolean;\r\n // at the moment, support only a single camera.\r\n camera?: ICameraConfiguration;\r\n skybox?: boolean | ISkyboxConfiguration;\r\n\r\n ground?: boolean | IGroundConfiguration;\r\n lights?: {\r\n //globalRotation: number,\r\n [name: string]: number | boolean | ILightConfiguration\r\n };\r\n // engine configuration. optional!\r\n engine?: {\r\n renderInBackground?: boolean;\r\n antialiasing?: boolean;\r\n disableResize?: boolean;\r\n engineOptions?: EngineOptions;\r\n adaptiveQuality?: boolean;\r\n hdEnabled?: boolean;\r\n };\r\n //templateStructure?: ITemplateStructure,\r\n templates?: {\r\n main: ITemplateConfiguration,\r\n [key: string]: ITemplateConfiguration\r\n };\r\n\r\n customShaders?: {\r\n shaders?: {\r\n [key: string]: string;\r\n };\r\n includes?: {\r\n [key: string]: string;\r\n }\r\n };\r\n\r\n loaderPlugins?: {\r\n extendedMaterial?: boolean;\r\n msftLod?: boolean;\r\n telemetry?: boolean;\r\n minecraft?: boolean;\r\n\r\n [propName: string]: boolean | undefined;\r\n };\r\n\r\n environmentMap?: IEnvironmentMapConfiguration;\r\n\r\n vr?: IVRConfiguration;\r\n\r\n // features that are being tested.\r\n // those features' syntax will change and move out!\r\n // Don't use in production (or be ready to make the changes :) )\r\n lab?: {\r\n flashlight?: boolean | {\r\n exponent?: number;\r\n angle?: number;\r\n intensity?: number;\r\n diffuse?: { r: number, g: number, b: number };\r\n specular?: { r: number, g: number, b: number };\r\n }\r\n hideLoadingDelay?: number;\r\n /** @deprecated */\r\n assetsRootURL?: string;\r\n environmentMainColor?: { r: number, g: number, b: number };\r\n /** @deprecated */\r\n environmentMap?: {\r\n /**\r\n * Environment map texture path in relative to the asset folder.\r\n */\r\n texture: string;\r\n\r\n /**\r\n * Default rotation to apply to the environment map.\r\n */\r\n rotationY: number;\r\n\r\n /**\r\n * Tint level of the main color on the environment map.\r\n */\r\n tintLevel: number;\r\n }\r\n defaultRenderingPipelines?: boolean | IDefaultRenderingPipelineConfiguration;\r\n globalLightRotation?: number;\r\n };\r\n}"]}
|
package/configuration/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './configuration';
|
|
2
|
-
export * from './interfaces';
|
|
2
|
+
export * from './interfaces/index';
|
package/configuration/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../sourceES6/viewer/src/configuration/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../sourceES6/viewer/src/configuration/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './configuration';\r\nexport * from './interfaces/index';"]}
|
package/configuration/loader.js
CHANGED
|
@@ -14,7 +14,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
};
|
|
15
15
|
})();
|
|
16
16
|
import { RenderOnlyConfigurationLoader } from "./renderOnlyLoader.js";
|
|
17
|
-
import { getConfigurationType } from "./types.js";
|
|
17
|
+
import { getConfigurationType } from "./types/index.js";
|
|
18
18
|
var ConfigurationLoader = /** @class */ (function (_super) {
|
|
19
19
|
__extends(ConfigurationLoader, _super);
|
|
20
20
|
function ConfigurationLoader() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../sourceES6/viewer/src/configuration/loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../../sourceES6/viewer/src/configuration/loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD;IAAyC,uCAA6B;IAAtE;;IAIA,CAAC;IAHa,+CAAiB,GAA3B,UAA4B,IAAwB;QAChD,OAAO,oBAAoB,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC;IACpD,CAAC;IACL,0BAAC;AAAD,CAAC,AAJD,CAAyC,6BAA6B,GAIrE","sourcesContent":["import { RenderOnlyConfigurationLoader } from \"./renderOnlyLoader\";\r\nimport { getConfigurationType } from \"./types/index\";\r\n\r\nexport class ConfigurationLoader extends RenderOnlyConfigurationLoader {\r\n protected getExtendedConfig(type: string | undefined) {\r\n return getConfigurationType(type || \"extended\");\r\n }\r\n}"]}
|
package/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { ViewerModel, ModelState } from './model/viewerModel';
|
|
|
9
9
|
import { AnimationPlayMode, AnimationState } from './model/modelAnimation';
|
|
10
10
|
import { ILoaderPlugin } from './loader/plugins/loaderPlugin';
|
|
11
11
|
import { AbstractViewerNavbarButton } from './templating/viewerTemplatePlugin';
|
|
12
|
-
import { registerCustomOptimizer } from './optimizer/custom';
|
|
12
|
+
import { registerCustomOptimizer } from './optimizer/custom/index';
|
|
13
13
|
/**
|
|
14
14
|
* BabylonJS Viewer
|
|
15
15
|
*
|
|
@@ -27,4 +27,4 @@ declare function disposeAll(): void;
|
|
|
27
27
|
declare const Version: string;
|
|
28
28
|
export { BABYLON, Version, InitTags, DefaultViewer, AbstractViewer, viewerGlobals, telemetryManager, disableInit, viewerManager, mapperManager, disposeAll, ModelLoader, ViewerModel, AnimationPlayMode, AnimationState, ModelState, ILoaderPlugin, AbstractViewerNavbarButton, registerCustomOptimizer };
|
|
29
29
|
export { GLTF2 } from '@babylonjs/loaders';
|
|
30
|
-
export * from './configuration';
|
|
30
|
+
export * from './configuration/index';
|
package/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import { ModelLoader } from './loader/modelLoader.js';
|
|
|
8
8
|
import { ViewerModel, ModelState } from './model/viewerModel.js';
|
|
9
9
|
import { AnimationPlayMode, AnimationState } from './model/modelAnimation.js';
|
|
10
10
|
import { AbstractViewerNavbarButton } from './templating/viewerTemplatePlugin.js';
|
|
11
|
-
import { registerCustomOptimizer } from './optimizer/custom.js';
|
|
11
|
+
import { registerCustomOptimizer } from './optimizer/custom/index.js';
|
|
12
12
|
/**
|
|
13
13
|
* BabylonJS Viewer
|
|
14
14
|
*
|
|
@@ -38,5 +38,5 @@ console.log("Babylon.js viewer (v" + Version + ")");
|
|
|
38
38
|
export { BABYLON, Version, InitTags, DefaultViewer, AbstractViewer, viewerGlobals, telemetryManager, disableInit, viewerManager, mapperManager, disposeAll, ModelLoader, ViewerModel, AnimationPlayMode, AnimationState, ModelState, AbstractViewerNavbarButton, registerCustomOptimizer };
|
|
39
39
|
export { GLTF2 } from '@babylonjs/loaders';
|
|
40
40
|
// export publicliy all configuration interfaces
|
|
41
|
-
export * from './configuration.js';
|
|
41
|
+
export * from './configuration/index.js';
|
|
42
42
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../sourceES6/viewer/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../sourceES6/viewer/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;GAIG;AAEH,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,uBAAuB;AACvB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,OAAO,CAAC;AAEf,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,+BAA+B;AAC/B,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;AAChC,aAAa,EAAE,CAAC;AAEhB,8CAA8C;AAC9C,IAAI,WAAW,GAAY,aAAa,CAAC,WAAW,CAAC;AAErD;;GAEG;AACH,SAAS,UAAU;IACf,aAAa,CAAC,OAAO,EAAE,CAAC;IACxB,aAAa,CAAC,OAAO,EAAE,CAAC;IACxB,gBAAgB,CAAC,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,IAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;AAEtC,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;AAEpD,gCAAgC;AAChC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAiB,0BAA0B,EAAE,uBAAuB,EAAE,CAAC;AAC1S,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,gDAAgD;AAChD,cAAc,uBAAuB,CAAC","sourcesContent":["import { mapperManager } from './configuration/mappers';\r\nimport { viewerGlobals } from './configuration/globals';\r\nimport { viewerManager } from './viewer/viewerManager';\r\nimport { DefaultViewer } from './viewer/defaultViewer';\r\nimport { AbstractViewer } from './viewer/viewer';\r\nimport { telemetryManager } from './managers/telemetryManager';\r\nimport { ModelLoader } from './loader/modelLoader';\r\nimport { ViewerModel, ModelState } from './model/viewerModel';\r\nimport { AnimationPlayMode, AnimationState } from './model/modelAnimation';\r\nimport { ILoaderPlugin } from './loader/plugins/loaderPlugin';\r\nimport { AbstractViewerNavbarButton } from './templating/viewerTemplatePlugin';\r\nimport { registerCustomOptimizer } from './optimizer/custom/index';\r\n\r\n/**\r\n * BabylonJS Viewer\r\n *\r\n * An HTML-Based viewer for 3D models, based on BabylonJS and its extensions.\r\n */\r\n\r\nimport * as BABYLON from '@babylonjs/core';\r\n\r\n// load needed modules.\r\nimport '@babylonjs/loaders';\r\nimport 'pepjs';\r\n\r\nimport { initListeners, InitTags } from './initializer';\r\n\r\n// promise polyfill, if needed!\r\nBABYLON.PromisePolyfill.Apply();\r\ninitListeners();\r\n\r\n//deprectaed, here for backwards compatibility\r\nlet disableInit: boolean = viewerGlobals.disableInit;\r\n\r\n/**\r\n * Dispose all viewers currently registered\r\n */\r\nfunction disposeAll() {\r\n viewerManager.dispose();\r\n mapperManager.dispose();\r\n telemetryManager.dispose();\r\n}\r\n\r\nconst Version = viewerGlobals.version;\r\n\r\nconsole.log(\"Babylon.js viewer (v\" + Version + \")\");\r\n\r\n// public API for initialization\r\nexport { BABYLON, Version, InitTags, DefaultViewer, AbstractViewer, viewerGlobals, telemetryManager, disableInit, viewerManager, mapperManager, disposeAll, ModelLoader, ViewerModel, AnimationPlayMode, AnimationState, ModelState, ILoaderPlugin, AbstractViewerNavbarButton, registerCustomOptimizer };\r\nexport { GLTF2 } from '@babylonjs/loaders';\r\n// export publicliy all configuration interfaces\r\nexport * from './configuration/index';\r\n"]}
|
package/loader/modelLoader.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ConfigurationContainer } from '../configuration/configurationContainer'
|
|
|
2
2
|
import { IModelConfiguration } from '../configuration/interfaces/modelConfiguration';
|
|
3
3
|
import { ObservablesManager } from '../managers/observablesManager';
|
|
4
4
|
import { ViewerModel } from '../model/viewerModel';
|
|
5
|
-
import { ILoaderPlugin } from './plugins/';
|
|
5
|
+
import { ILoaderPlugin } from './plugins/index';
|
|
6
6
|
/**
|
|
7
7
|
* An instance of the class is in charge of loading the model correctly.
|
|
8
8
|
* This class will continously be expended with tasks required from the specific loaders Babylon has.
|
package/loader/modelLoader.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Tools } from '@babylonjs/core/Misc/tools.js';
|
|
|
3
3
|
import { SceneLoader } from '@babylonjs/core/Loading/sceneLoader.js';
|
|
4
4
|
import { Tags } from '@babylonjs/core/Misc/tags.js';
|
|
5
5
|
import { ModelState, ViewerModel } from '../model/viewerModel.js';
|
|
6
|
-
import { getLoaderPluginByName } from './plugins
|
|
6
|
+
import { getLoaderPluginByName } from './plugins/index.js';
|
|
7
7
|
/**
|
|
8
8
|
* An instance of the class is in charge of loading the model correctly.
|
|
9
9
|
* This class will continously be expended with tasks required from the specific loaders Babylon has.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelLoader.js","sourceRoot":"","sources":["../../../../sourceES6/viewer/src/loader/modelLoader.ts"],"names":[],"mappings":"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","sourcesContent":["import { GLTFFileLoader, GLTFLoaderAnimationStartMode } from \"@babylonjs/loaders/glTF/glTFFileLoader\"\r\nimport { ISceneLoaderPlugin, ISceneLoaderPluginAsync } from '@babylonjs/core/Loading/sceneLoader';\r\nimport { Tools } from '@babylonjs/core/Misc/tools';\r\nimport { SceneLoader } from '@babylonjs/core/Loading/sceneLoader';\r\nimport { Tags } from '@babylonjs/core/Misc/tags';\r\n\r\nimport { ConfigurationContainer } from '../configuration/configurationContainer';\r\nimport { IModelConfiguration } from '../configuration/interfaces/modelConfiguration';\r\nimport { ObservablesManager } from '../managers/observablesManager';\r\nimport { ModelState, ViewerModel } from '../model/viewerModel';\r\nimport { getLoaderPluginByName, ILoaderPlugin } from './plugins/';\r\n\r\n/**\r\n * An instance of the class is in charge of loading the model correctly.\r\n * This class will continously be expended with tasks required from the specific loaders Babylon has.\r\n *\r\n * A Model loader is unique per (Abstract)Viewer. It is being generated by the viewer\r\n */\r\nexport class ModelLoader {\r\n\r\n private _loadId: number;\r\n private _disposed = false;\r\n\r\n private _loaders: Array<ISceneLoaderPlugin | ISceneLoaderPluginAsync>;\r\n\r\n private _plugins: Array<ILoaderPlugin>;\r\n\r\n private _baseUrl: string;\r\n\r\n public get baseUrl(): string {\r\n return this._baseUrl;\r\n }\r\n\r\n /**\r\n * Create a new Model loader\r\n * @param _viewer the viewer using this model loader\r\n */\r\n constructor(private _observablesManager: ObservablesManager, private _configurationContainer?: ConfigurationContainer) {\r\n this._loaders = [];\r\n this._loadId = 0;\r\n this._plugins = [];\r\n }\r\n\r\n /**\r\n * Adds a new plugin to the loader process.\r\n *\r\n * @param plugin the plugin name or the plugin itself\r\n */\r\n public addPlugin(plugin: ILoaderPlugin | string) {\r\n let actualPlugin: ILoaderPlugin = {};\r\n if (typeof plugin === 'string') {\r\n let loadedPlugin = getLoaderPluginByName(plugin);\r\n if (loadedPlugin) {\r\n actualPlugin = loadedPlugin;\r\n }\r\n } else {\r\n actualPlugin = plugin;\r\n }\r\n if (actualPlugin && this._plugins.indexOf(actualPlugin) === -1) {\r\n this._plugins.push(actualPlugin);\r\n }\r\n }\r\n\r\n /**\r\n * Load a model using predefined configuration\r\n * @param modelConfiguration the modelConfiguration to use to load the model\r\n */\r\n public load(modelConfiguration: IModelConfiguration): ViewerModel {\r\n\r\n const model = new ViewerModel(this._observablesManager, modelConfiguration, this._configurationContainer);\r\n\r\n model.loadId = this._loadId++;\r\n\r\n let filename: any;\r\n if (modelConfiguration.file) {\r\n this._baseUrl = \"file:\";\r\n filename = modelConfiguration.file;\r\n }\r\n else if (modelConfiguration.url) {\r\n filename = Tools.GetFilename(modelConfiguration.url) || modelConfiguration.url;\r\n this._baseUrl = modelConfiguration.root || Tools.GetFolderPath(modelConfiguration.url);\r\n }\r\n\r\n if (!filename || !this._baseUrl) {\r\n model.state = ModelState.ERROR;\r\n Tools.Error(\"No URL provided\");\r\n return model;\r\n }\r\n\r\n let plugin = modelConfiguration.loader;\r\n\r\n let scene = model.rootMesh.getScene();\r\n\r\n model.loader = SceneLoader.ImportMesh(undefined, this._baseUrl, filename, scene, (meshes, particleSystems, skeletons, animationGroups) => {\r\n meshes.forEach((mesh) => {\r\n Tags.AddTagsTo(mesh, \"viewerMesh\");\r\n model.addMesh(mesh);\r\n });\r\n model.particleSystems = particleSystems;\r\n model.skeletons = skeletons;\r\n\r\n for (const animationGroup of animationGroups) {\r\n model.addAnimationGroup(animationGroup);\r\n }\r\n\r\n this._checkAndRun(\"onLoaded\", model);\r\n scene.executeWhenReady(() => {\r\n model.onLoadedObservable.notifyObservers(model);\r\n });\r\n }, (progressEvent) => {\r\n this._checkAndRun(\"onProgress\", progressEvent);\r\n model.onLoadProgressObservable.notifyObserversWithPromise(progressEvent);\r\n }, (scene, m, exception) => {\r\n model.state = ModelState.ERROR;\r\n Tools.Error(\"Load Error: There was an error loading the model. \" + m);\r\n this._checkAndRun(\"onError\", m, exception);\r\n model.onLoadErrorObservable.notifyObserversWithPromise({ message: m, exception: exception });\r\n }, plugin)!;\r\n\r\n if (model.loader.name === \"gltf\") {\r\n let gltfLoader = (<GLTFFileLoader>model.loader);\r\n gltfLoader.animationStartMode = GLTFLoaderAnimationStartMode.NONE;\r\n gltfLoader.compileMaterials = true;\r\n\r\n if (!modelConfiguration.file) {\r\n gltfLoader.rewriteRootURL = (rootURL, responseURL) => {\r\n return modelConfiguration.root || Tools.GetFolderPath(responseURL || modelConfiguration.url || '');\r\n };\r\n }\r\n // if ground is set to \"mirror\":\r\n if (this._configurationContainer\r\n && this._configurationContainer.configuration\r\n && this._configurationContainer.configuration.ground\r\n && typeof this._configurationContainer.configuration.ground === 'object'\r\n && this._configurationContainer.configuration.ground.mirror) {\r\n gltfLoader.useClipPlane = true;\r\n }\r\n Object.keys(gltfLoader).filter((name) => name.indexOf('on') === 0 && name.indexOf('Observable') !== -1).forEach((functionName) => {\r\n gltfLoader[functionName].add((payload) => {\r\n this._checkAndRun(functionName.replace(\"Observable\", ''), payload);\r\n });\r\n });\r\n\r\n gltfLoader.onParsedObservable.add((data) => {\r\n if (data && data.json && data.json['asset']) {\r\n model.loadInfo = data.json['asset'];\r\n }\r\n });\r\n\r\n gltfLoader.onCompleteObservable.add(() => {\r\n model.loaderDone = true;\r\n });\r\n } else {\r\n model.loaderDone = true;\r\n }\r\n\r\n this._checkAndRun(\"onInit\", model.loader, model);\r\n\r\n this._loaders.push(model.loader);\r\n\r\n return model;\r\n }\r\n\r\n public cancelLoad(model: ViewerModel) {\r\n const loader = model.loader || this._loaders[model.loadId];\r\n // ATM only available in the GLTF Loader\r\n if (loader && loader.name === \"gltf\") {\r\n let gltfLoader = (<GLTFFileLoader>loader);\r\n gltfLoader.dispose();\r\n model.state = ModelState.CANCELED;\r\n } else {\r\n Tools.Warn(\"This type of loader cannot cancel the request\");\r\n }\r\n }\r\n\r\n /**\r\n * dispose the model loader.\r\n * If loaders are registered and are in the middle of loading, they will be disposed and the request(s) will be cancelled.\r\n */\r\n public dispose() {\r\n this._loaders.forEach((loader) => {\r\n if (loader.name === \"gltf\") {\r\n (<GLTFFileLoader>loader).dispose();\r\n }\r\n });\r\n this._loaders.length = 0;\r\n this._disposed = true;\r\n }\r\n\r\n private _checkAndRun(functionName: string, ...payload: Array<any>) {\r\n if (this._disposed) { return; }\r\n this._plugins.filter((p) => p[functionName]).forEach((plugin) => {\r\n try {\r\n plugin[functionName].apply(this, payload);\r\n } catch (e) { }\r\n });\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"modelLoader.js","sourceRoot":"","sources":["../../../../sourceES6/viewer/src/loader/modelLoader.ts"],"names":[],"mappings":"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","sourcesContent":["import { GLTFFileLoader, GLTFLoaderAnimationStartMode } from \"@babylonjs/loaders/glTF/glTFFileLoader\"\r\nimport { ISceneLoaderPlugin, ISceneLoaderPluginAsync } from '@babylonjs/core/Loading/sceneLoader';\r\nimport { Tools } from '@babylonjs/core/Misc/tools';\r\nimport { SceneLoader } from '@babylonjs/core/Loading/sceneLoader';\r\nimport { Tags } from '@babylonjs/core/Misc/tags';\r\n\r\nimport { ConfigurationContainer } from '../configuration/configurationContainer';\r\nimport { IModelConfiguration } from '../configuration/interfaces/modelConfiguration';\r\nimport { ObservablesManager } from '../managers/observablesManager';\r\nimport { ModelState, ViewerModel } from '../model/viewerModel';\r\nimport { getLoaderPluginByName, ILoaderPlugin } from './plugins/index';\r\n\r\n/**\r\n * An instance of the class is in charge of loading the model correctly.\r\n * This class will continously be expended with tasks required from the specific loaders Babylon has.\r\n *\r\n * A Model loader is unique per (Abstract)Viewer. It is being generated by the viewer\r\n */\r\nexport class ModelLoader {\r\n\r\n private _loadId: number;\r\n private _disposed = false;\r\n\r\n private _loaders: Array<ISceneLoaderPlugin | ISceneLoaderPluginAsync>;\r\n\r\n private _plugins: Array<ILoaderPlugin>;\r\n\r\n private _baseUrl: string;\r\n\r\n public get baseUrl(): string {\r\n return this._baseUrl;\r\n }\r\n\r\n /**\r\n * Create a new Model loader\r\n * @param _viewer the viewer using this model loader\r\n */\r\n constructor(private _observablesManager: ObservablesManager, private _configurationContainer?: ConfigurationContainer) {\r\n this._loaders = [];\r\n this._loadId = 0;\r\n this._plugins = [];\r\n }\r\n\r\n /**\r\n * Adds a new plugin to the loader process.\r\n *\r\n * @param plugin the plugin name or the plugin itself\r\n */\r\n public addPlugin(plugin: ILoaderPlugin | string) {\r\n let actualPlugin: ILoaderPlugin = {};\r\n if (typeof plugin === 'string') {\r\n let loadedPlugin = getLoaderPluginByName(plugin);\r\n if (loadedPlugin) {\r\n actualPlugin = loadedPlugin;\r\n }\r\n } else {\r\n actualPlugin = plugin;\r\n }\r\n if (actualPlugin && this._plugins.indexOf(actualPlugin) === -1) {\r\n this._plugins.push(actualPlugin);\r\n }\r\n }\r\n\r\n /**\r\n * Load a model using predefined configuration\r\n * @param modelConfiguration the modelConfiguration to use to load the model\r\n */\r\n public load(modelConfiguration: IModelConfiguration): ViewerModel {\r\n\r\n const model = new ViewerModel(this._observablesManager, modelConfiguration, this._configurationContainer);\r\n\r\n model.loadId = this._loadId++;\r\n\r\n let filename: any;\r\n if (modelConfiguration.file) {\r\n this._baseUrl = \"file:\";\r\n filename = modelConfiguration.file;\r\n }\r\n else if (modelConfiguration.url) {\r\n filename = Tools.GetFilename(modelConfiguration.url) || modelConfiguration.url;\r\n this._baseUrl = modelConfiguration.root || Tools.GetFolderPath(modelConfiguration.url);\r\n }\r\n\r\n if (!filename || !this._baseUrl) {\r\n model.state = ModelState.ERROR;\r\n Tools.Error(\"No URL provided\");\r\n return model;\r\n }\r\n\r\n let plugin = modelConfiguration.loader;\r\n\r\n let scene = model.rootMesh.getScene();\r\n\r\n model.loader = SceneLoader.ImportMesh(undefined, this._baseUrl, filename, scene, (meshes, particleSystems, skeletons, animationGroups) => {\r\n meshes.forEach((mesh) => {\r\n Tags.AddTagsTo(mesh, \"viewerMesh\");\r\n model.addMesh(mesh);\r\n });\r\n model.particleSystems = particleSystems;\r\n model.skeletons = skeletons;\r\n\r\n for (const animationGroup of animationGroups) {\r\n model.addAnimationGroup(animationGroup);\r\n }\r\n\r\n this._checkAndRun(\"onLoaded\", model);\r\n scene.executeWhenReady(() => {\r\n model.onLoadedObservable.notifyObservers(model);\r\n });\r\n }, (progressEvent) => {\r\n this._checkAndRun(\"onProgress\", progressEvent);\r\n model.onLoadProgressObservable.notifyObserversWithPromise(progressEvent);\r\n }, (scene, m, exception) => {\r\n model.state = ModelState.ERROR;\r\n Tools.Error(\"Load Error: There was an error loading the model. \" + m);\r\n this._checkAndRun(\"onError\", m, exception);\r\n model.onLoadErrorObservable.notifyObserversWithPromise({ message: m, exception: exception });\r\n }, plugin)!;\r\n\r\n if (model.loader.name === \"gltf\") {\r\n let gltfLoader = (<GLTFFileLoader>model.loader);\r\n gltfLoader.animationStartMode = GLTFLoaderAnimationStartMode.NONE;\r\n gltfLoader.compileMaterials = true;\r\n\r\n if (!modelConfiguration.file) {\r\n gltfLoader.rewriteRootURL = (rootURL, responseURL) => {\r\n return modelConfiguration.root || Tools.GetFolderPath(responseURL || modelConfiguration.url || '');\r\n };\r\n }\r\n // if ground is set to \"mirror\":\r\n if (this._configurationContainer\r\n && this._configurationContainer.configuration\r\n && this._configurationContainer.configuration.ground\r\n && typeof this._configurationContainer.configuration.ground === 'object'\r\n && this._configurationContainer.configuration.ground.mirror) {\r\n gltfLoader.useClipPlane = true;\r\n }\r\n Object.keys(gltfLoader).filter((name) => name.indexOf('on') === 0 && name.indexOf('Observable') !== -1).forEach((functionName) => {\r\n gltfLoader[functionName].add((payload) => {\r\n this._checkAndRun(functionName.replace(\"Observable\", ''), payload);\r\n });\r\n });\r\n\r\n gltfLoader.onParsedObservable.add((data) => {\r\n if (data && data.json && data.json['asset']) {\r\n model.loadInfo = data.json['asset'];\r\n }\r\n });\r\n\r\n gltfLoader.onCompleteObservable.add(() => {\r\n model.loaderDone = true;\r\n });\r\n } else {\r\n model.loaderDone = true;\r\n }\r\n\r\n this._checkAndRun(\"onInit\", model.loader, model);\r\n\r\n this._loaders.push(model.loader);\r\n\r\n return model;\r\n }\r\n\r\n public cancelLoad(model: ViewerModel) {\r\n const loader = model.loader || this._loaders[model.loadId];\r\n // ATM only available in the GLTF Loader\r\n if (loader && loader.name === \"gltf\") {\r\n let gltfLoader = (<GLTFFileLoader>loader);\r\n gltfLoader.dispose();\r\n model.state = ModelState.CANCELED;\r\n } else {\r\n Tools.Warn(\"This type of loader cannot cancel the request\");\r\n }\r\n }\r\n\r\n /**\r\n * dispose the model loader.\r\n * If loaders are registered and are in the middle of loading, they will be disposed and the request(s) will be cancelled.\r\n */\r\n public dispose() {\r\n this._loaders.forEach((loader) => {\r\n if (loader.name === \"gltf\") {\r\n (<GLTFFileLoader>loader).dispose();\r\n }\r\n });\r\n this._loaders.length = 0;\r\n this._disposed = true;\r\n }\r\n\r\n private _checkAndRun(functionName: string, ...payload: Array<any>) {\r\n if (this._disposed) { return; }\r\n this._plugins.filter((p) => p[functionName]).forEach((plugin) => {\r\n try {\r\n plugin[functionName].apply(this, payload);\r\n } catch (e) { }\r\n });\r\n }\r\n}"]}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
},
|
|
5
5
|
"name": "@babylonjs/viewer",
|
|
6
6
|
"description": "A simple-to-use viewer based on BabylonJS to display 3D elements natively",
|
|
7
|
-
"version": "5.0.0-beta.7",
|
|
7
|
+
"version": "5.0.0-beta.7.1",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
10
10
|
"url": "https://github.com/BabylonJS/Babylon.js.git"
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
},
|
|
217
217
|
"dependencies": {
|
|
218
218
|
"deepmerge": "~2.1.1",
|
|
219
|
-
"handlebars": "~4.
|
|
219
|
+
"handlebars": "~4.7.7",
|
|
220
220
|
"pepjs": "~0.4.3",
|
|
221
221
|
"@babylonjs/core": "5.0.0-beta.7",
|
|
222
222
|
"@babylonjs/loaders": "5.0.0-beta.7",
|