@babylonjs/viewer 7.33.0 → 7.34.0
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/loader/modelLoader.js +42 -39
- package/loader/modelLoader.js.map +1 -1
- package/package.json +5 -5
package/loader/modelLoader.js
CHANGED
|
@@ -82,7 +82,48 @@ var ModelLoader = /** @class */ (function () {
|
|
|
82
82
|
}
|
|
83
83
|
var plugin = modelConfiguration.loader;
|
|
84
84
|
var scene = model.rootMesh.getScene();
|
|
85
|
-
|
|
85
|
+
SceneLoader.OnPluginActivatedObservable.addOnce(function (plugin) {
|
|
86
|
+
model.loader = plugin;
|
|
87
|
+
if (model.loader.name === "gltf") {
|
|
88
|
+
var gltfLoader_1 = model.loader;
|
|
89
|
+
gltfLoader_1.animationStartMode = GLTFLoaderAnimationStartMode.NONE;
|
|
90
|
+
gltfLoader_1.compileMaterials = true;
|
|
91
|
+
if (!modelConfiguration.file) {
|
|
92
|
+
gltfLoader_1.rewriteRootURL = function (rootURL, responseURL) {
|
|
93
|
+
return modelConfiguration.root || Tools.GetFolderPath(responseURL || modelConfiguration.url || "");
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
// if ground is set to "mirror":
|
|
97
|
+
if (_this._configurationContainer &&
|
|
98
|
+
_this._configurationContainer.configuration &&
|
|
99
|
+
_this._configurationContainer.configuration.ground &&
|
|
100
|
+
typeof _this._configurationContainer.configuration.ground === "object" &&
|
|
101
|
+
_this._configurationContainer.configuration.ground.mirror) {
|
|
102
|
+
gltfLoader_1.useClipPlane = true;
|
|
103
|
+
}
|
|
104
|
+
Object.keys(gltfLoader_1)
|
|
105
|
+
.filter(function (name) { return name.indexOf("on") === 0 && name.indexOf("Observable") !== -1; })
|
|
106
|
+
.forEach(function (functionName) {
|
|
107
|
+
gltfLoader_1[functionName].add(function (payload) {
|
|
108
|
+
_this._checkAndRun(functionName.replace("Observable", ""), payload);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
gltfLoader_1.onParsedObservable.add(function (data) {
|
|
112
|
+
if (data && data.json && data.json["asset"]) {
|
|
113
|
+
model.loadInfo = data.json["asset"];
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
gltfLoader_1.onCompleteObservable.add(function () {
|
|
117
|
+
model.loaderDone = true;
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
model.loaderDone = true;
|
|
122
|
+
}
|
|
123
|
+
_this._checkAndRun("onInit", model.loader, model);
|
|
124
|
+
_this._loaders.push(model.loader);
|
|
125
|
+
});
|
|
126
|
+
SceneLoader.ImportMesh(undefined, this._baseUrl, filename, scene, function (meshes, particleSystems, skeletons, animationGroups) {
|
|
86
127
|
meshes.forEach(function (mesh) {
|
|
87
128
|
Tags.AddTagsTo(mesh, "viewerMesh");
|
|
88
129
|
model.addMesh(mesh);
|
|
@@ -106,44 +147,6 @@ var ModelLoader = /** @class */ (function () {
|
|
|
106
147
|
_this._checkAndRun("onError", m, exception);
|
|
107
148
|
model.onLoadErrorObservable.notifyObserversWithPromise({ message: m, exception: exception });
|
|
108
149
|
}, plugin);
|
|
109
|
-
if (model.loader.name === "gltf") {
|
|
110
|
-
var gltfLoader_1 = model.loader;
|
|
111
|
-
gltfLoader_1.animationStartMode = GLTFLoaderAnimationStartMode.NONE;
|
|
112
|
-
gltfLoader_1.compileMaterials = true;
|
|
113
|
-
if (!modelConfiguration.file) {
|
|
114
|
-
gltfLoader_1.rewriteRootURL = function (rootURL, responseURL) {
|
|
115
|
-
return modelConfiguration.root || Tools.GetFolderPath(responseURL || modelConfiguration.url || "");
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
// if ground is set to "mirror":
|
|
119
|
-
if (this._configurationContainer &&
|
|
120
|
-
this._configurationContainer.configuration &&
|
|
121
|
-
this._configurationContainer.configuration.ground &&
|
|
122
|
-
typeof this._configurationContainer.configuration.ground === "object" &&
|
|
123
|
-
this._configurationContainer.configuration.ground.mirror) {
|
|
124
|
-
gltfLoader_1.useClipPlane = true;
|
|
125
|
-
}
|
|
126
|
-
Object.keys(gltfLoader_1)
|
|
127
|
-
.filter(function (name) { return name.indexOf("on") === 0 && name.indexOf("Observable") !== -1; })
|
|
128
|
-
.forEach(function (functionName) {
|
|
129
|
-
gltfLoader_1[functionName].add(function (payload) {
|
|
130
|
-
_this._checkAndRun(functionName.replace("Observable", ""), payload);
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
gltfLoader_1.onParsedObservable.add(function (data) {
|
|
134
|
-
if (data && data.json && data.json["asset"]) {
|
|
135
|
-
model.loadInfo = data.json["asset"];
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
gltfLoader_1.onCompleteObservable.add(function () {
|
|
139
|
-
model.loaderDone = true;
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
model.loaderDone = true;
|
|
144
|
-
}
|
|
145
|
-
this._checkAndRun("onInit", model.loader, model);
|
|
146
|
-
this._loaders.push(model.loader);
|
|
147
150
|
return model;
|
|
148
151
|
};
|
|
149
152
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelLoader.js","sourceRoot":"","sources":["../../../../tools/viewer/src/loader/modelLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,kDAAoC;AAE3E,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,OAAO,EAAE,KAAK,EAAE,sCAAwB;AACxC,OAAO,EAAE,IAAI,EAAE,qCAAuB;AACtC,uDAAyC;AAIzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,0CAA4B;AAC5B,8DAAgD;AAEhD;;;;;GAKG;AACH;IAiBI;;;;OAIG;IACH,qBACY,mBAAuC,EACvC,uBAAgD;QADhD,wBAAmB,GAAnB,mBAAmB,CAAoB;QACvC,4BAAuB,GAAvB,uBAAuB,CAAyB;QAtBpD,cAAS,GAAG,KAAK,CAAC;QAwBtB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;IAhBD,sBAAW,gCAAO;QAHlB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC;QACzB,CAAC;;;OAAA;IAgBD;;;;OAIG;IACI,+BAAS,GAAhB,UAAiB,MAA8B;QAC3C,IAAI,YAAY,GAAkB,EAAE,CAAC;QACrC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC5B,IAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,YAAY,EAAE;gBACd,YAAY,GAAG,YAAY,CAAC;aAC/B;SACJ;aAAM;YACH,YAAY,GAAG,MAAM,CAAC;SACzB;QACD,IAAI,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;YAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpC;IACL,CAAC;IAED;;;;OAIG;IACI,0BAAI,GAAX,UAAY,kBAAuC;QAAnD,iBAyGC;QAxGG,IAAM,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAE1G,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE9B,IAAI,QAAa,CAAC;QAClB,IAAI,kBAAkB,CAAC,IAAI,EAAE;YACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC;SACtC;aAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE;YAC/B,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC;YAC/E,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC,IAAI,IAAI,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;SAC1F;QAED,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC7B,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;YAC/B,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC/B,OAAO,KAAK,CAAC;SAChB;QAED,IAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC;QAEzC,IAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAExC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,UAAU,CACjC,SAAS,EACT,IAAI,CAAC,QAAQ,EACb,QAAQ,EACR,KAAK,EACL,UAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe;YAChD,MAAM,CAAC,OAAO,CAAC,UAAC,IAAI;gBAChB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBACnC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;YACxC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAE5B,KAA6B,UAAe,EAAf,mCAAe,EAAf,6BAAe,EAAf,IAAe,EAAE;gBAAzC,IAAM,cAAc,wBAAA;gBACrB,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;aAC3C;YAED,KAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACrC,KAAK,CAAC,gBAAgB,CAAC;gBACnB,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACP,CAAC,EACD,UAAC,aAAa;YACV,KAAI,CAAC,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YAC/C,KAAK,CAAC,wBAAwB,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;QAC7E,CAAC,EACD,UAAC,KAAK,EAAE,CAAC,EAAE,SAAS;YAChB,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;YAC/B,KAAK,CAAC,KAAK,CAAC,oDAAoD,GAAG,CAAC,CAAC,CAAC;YACtE,KAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YAC3C,KAAK,CAAC,qBAAqB,CAAC,0BAA0B,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QACjG,CAAC,EACD,MAAM,CACR,CAAC;QAEH,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;YAC9B,IAAM,YAAU,GAAmB,KAAK,CAAC,MAAM,CAAC;YAChD,YAAU,CAAC,kBAAkB,GAAG,4BAA4B,CAAC,IAAI,CAAC;YAClE,YAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAEnC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;gBAC1B,YAAU,CAAC,cAAc,GAAG,UAAC,OAAO,EAAE,WAAW;oBAC7C,OAAO,kBAAkB,CAAC,IAAI,IAAI,KAAK,CAAC,aAAa,CAAC,WAAW,IAAI,kBAAkB,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;gBACvG,CAAC,CAAC;aACL;YACD,gCAAgC;YAChC,IACI,IAAI,CAAC,uBAAuB;gBAC5B,IAAI,CAAC,uBAAuB,CAAC,aAAa;gBAC1C,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM;gBACjD,OAAO,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,KAAK,QAAQ;gBACrE,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAC1D;gBACE,YAAU,CAAC,YAAY,GAAG,IAAI,CAAC;aAClC;YACD,MAAM,CAAC,IAAI,CAAC,YAAU,CAAC;iBAClB,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAA7D,CAA6D,CAAC;iBAC/E,OAAO,CAAC,UAAC,YAAY;gBACjB,YAAkB,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAC,OAAc;oBACjD,KAAI,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEP,YAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAC,IAAI;gBACnC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAK,IAAI,CAAC,IAAY,CAAC,OAAO,CAAC,EAAE;oBAClD,KAAK,CAAC,QAAQ,GAAI,IAAI,CAAC,IAAY,CAAC,OAAO,CAAC,CAAC;iBAChD;YACL,CAAC,CAAC,CAAC;YAEH,YAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC;gBAChC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YAC5B,CAAC,CAAC,CAAC;SACN;aAAM;YACH,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;SAC3B;QAED,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEjC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,gCAAU,GAAjB,UAAkB,KAAkB;QAChC,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3D,wCAAwC;QACxC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;YAClC,IAAM,UAAU,GAAmB,MAAM,CAAC;YAC1C,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC;SACrC;aAAM;YACH,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;SAC/D;IACL,CAAC;IAED;;;OAGG;IACI,6BAAO,GAAd;QACI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,MAAM;YACzB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;gBACP,MAAO,CAAC,OAAO,EAAE,CAAC;aACtC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAEO,kCAAY,GAApB,UAAqB,YAAoB;QAAzC,iBAWC;QAX0C,iBAAsB;aAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;YAAtB,gCAAsB;;QAC7D,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO;SACV;QACD,IAAI,CAAC,QAAQ;aACR,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,YAAmC,CAAC,EAAtC,CAAsC,CAAC;aACrD,OAAO,CAAC,UAAC,MAAM;YACZ,IAAI;gBACC,MAAc,CAAC,YAAmC,CAAC,CAAC,KAAK,CAAC,KAAI,EAAE,OAAO,CAAC,CAAC;aAC7E;YAAC,OAAO,CAAC,EAAE,GAAE;QAClB,CAAC,CAAC,CAAC;IACX,CAAC;IACL,kBAAC;AAAD,CAAC,AA7MD,IA6MC","sourcesContent":["/* eslint-disable import/no-internal-modules */\r\nimport type { GLTFFileLoader } from \"loaders/glTF/glTFFileLoader\";\r\nimport { GLTFLoaderAnimationStartMode } from \"loaders/glTF/glTFFileLoader\";\r\nimport type { ISceneLoaderPlugin, ISceneLoaderPluginAsync } from \"core/Loading/sceneLoader\";\r\nimport { SceneLoader } from \"core/Loading/sceneLoader\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport { Tags } from \"core/Misc/tags\";\r\nimport \"core/Misc/observable.extensions\";\r\nimport type { ConfigurationContainer } from \"../configuration/configurationContainer\";\r\nimport type { IModelConfiguration } from \"../configuration/interfaces/modelConfiguration\";\r\nimport type { ObservablesManager } from \"../managers/observablesManager\";\r\nimport { ModelState, ViewerModel } from \"../model/viewerModel\";\r\nimport type { ILoaderPlugin } from \"./plugins/index\";\r\nimport { getLoaderPluginByName } from \"./plugins/index\";\r\nimport \"loaders/glTF/index\";\r\nimport \"core/Loading/Plugins/babylonFileLoader\";\r\n\r\n/**\r\n * An instance of the class is in charge of loading the model correctly.\r\n * This class will continuously 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 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 /**\r\n * @returns the base url of the model loader\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 _observablesManager\r\n * @param _configurationContainer\r\n */\r\n constructor(\r\n private _observablesManager: ObservablesManager,\r\n private _configurationContainer?: ConfigurationContainer\r\n ) {\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 const 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 * @returns the loaded model\r\n */\r\n public load(modelConfiguration: IModelConfiguration): ViewerModel {\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 } 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 const plugin = modelConfiguration.loader;\r\n\r\n const scene = model.rootMesh.getScene();\r\n\r\n model.loader = SceneLoader.ImportMesh(\r\n undefined,\r\n this._baseUrl,\r\n filename,\r\n scene,\r\n (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 },\r\n (progressEvent) => {\r\n this._checkAndRun(\"onProgress\", progressEvent);\r\n model.onLoadProgressObservable.notifyObserversWithPromise(progressEvent);\r\n },\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 },\r\n plugin\r\n )!;\r\n\r\n if (model.loader.name === \"gltf\") {\r\n const 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 (\r\n 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 ) {\r\n gltfLoader.useClipPlane = true;\r\n }\r\n Object.keys(gltfLoader)\r\n .filter((name) => name.indexOf(\"on\") === 0 && name.indexOf(\"Observable\") !== -1)\r\n .forEach((functionName) => {\r\n (gltfLoader as any)[functionName].add((payload: any[]) => {\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 as any)[\"asset\"]) {\r\n model.loadInfo = (data.json as any)[\"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 /**\r\n * Cancel the loading of a model.\r\n * @param model the model to cancel the loading of\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 const 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) {\r\n return;\r\n }\r\n this._plugins\r\n .filter((p) => p[functionName as keyof ILoaderPlugin])\r\n .forEach((plugin) => {\r\n try {\r\n (plugin as any)[functionName as keyof ILoaderPlugin].apply(this, payload);\r\n } catch (e) {}\r\n });\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"modelLoader.js","sourceRoot":"","sources":["../../../../tools/viewer/src/loader/modelLoader.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-internal-modules */\r\nimport type { GLTFFileLoader } from \"loaders/glTF/glTFFileLoader\";\r\nimport { GLTFLoaderAnimationStartMode } from \"loaders/glTF/glTFFileLoader\";\r\nimport type { ISceneLoaderPlugin, ISceneLoaderPluginAsync } from \"core/Loading/sceneLoader\";\r\nimport { SceneLoader } from \"core/Loading/sceneLoader\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport { Tags } from \"core/Misc/tags\";\r\nimport \"core/Misc/observable.extensions\";\r\nimport type { ConfigurationContainer } from \"../configuration/configurationContainer\";\r\nimport type { IModelConfiguration } from \"../configuration/interfaces/modelConfiguration\";\r\nimport type { ObservablesManager } from \"../managers/observablesManager\";\r\nimport { ModelState, ViewerModel } from \"../model/viewerModel\";\r\nimport type { ILoaderPlugin } from \"./plugins/index\";\r\nimport { getLoaderPluginByName } from \"./plugins/index\";\r\nimport \"loaders/glTF/index\";\r\nimport \"core/Loading/Plugins/babylonFileLoader\";\r\n\r\n/**\r\n * An instance of the class is in charge of loading the model correctly.\r\n * This class will continuously 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 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 /**\r\n * @returns the base url of the model loader\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 _observablesManager\r\n * @param _configurationContainer\r\n */\r\n constructor(\r\n private _observablesManager: ObservablesManager,\r\n private _configurationContainer?: ConfigurationContainer\r\n ) {\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 const 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 * @returns the loaded model\r\n */\r\n public load(modelConfiguration: IModelConfiguration): ViewerModel {\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 } 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 const plugin = modelConfiguration.loader;\r\n\r\n const scene = model.rootMesh.getScene();\r\n\r\n SceneLoader.OnPluginActivatedObservable.addOnce((plugin) => {\r\n model.loader = plugin;\r\n if (model.loader.name === \"gltf\") {\r\n const 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 (\r\n 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 ) {\r\n gltfLoader.useClipPlane = true;\r\n }\r\n Object.keys(gltfLoader)\r\n .filter((name) => name.indexOf(\"on\") === 0 && name.indexOf(\"Observable\") !== -1)\r\n .forEach((functionName) => {\r\n (gltfLoader as any)[functionName].add((payload: any[]) => {\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 as any)[\"asset\"]) {\r\n model.loadInfo = (data.json as any)[\"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\r\n SceneLoader.ImportMesh(\r\n undefined,\r\n this._baseUrl,\r\n filename,\r\n scene,\r\n (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 },\r\n (progressEvent) => {\r\n this._checkAndRun(\"onProgress\", progressEvent);\r\n model.onLoadProgressObservable.notifyObserversWithPromise(progressEvent);\r\n },\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 },\r\n plugin\r\n )!;\r\n\r\n return model;\r\n }\r\n\r\n /**\r\n * Cancel the loading of a model.\r\n * @param model the model to cancel the loading of\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 const 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) {\r\n return;\r\n }\r\n this._plugins\r\n .filter((p) => p[functionName as keyof ILoaderPlugin])\r\n .forEach((plugin) => {\r\n try {\r\n (plugin as any)[functionName as keyof ILoaderPlugin].apply(this, payload);\r\n } catch (e) {}\r\n });\r\n }\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@babylonjs/viewer",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.34.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"module": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"postcompile": "build-tools -c add-js-to-es6"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@babylonjs/core": "^7.
|
|
22
|
-
"@babylonjs/loaders": "^7.
|
|
23
|
-
"babylonjs-gltf2interface": "^7.
|
|
24
|
-
"babylonjs-viewer-assets": "^7.
|
|
21
|
+
"@babylonjs/core": "^7.34.0",
|
|
22
|
+
"@babylonjs/loaders": "^7.34.0",
|
|
23
|
+
"babylonjs-gltf2interface": "^7.34.0",
|
|
24
|
+
"babylonjs-viewer-assets": "^7.34.0",
|
|
25
25
|
"deepmerge": "~4.2.2",
|
|
26
26
|
"handlebars": "~4.7.7",
|
|
27
27
|
"pepjs": "~0.5.3",
|