@combeenation/3d-viewer 12.2.1 → 12.3.0-beta1
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/dist/lib-cjs/api/util/globalTypes.d.ts +2 -0
- package/dist/lib-cjs/api/util/sceneLoaderHelper.d.ts +2 -2
- package/dist/lib-cjs/api/util/sceneLoaderHelper.js +31 -16
- package/dist/lib-cjs/api/util/sceneLoaderHelper.js.map +1 -1
- package/dist/lib-cjs/buildinfo.json +1 -1
- package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
- package/dist/lib-cjs/index.d.ts +14 -5
- package/dist/lib-cjs/index.js +20 -9
- package/dist/lib-cjs/index.js.map +1 -1
- package/package.json +1 -2
- package/src/api/util/globalTypes.ts +2 -0
- package/src/api/util/sceneLoaderHelper.ts +55 -20
- package/src/index.ts +17 -4
|
@@ -19,6 +19,8 @@ declare type Color4 = import('@babylonjs/core/Maths/math.color').Color4;
|
|
|
19
19
|
declare type Material = import('@babylonjs/core/Materials/material').Material;
|
|
20
20
|
declare type PBRMaterial = import('@babylonjs/core/Materials/PBR/pbrMaterial').PBRMaterial;
|
|
21
21
|
declare type StandardMaterial = import('@babylonjs/core/Materials/standardMaterial').StandardMaterial;
|
|
22
|
+
declare type BackgroundMaterial = import('@babylonjs/core/Materials/Background/backgroundMaterial').BackgroundMaterial;
|
|
23
|
+
declare type NodeMaterial = import('@babylonjs/core/Materials/Node').NodeMaterial;
|
|
22
24
|
declare type DynamicTexture = import('@babylonjs/core/Materials/Textures/dynamicTexture').DynamicTexture;
|
|
23
25
|
declare type Mesh = import('@babylonjs/core/Meshes/mesh').Mesh;
|
|
24
26
|
declare type AbstractMesh = import('@babylonjs/core/Meshes/abstractMesh').AbstractMesh;
|
|
@@ -27,7 +27,7 @@ export declare const getMaterialPostLoadObserver: (concerningMesh: Mesh) => () =
|
|
|
27
27
|
* @param dataParsed original data
|
|
28
28
|
* @param container loaded data
|
|
29
29
|
*/
|
|
30
|
-
export declare const addMissingMaterialMetadata: (dataParsed:
|
|
30
|
+
export declare const addMissingMaterialMetadata: (dataParsed: unknown, container: AssetContainer) => void;
|
|
31
31
|
/**
|
|
32
32
|
* Help function for manipulating tags of instances meshes after parsing.
|
|
33
33
|
* Per default babylon attaches the tags of the source mesh to the instance, **but only** if no tags are set for the
|
|
@@ -40,7 +40,7 @@ export declare const addMissingMaterialMetadata: (dataParsed: any, container: As
|
|
|
40
40
|
* @param dataParsed original data
|
|
41
41
|
* @param container loaded data
|
|
42
42
|
*/
|
|
43
|
-
export declare const reconstructTagsForInstancedMeshes: (dataParsed:
|
|
43
|
+
export declare const reconstructTagsForInstancedMeshes: (dataParsed: unknown, container: AssetContainer) => void;
|
|
44
44
|
/**
|
|
45
45
|
* Adds an "onEnabledStateChanged" observer to the given mesh and all its parents:
|
|
46
46
|
* The added observer (`getMaterialPostLoadObserver`) handles creation of missing materials once the given node is
|
|
@@ -19,6 +19,7 @@ const resourceHelper_1 = require("./resourceHelper");
|
|
|
19
19
|
const material_1 = require("@babylonjs/core/Materials/material");
|
|
20
20
|
const instancedMesh_1 = require("@babylonjs/core/Meshes/instancedMesh");
|
|
21
21
|
const tags_1 = require("@babylonjs/core/Misc/tags");
|
|
22
|
+
const lodash_es_1 = require("lodash-es");
|
|
22
23
|
const has_1 = __importDefault(require("lodash-es/has"));
|
|
23
24
|
// map for keeping track of active "node enable" observers
|
|
24
25
|
const enableObserverMap = {};
|
|
@@ -88,6 +89,19 @@ const getMaterialPostLoadObserver = function (concerningMesh) {
|
|
|
88
89
|
});
|
|
89
90
|
};
|
|
90
91
|
exports.getMaterialPostLoadObserver = getMaterialPostLoadObserver;
|
|
92
|
+
function _isMeshInstanceData(data) {
|
|
93
|
+
const hasName = (0, lodash_es_1.isString)(data.name);
|
|
94
|
+
const hasValidTags = !data.tags || (0, lodash_es_1.isString)(data.tags);
|
|
95
|
+
return hasName && hasValidTags;
|
|
96
|
+
}
|
|
97
|
+
function _isMeshData(data) {
|
|
98
|
+
const hasName = (0, lodash_es_1.isString)(data.name);
|
|
99
|
+
const hasValidMaterialId = !data.materialId || (0, lodash_es_1.isString)(data.materialId);
|
|
100
|
+
return hasName && hasValidMaterialId;
|
|
101
|
+
}
|
|
102
|
+
function _isDataWithMeshes(data) {
|
|
103
|
+
return data && (0, lodash_es_1.isArray)(data.meshes);
|
|
104
|
+
}
|
|
91
105
|
/**
|
|
92
106
|
* Internal function that compares the original meshes on a .babylon file with what was loaded,
|
|
93
107
|
* and tags missing materials with respective metadata on respective meshes.
|
|
@@ -95,22 +109,19 @@ exports.getMaterialPostLoadObserver = getMaterialPostLoadObserver;
|
|
|
95
109
|
* @param container loaded data
|
|
96
110
|
*/
|
|
97
111
|
const addMissingMaterialMetadata = function (dataParsed, container) {
|
|
98
|
-
|
|
112
|
+
if (!_isDataWithMeshes(dataParsed))
|
|
113
|
+
return;
|
|
114
|
+
const validatedMeshes = dataParsed.meshes.filter(_isMeshData);
|
|
115
|
+
container.meshes.forEach(importedMesh => {
|
|
99
116
|
var _a, _b;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
const materialOnImportedMesh = (_a = currMeshImported.material) === null || _a === void 0 ? void 0 : _a.id;
|
|
107
|
-
const materialOnOriginalMesh = currMeshOriginal.materialId;
|
|
108
|
-
if (!materialOnOriginalMesh || materialOnImportedMesh === materialOnOriginalMesh)
|
|
109
|
-
continue;
|
|
110
|
-
// if we're here, the imported mesh has different material than original one
|
|
117
|
+
const parsedMesh = validatedMeshes.find(mesh => mesh.name === importedMesh.name);
|
|
118
|
+
// save original material id of the imported babylon or GLB file
|
|
119
|
+
(0, babylonHelper_1.injectMetadata)(importedMesh, { [exports.parsedMaterialIdMetadataName]: parsedMesh === null || parsedMesh === void 0 ? void 0 : parsedMesh.materialId }, false);
|
|
120
|
+
const materialOnImportedMesh = (_a = importedMesh.material) === null || _a === void 0 ? void 0 : _a.id;
|
|
121
|
+
const materialOnOriginalMesh = parsedMesh === null || parsedMesh === void 0 ? void 0 : parsedMesh.materialId;
|
|
122
|
+
if (materialOnOriginalMesh && materialOnImportedMesh !== materialOnOriginalMesh) {
|
|
111
123
|
(_b = window.Cbn) === null || _b === void 0 ? void 0 : _b.Assets.assertMaterialExists(materialOnOriginalMesh);
|
|
112
|
-
(0, babylonHelper_1.injectMetadata)(
|
|
113
|
-
break;
|
|
124
|
+
(0, babylonHelper_1.injectMetadata)(importedMesh, { [exports.missingMaterialMetadataName]: materialOnOriginalMesh }, false);
|
|
114
125
|
}
|
|
115
126
|
});
|
|
116
127
|
};
|
|
@@ -128,6 +139,9 @@ exports.addMissingMaterialMetadata = addMissingMaterialMetadata;
|
|
|
128
139
|
* @param container loaded data
|
|
129
140
|
*/
|
|
130
141
|
const reconstructTagsForInstancedMeshes = function (dataParsed, container) {
|
|
142
|
+
if (!_isDataWithMeshes(dataParsed))
|
|
143
|
+
return;
|
|
144
|
+
const validatedMeshes = dataParsed.meshes.filter(_isMeshData);
|
|
131
145
|
container.meshes.forEach(importedMesh => {
|
|
132
146
|
var _a;
|
|
133
147
|
if (importedMesh instanceof instancedMesh_1.InstancedMesh) {
|
|
@@ -137,8 +151,9 @@ const reconstructTagsForInstancedMeshes = function (dataParsed, container) {
|
|
|
137
151
|
if (importedTags) {
|
|
138
152
|
tags_1.Tags.RemoveTagsFrom(importedMesh, importedTags);
|
|
139
153
|
// get tags of parsed instanced mesh and set them on the imported instanced mesh
|
|
140
|
-
const parsedSourceMesh =
|
|
141
|
-
const
|
|
154
|
+
const parsedSourceMesh = validatedMeshes.find(mesh => mesh.name === importedMesh.sourceMesh.name);
|
|
155
|
+
const validatedSourceMeshInstances = (_a = parsedSourceMesh === null || parsedSourceMesh === void 0 ? void 0 : parsedSourceMesh.instances) === null || _a === void 0 ? void 0 : _a.filter(_isMeshInstanceData);
|
|
156
|
+
const parsedInstancedMesh = validatedSourceMeshInstances === null || validatedSourceMeshInstances === void 0 ? void 0 : validatedSourceMeshInstances.find(mesh => mesh.name === importedMesh.name);
|
|
142
157
|
const parsedTags = parsedInstancedMesh === null || parsedInstancedMesh === void 0 ? void 0 : parsedInstancedMesh.tags;
|
|
143
158
|
if (parsedTags) {
|
|
144
159
|
tags_1.Tags.AddTagsTo(importedMesh, parsedTags);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sceneLoaderHelper.js","sourceRoot":"","sources":["../../../../src/api/util/sceneLoaderHelper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAkD;AAClD,mDAAqF;AACrF,qDAAyC;AAEzC,iEAA8D;AAC9D,wEAAqE;AAErE,oDAAiD;AAMjD,wDAAgC;AAEhC,0DAA0D;AAC1D,MAAM,iBAAiB,GAEnB,EAAE,CAAC;AAEM,QAAA,2BAA2B,GAAG,iBAAiB,CAAC;AAChD,QAAA,4BAA4B,GAAG,kBAAkB,CAAC;AAE/D;;;;;;GAMG;AACI,MAAM,+BAA+B,GAAG,UAAU,oBAAwC;IAC/F,MAAM,YAAY,GAAuB;QACvC,IAAI,EAAE,wBAAwB;QAC9B,UAAU,EAAE,UAAU;QACtB,UAAU,EAAE,oBAAoB,CAAC,UAAU;QAC3C,IAAI,EAAE,oBAAoB,CAAC,IAAI;QAC/B,kBAAkB,EAAE,UAAU,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;YACzD,mCAAmC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,mDAAmD;YACnD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACxF,mCAAmC;YACnC,IAAA,kCAA0B,EAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;YAC1D,IAAA,yCAAiC,EAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;YACjE,+BAA+B;YAC/B,OAAO,iBAAiB,CAAC;QAC3B,CAAC;KACF,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAnBW,QAAA,+BAA+B,mCAmB1C;AAEF;;;;;;GAMG;AACI,MAAM,2BAA2B,GAAG,UAAU,cAAoB;IACvE,OAAO,GAAS,EAAE;;QAChB,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;QAExC,sGAAsG;QACtG,sEAAsE;QACtE,MAAM,IAAA,sBAAK,EAAC,CAAC,CAAC,CAAC;QAEf,MAAM,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,IAAA,aAAG,EAAC,cAAc,CAAC,QAAQ,EAAE,mCAA2B,CAAC,CAAC;QAClF,IAAI,CAAC,cAAc,IAAI,CAAC,eAAe;YAAE,OAAO;QAChD,6BAA6B;QAC7B,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,mCAA2B,CAAC,CAAC;QAC1E,uFAAuF;QACvF,MAAM,QAAQ,GAAG,MAAM,IAAA,mCAAmB,EAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;QACpF,IAAA,6BAAa,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAChD,eAAO,CAAC,IAAI,CAAC,aAAK,CAAC,qBAAqB,EAAE,cAAc,EAAE,QAAQ,CAAC,CACpE,CAAC;QACF,mFAAmF;QACnF,OAAO,cAAc,CAAC,QAAQ,CAAC,mCAA2B,CAAC,CAAC;QAE5D,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAA,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC,0CAAE,OAAO,CAAC,KAAK,CAAC,EAAE;YACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACrD,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,+BAA+B,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,0CAA0C;QAC1C,OAAO,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC;AA9BW,QAAA,2BAA2B,+BA8BtC;
|
|
1
|
+
{"version":3,"file":"sceneLoaderHelper.js","sourceRoot":"","sources":["../../../../src/api/util/sceneLoaderHelper.ts"],"names":[],"mappings":"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"}
|