@combeenation/3d-viewer 12.0.0-alpha1 → 12.0.0-alpha2
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 +1 -1
- package/dist/lib-cjs/api/manager/gltfExportManager.js +17 -13
- package/dist/lib-cjs/api/manager/gltfExportManager.js.map +1 -1
- package/dist/lib-cjs/api/util/geometryHelper.d.ts +1 -1
- package/dist/lib-cjs/api/util/geometryHelper.js +11 -7
- package/dist/lib-cjs/api/util/geometryHelper.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 +21 -17
- package/src/api/util/geometryHelper.ts +17 -7
|
@@ -16,7 +16,7 @@ export declare class GltfExportManager {
|
|
|
16
16
|
protected _exportPreProcess(excluded?: ExcludedGeometryList): Promise<void>;
|
|
17
17
|
protected _exportPostProcess(): Promise<void>;
|
|
18
18
|
protected _gltfExportOptions(): IExportOptions;
|
|
19
|
-
protected _prepareNodeForExport(node:
|
|
19
|
+
protected _prepareNodeForExport(node: BjsNode, clonedParent: Nullable<TransformNode>, excluded?: ExcludedGeometryList): void;
|
|
20
20
|
protected _shouldExportNode(node: BjsNode, excluded?: ExcludedGeometryList): boolean;
|
|
21
21
|
protected _shouldReplaceMaterial(material: Material): boolean;
|
|
22
22
|
/**
|
|
@@ -70,17 +70,21 @@ class GltfExportManager {
|
|
|
70
70
|
.forEach(material => this._createRefractionMaterialReplacement(material));
|
|
71
71
|
// handle nodes
|
|
72
72
|
this.viewer.scene.rootNodes.forEach(rootNode => this._prepareNodeForExport(rootNode, null, excluded));
|
|
73
|
+
// bake transformation of all meshes, so that no negative scalings are left
|
|
74
|
+
// it's important that this is done AFTER instanced meshes have been converted (_prepareNodeForExport)
|
|
75
|
+
this.viewer.scene.meshes
|
|
76
|
+
.filter(mesh => { var _a; return !!((_a = mesh.metadata) === null || _a === void 0 ? void 0 : _a[GltfExportManager._METADATA_PROPS.exportNode]); })
|
|
77
|
+
.forEach(mesh => (0, geometryHelper_1.bakeGeometryOfMesh)(mesh));
|
|
73
78
|
// reset transformation of all "TransformNodes", which couldn't be handled by the geometry baking algorithm
|
|
74
79
|
// it's important that this is done AFTER all geometries have been baked
|
|
75
|
-
this.viewer.scene
|
|
76
|
-
.getNodes()
|
|
80
|
+
this.viewer.scene.transformNodes
|
|
77
81
|
.filter(node => { var _a; return !!((_a = node.metadata) === null || _a === void 0 ? void 0 : _a[GltfExportManager._METADATA_PROPS.exportNode]); })
|
|
78
82
|
.forEach(node => (0, geometryHelper_1.resetTransformation)(node));
|
|
79
83
|
});
|
|
80
84
|
}
|
|
81
85
|
_exportPostProcess() {
|
|
82
86
|
return __awaiter(this, void 0, void 0, function* () {
|
|
83
|
-
// dispose all nodes and
|
|
87
|
+
// dispose all nodes and materials that have only been created for the export
|
|
84
88
|
this.viewer.scene.rootNodes
|
|
85
89
|
.filter(rootNode => { var _a; return (_a = rootNode.metadata) === null || _a === void 0 ? void 0 : _a[GltfExportManager._METADATA_PROPS.deleteAfterExport]; })
|
|
86
90
|
.forEach(rootNode => rootNode.dispose());
|
|
@@ -97,7 +101,7 @@ class GltfExportManager {
|
|
|
97
101
|
},
|
|
98
102
|
// keep root node(s)
|
|
99
103
|
// this seems to be important due to the geometry baking and transformation resetting stuff
|
|
100
|
-
// => root node
|
|
104
|
+
// => root node would have no transformation anymore, which seems to be problematic for the import
|
|
101
105
|
removeNoopRootNodes: false,
|
|
102
106
|
};
|
|
103
107
|
}
|
|
@@ -106,15 +110,15 @@ class GltfExportManager {
|
|
|
106
110
|
if (!this._shouldExportNode(node, excluded)) {
|
|
107
111
|
return;
|
|
108
112
|
}
|
|
113
|
+
// from here on we only have TransformNodes
|
|
114
|
+
const transformNode = node;
|
|
109
115
|
// clone original node and create unique name (via uniqueId)
|
|
110
|
-
const newNodeName = `${
|
|
111
|
-
const clonedNode =
|
|
112
|
-
? (0, geometryHelper_1.createMeshFromInstancedMesh)(
|
|
113
|
-
:
|
|
114
|
-
//
|
|
115
|
-
// also exchange material
|
|
116
|
+
const newNodeName = `${transformNode.name}_${transformNode.uniqueId}`;
|
|
117
|
+
const clonedNode = transformNode instanceof index_1.InstancedMesh
|
|
118
|
+
? (0, geometryHelper_1.createMeshFromInstancedMesh)(transformNode, newNodeName, clonedParent)
|
|
119
|
+
: transformNode.clone(newNodeName, clonedParent, true);
|
|
120
|
+
// exchange material
|
|
116
121
|
if (clonedNode instanceof mesh_1.Mesh) {
|
|
117
|
-
(0, geometryHelper_1.bakeGeometryOfMesh)(clonedNode);
|
|
118
122
|
const exchangeWithMaterial = (_b = (_a = clonedNode.material) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b[GltfExportManager._METADATA_PROPS.exchangeMaterialWith];
|
|
119
123
|
if (exchangeWithMaterial) {
|
|
120
124
|
clonedNode.material = this.viewer.scene.getMaterialByName(exchangeWithMaterial);
|
|
@@ -125,8 +129,8 @@ class GltfExportManager {
|
|
|
125
129
|
[GltfExportManager._METADATA_PROPS.exportNode]: true,
|
|
126
130
|
[GltfExportManager._METADATA_PROPS.deleteAfterExport]: true,
|
|
127
131
|
});
|
|
128
|
-
//
|
|
129
|
-
const childs =
|
|
132
|
+
// handle children
|
|
133
|
+
const childs = transformNode.getChildTransformNodes(true);
|
|
130
134
|
childs.forEach(child => this._prepareNodeForExport(child, clonedNode, excluded));
|
|
131
135
|
}
|
|
132
136
|
_shouldExportNode(node, excluded) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltfExportManager.js","sourceRoot":"","sources":["../../../../src/api/manager/gltfExportManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAkF;AAClF,8CAA2C;AAC3C,yDAAuD;AACvD,2DAA8G;AAC9G,6DAAwE;AACxE,sDAAmD;AACnD,wEAAqE;AACrE,mFAA6E;AAE7E,MAAa,iBAAiB;IAO5B,YAAgC,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE3C,MAAM,CAAO,MAAM,CAAC,MAAc;;YACvC,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;KAAA;IAEY,SAAS,CAAC,QAAQ,GAAG,gBAAgB,EAAE,QAA+B;;YACjF,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,MAAM,4BAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAElG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAEhC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC/C,iFAAiF;YACjF,IAAI,OAAO,YAAY,IAAI,EAAE;gBAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAC9B,QAAQ,IAAI,MAAM,CAAC;iBACpB;gBACD,OAAO,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;aACtC;iBAAM;gBACL,8BAA8B;gBAC9B,OAAO,SAAS,CAAC;aAClB;QACH,CAAC;KAAA;IAEY,gBAAgB,CAAC,QAAgB,EAAE,QAA+B;;YAC7E,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEvC,MAAM,IAAI,GAAG,MAAM,4BAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACjG,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;KAAA;IAEY,eAAe,CAAC,QAAgB,EAAE,QAA+B;;YAC5E,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEvC,MAAM,GAAG,GAAG,MAAM,4BAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC/F,GAAG,CAAC,aAAa,EAAE,CAAC;YAEpB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClC,CAAC;KAAA;IAEe,iBAAiB,CAAC,QAA+B;;YAC/D,mBAAmB;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;iBACxB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;iBACzD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,QAAuB,CAAC,CAAC,CAAC;YAE3F,eAAe;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"gltfExportManager.js","sourceRoot":"","sources":["../../../../src/api/manager/gltfExportManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAkF;AAClF,8CAA2C;AAC3C,yDAAuD;AACvD,2DAA8G;AAC9G,6DAAwE;AACxE,sDAAmD;AACnD,wEAAqE;AACrE,mFAA6E;AAE7E,MAAa,iBAAiB;IAO5B,YAAgC,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE3C,MAAM,CAAO,MAAM,CAAC,MAAc;;YACvC,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;KAAA;IAEY,SAAS,CAAC,QAAQ,GAAG,gBAAgB,EAAE,QAA+B;;YACjF,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,MAAM,4BAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAElG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAEhC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC/C,iFAAiF;YACjF,IAAI,OAAO,YAAY,IAAI,EAAE;gBAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAC9B,QAAQ,IAAI,MAAM,CAAC;iBACpB;gBACD,OAAO,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;aACtC;iBAAM;gBACL,8BAA8B;gBAC9B,OAAO,SAAS,CAAC;aAClB;QACH,CAAC;KAAA;IAEY,gBAAgB,CAAC,QAAgB,EAAE,QAA+B;;YAC7E,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEvC,MAAM,IAAI,GAAG,MAAM,4BAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACjG,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;KAAA;IAEY,eAAe,CAAC,QAAgB,EAAE,QAA+B;;YAC5E,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAEvC,MAAM,GAAG,GAAG,MAAM,4BAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC/F,GAAG,CAAC,aAAa,EAAE,CAAC;YAEpB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClC,CAAC;KAAA;IAEe,iBAAiB,CAAC,QAA+B;;YAC/D,mBAAmB;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;iBACxB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;iBACzD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,QAAuB,CAAC,CAAC,CAAC;YAE3F,eAAe;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YAEtG,2EAA2E;YAC3E,sGAAsG;YACtG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;iBACrB,MAAM,CAAC,IAAI,CAAC,EAAE,WAAC,OAAA,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAG,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA,CAAA,EAAA,CAAC;iBAC/E,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,mCAAkB,EAAC,IAAY,CAAC,CAAC,CAAC;YAErD,2GAA2G;YAC3G,wEAAwE;YACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc;iBAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,WAAC,OAAA,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAG,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA,CAAA,EAAA,CAAC;iBAC/E,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,oCAAmB,EAAC,IAAqB,CAAC,CAAC,CAAC;QACjE,CAAC;KAAA;IAEe,kBAAkB;;YAChC,6EAA6E;YAC7E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;iBACxB,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAC,OAAA,MAAA,QAAQ,CAAC,QAAQ,0CAAG,iBAAiB,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAA,EAAA,CAAC;iBAC5F,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YAE3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;iBACxB,MAAM,CAAC,GAAG,CAAC,EAAE,WAAC,OAAA,CAAC,CAAC,CAAA,MAAA,GAAG,CAAC,QAAQ,0CAAG,iBAAiB,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAA,CAAA,EAAA,CAAC;iBACpF,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACzD,CAAC;KAAA;IAES,kBAAkB;QAC1B,OAAO;YACL,gBAAgB,EAAE,UAAU,IAAa;;gBACvC,OAAO,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAG,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA,CAAC;YACzE,CAAC;YACD,oBAAoB;YACpB,2FAA2F;YAC3F,kGAAkG;YAClG,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAES,qBAAqB,CAC7B,IAAa,EACb,YAAqC,EACrC,QAA+B;;QAE/B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;YAC3C,OAAO;SACR;QAED,2CAA2C;QAC3C,MAAM,aAAa,GAAG,IAAqB,CAAC;QAE5C,4DAA4D;QAC5D,MAAM,WAAW,GAAG,GAAG,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;QACtE,MAAM,UAAU,GACd,aAAa,YAAY,qBAAa;YACpC,CAAC,CAAC,IAAA,4CAA2B,EAAC,aAAa,EAAE,WAAW,EAAE,YAAY,CAAC;YACvE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAE,CAAC;QAE5D,oBAAoB;QACpB,IAAI,UAAU,YAAY,WAAI,EAAE;YAC9B,MAAM,oBAAoB,GACxB,MAAA,MAAA,UAAU,CAAC,QAAQ,0CAAE,QAAQ,0CAAG,iBAAiB,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;YAC1F,IAAI,oBAAoB,EAAE;gBACxB,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;aACjF;SACF;QAED,uCAAuC;QACvC,IAAA,8BAAc,EAAC,UAAW,EAAE;YAC1B,CAAC,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,IAAI;YACpD,CAAC,iBAAiB,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,IAAI;SAC5D,CAAC,CAAC;QAEH,kBAAkB;QAClB,MAAM,MAAM,GAAG,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnF,CAAC;IAES,iBAAiB,CAAC,IAAa,EAAE,QAA+B;QACxE,IAAI,CAAC,CAAC,IAAI,YAAY,6BAAa,CAAC,EAAE;YACpC,OAAO,KAAK,CAAC;SACd;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,eAAM,CAAC,iBAAiB,EAAE;YAC1C,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;YACrB,OAAO,KAAK,CAAC;SACd;QACD,IAAI,QAAQ,IAAI,IAAA,+CAA6B,EAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;YAC7D,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAES,sBAAsB,CAAC,QAAkB;QACjD,IAAI,CAAC,CAAC,QAAQ,YAAY,mBAAW,CAAC,EAAE;YACtC,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,EAAE;YAC5C,OAAO,KAAK,CAAC;SACd;QACD,IAAI,QAAQ,CAAC,gBAAgB,KAAK,mBAAW,CAAC,kBAAkB,EAAE;YAChE,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACO,oCAAoC,CAAC,QAAqB;QAClE,MAAM,OAAO,GAAG,GAAG,QAAQ,CAAC,IAAI,QAAQ,CAAC;QACzC,gJAAgJ;QAChJ,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB;QACjE,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACxC,cAAc,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAAC,kDAAkD;QACpG,cAAc,CAAC,KAAK,GAAG,GAAG,CAAC;QAC3B,cAAc,CAAC,WAAW,GAAG,IAAI,cAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvD,cAAc,CAAC,gBAAgB,GAAG,mBAAW,CAAC,sBAAsB,CAAC;QACrE,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC/B,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC;QAEhC,IAAA,8BAAc,EAAC,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAChG,IAAA,8BAAc,EAAC,cAAc,EAAE,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhG,OAAO,cAAc,CAAC;IACxB,CAAC;;AAzLH,8CA0LC;AAzL2B,iCAAe,GAAG;IAC1C,UAAU,EAAE,YAAY;IACxB,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,sBAAsB;CAC7C,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { InstancedMesh } from '@babylonjs/core/Meshes/instancedMesh';
|
|
2
2
|
import { Mesh } from '@babylonjs/core/Meshes/mesh';
|
|
3
3
|
import { TransformNode } from '@babylonjs/core/Meshes/transformNode';
|
|
4
|
-
declare const createMeshFromInstancedMesh: (instancedMesh: InstancedMesh, newName: string) => Mesh;
|
|
4
|
+
declare const createMeshFromInstancedMesh: (instancedMesh: InstancedMesh, newName: string, clonedParent: Nullable<TransformNode>) => Mesh;
|
|
5
5
|
declare const bakeGeometryOfMesh: (mesh: Mesh) => void;
|
|
6
6
|
declare const resetTransformation: (node: TransformNode) => void;
|
|
7
7
|
export { createMeshFromInstancedMesh, bakeGeometryOfMesh, resetTransformation };
|
|
@@ -3,14 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.resetTransformation = exports.bakeGeometryOfMesh = exports.createMeshFromInstancedMesh = void 0;
|
|
4
4
|
const buffer_1 = require("@babylonjs/core/Buffers/buffer");
|
|
5
5
|
const math_vector_1 = require("@babylonjs/core/Maths/math.vector");
|
|
6
|
-
const createMeshFromInstancedMesh = function (instancedMesh, newName) {
|
|
6
|
+
const createMeshFromInstancedMesh = function (instancedMesh, newName, clonedParent) {
|
|
7
7
|
// first create a clone of the source mesh
|
|
8
|
-
const newMesh = instancedMesh.sourceMesh.clone(newName,
|
|
9
|
-
// apply the transformation data
|
|
10
|
-
|
|
11
|
-
newMesh.
|
|
12
|
-
newMesh.
|
|
13
|
-
newMesh.scaling = instancedMesh.scaling;
|
|
8
|
+
const newMesh = instancedMesh.sourceMesh.clone(newName, clonedParent, true);
|
|
9
|
+
// apply the transformation data, it's important to create clones of the transformations to not touch the original
|
|
10
|
+
// transformation when applying changes (eg: geometry baking)
|
|
11
|
+
newMesh.position = instancedMesh.position.clone();
|
|
12
|
+
newMesh.rotation = instancedMesh.rotation.clone();
|
|
13
|
+
newMesh.scaling = instancedMesh.scaling.clone();
|
|
14
|
+
// rotation quaternion is optional
|
|
15
|
+
if (instancedMesh.rotationQuaternion) {
|
|
16
|
+
newMesh.rotationQuaternion = instancedMesh.rotationQuaternion.clone();
|
|
17
|
+
}
|
|
14
18
|
// also sync the enabled state from the original instanced mesh
|
|
15
19
|
newMesh.setEnabled(instancedMesh.isEnabled(false));
|
|
16
20
|
return newMesh;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometryHelper.js","sourceRoot":"","sources":["../../../../src/api/util/geometryHelper.ts"],"names":[],"mappings":";;;AAAA,2DAA8D;AAC9D,mEAA4D;AAS5D,MAAM,2BAA2B,GAAG,
|
|
1
|
+
{"version":3,"file":"geometryHelper.js","sourceRoot":"","sources":["../../../../src/api/util/geometryHelper.ts"],"names":[],"mappings":"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"}
|