@combeenation/3d-viewer 12.0.0-alpha2 → 12.0.0-alpha4
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/manager/gltfExportManager.d.ts +3 -2
- package/dist/lib-cjs/api/manager/gltfExportManager.js +20 -11
- package/dist/lib-cjs/api/manager/gltfExportManager.js.map +1 -1
- package/dist/lib-cjs/buildinfo.json +1 -1
- package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/api/manager/gltfExportManager.ts +27 -19
|
@@ -8,6 +8,7 @@ export declare class GltfExportManager {
|
|
|
8
8
|
deleteAfterExport: string;
|
|
9
9
|
exchangeMaterialWith: string;
|
|
10
10
|
};
|
|
11
|
+
protected static readonly _EXPORT_ROOT_NAME = "__export_root__";
|
|
11
12
|
protected constructor(viewer: Viewer);
|
|
12
13
|
static create(viewer: Viewer): Promise<GltfExportManager>;
|
|
13
14
|
exportGlb(filename?: string, excluded?: ExcludedGeometryList): Promise<File | undefined>;
|
|
@@ -16,11 +17,11 @@ export declare class GltfExportManager {
|
|
|
16
17
|
protected _exportPreProcess(excluded?: ExcludedGeometryList): Promise<void>;
|
|
17
18
|
protected _exportPostProcess(): Promise<void>;
|
|
18
19
|
protected _gltfExportOptions(): IExportOptions;
|
|
19
|
-
protected _prepareNodeForExport(node: BjsNode, clonedParent:
|
|
20
|
+
protected _prepareNodeForExport(node: BjsNode, clonedParent: TransformNode, excluded?: ExcludedGeometryList): void;
|
|
20
21
|
protected _shouldExportNode(node: BjsNode, excluded?: ExcludedGeometryList): boolean;
|
|
21
22
|
protected _shouldReplaceMaterial(material: Material): boolean;
|
|
22
23
|
/**
|
|
23
24
|
* Create an export-friendly replacement material for a material using refraction.
|
|
24
25
|
*/
|
|
25
|
-
protected _createRefractionMaterialReplacement(material: PBRMaterial):
|
|
26
|
+
protected _createRefractionMaterialReplacement(material: PBRMaterial): void;
|
|
26
27
|
}
|
|
@@ -64,12 +64,21 @@ class GltfExportManager {
|
|
|
64
64
|
}
|
|
65
65
|
_exportPreProcess(excluded) {
|
|
66
66
|
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
this.viewer.pauseRendering();
|
|
67
68
|
// handle materials
|
|
68
69
|
this.viewer.scene.materials
|
|
69
70
|
.filter(material => this._shouldReplaceMaterial(material))
|
|
70
71
|
.forEach(material => this._createRefractionMaterialReplacement(material));
|
|
72
|
+
const exportRootNode = new transformNode_1.TransformNode(GltfExportManager._EXPORT_ROOT_NAME, this.viewer.scene);
|
|
73
|
+
exportRootNode.scaling = new index_1.Vector3(-1, 1, 1);
|
|
74
|
+
(0, babylonHelper_1.injectMetadata)(exportRootNode, {
|
|
75
|
+
[GltfExportManager._METADATA_PROPS.exportNode]: true,
|
|
76
|
+
[GltfExportManager._METADATA_PROPS.deleteAfterExport]: true,
|
|
77
|
+
});
|
|
71
78
|
// handle nodes
|
|
72
|
-
this.viewer.scene.rootNodes
|
|
79
|
+
this.viewer.scene.rootNodes
|
|
80
|
+
.filter(rootNode => rootNode.name !== GltfExportManager._EXPORT_ROOT_NAME)
|
|
81
|
+
.forEach(rootNode => this._prepareNodeForExport(rootNode, exportRootNode, excluded));
|
|
73
82
|
// bake transformation of all meshes, so that no negative scalings are left
|
|
74
83
|
// it's important that this is done AFTER instanced meshes have been converted (_prepareNodeForExport)
|
|
75
84
|
this.viewer.scene.meshes
|
|
@@ -77,8 +86,12 @@ class GltfExportManager {
|
|
|
77
86
|
.forEach(mesh => (0, geometryHelper_1.bakeGeometryOfMesh)(mesh));
|
|
78
87
|
// reset transformation of all "TransformNodes", which couldn't be handled by the geometry baking algorithm
|
|
79
88
|
// it's important that this is done AFTER all geometries have been baked
|
|
80
|
-
this.viewer.scene.transformNodes
|
|
81
|
-
.filter(node => {
|
|
89
|
+
[...this.viewer.scene.transformNodes, ...this.viewer.scene.meshes]
|
|
90
|
+
.filter(node => {
|
|
91
|
+
var _a;
|
|
92
|
+
return !!((_a = node.metadata) === null || _a === void 0 ? void 0 : _a[GltfExportManager._METADATA_PROPS.exportNode]) &&
|
|
93
|
+
node.name !== GltfExportManager._EXPORT_ROOT_NAME;
|
|
94
|
+
})
|
|
82
95
|
.forEach(node => (0, geometryHelper_1.resetTransformation)(node));
|
|
83
96
|
});
|
|
84
97
|
}
|
|
@@ -91,6 +104,7 @@ class GltfExportManager {
|
|
|
91
104
|
this.viewer.scene.materials
|
|
92
105
|
.filter(mat => { var _a; return !!((_a = mat.metadata) === null || _a === void 0 ? void 0 : _a[GltfExportManager._METADATA_PROPS.deleteAfterExport]); })
|
|
93
106
|
.forEach(material => material.dispose(false, false));
|
|
107
|
+
this.viewer.resumeRendering();
|
|
94
108
|
});
|
|
95
109
|
}
|
|
96
110
|
_gltfExportOptions() {
|
|
@@ -99,10 +113,6 @@ class GltfExportManager {
|
|
|
99
113
|
var _a;
|
|
100
114
|
return !!((_a = node.metadata) === null || _a === void 0 ? void 0 : _a[GltfExportManager._METADATA_PROPS.exportNode]);
|
|
101
115
|
},
|
|
102
|
-
// keep root node(s)
|
|
103
|
-
// this seems to be important due to the geometry baking and transformation resetting stuff
|
|
104
|
-
// => root node would have no transformation anymore, which seems to be problematic for the import
|
|
105
|
-
removeNoopRootNodes: false,
|
|
106
116
|
};
|
|
107
117
|
}
|
|
108
118
|
_prepareNodeForExport(node, clonedParent, excluded) {
|
|
@@ -165,10 +175,9 @@ class GltfExportManager {
|
|
|
165
175
|
*/
|
|
166
176
|
_createRefractionMaterialReplacement(material) {
|
|
167
177
|
const newName = `${material.name}_clone`;
|
|
168
|
-
|
|
169
|
-
const clonedMaterial = material.clone(newName); // clone material
|
|
178
|
+
const clonedMaterial = material.clone(newName);
|
|
170
179
|
clonedMaterial.refractionTexture = null;
|
|
171
|
-
clonedMaterial.metallicReflectanceTexture = null;
|
|
180
|
+
clonedMaterial.metallicReflectanceTexture = null;
|
|
172
181
|
clonedMaterial.alpha = 0.7;
|
|
173
182
|
clonedMaterial.albedoColor = new index_1.Color3(0.3, 0.3, 0.3);
|
|
174
183
|
clonedMaterial.transparencyMode = index_1.PBRMaterial.PBRMATERIAL_ALPHABLEND;
|
|
@@ -176,7 +185,6 @@ class GltfExportManager {
|
|
|
176
185
|
clonedMaterial.roughness = 0.15;
|
|
177
186
|
(0, babylonHelper_1.injectMetadata)(material, { [GltfExportManager._METADATA_PROPS.exchangeMaterialWith]: newName });
|
|
178
187
|
(0, babylonHelper_1.injectMetadata)(clonedMaterial, { [GltfExportManager._METADATA_PROPS.deleteAfterExport]: true });
|
|
179
|
-
return clonedMaterial;
|
|
180
188
|
}
|
|
181
189
|
}
|
|
182
190
|
exports.GltfExportManager = GltfExportManager;
|
|
@@ -185,4 +193,5 @@ GltfExportManager._METADATA_PROPS = {
|
|
|
185
193
|
deleteAfterExport: 'deleteAfterExport',
|
|
186
194
|
exchangeMaterialWith: 'exchangeMaterialWith',
|
|
187
195
|
};
|
|
196
|
+
GltfExportManager._EXPORT_ROOT_NAME = '__export_root__';
|
|
188
197
|
//# sourceMappingURL=gltfExportManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltfExportManager.js","sourceRoot":"","sources":["../../../../src/api/manager/gltfExportManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"gltfExportManager.js","sourceRoot":"","sources":["../../../../src/api/manager/gltfExportManager.ts"],"names":[],"mappings":"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"}
|