修复材质导出问题,添加库打包模式

This commit is contained in:
2025-04-15 09:35:54 +08:00
parent 0929d5b80c
commit cfbfda520d
11 changed files with 26706 additions and 116 deletions

View File

@@ -1,9 +1,22 @@
import { CADFiler, Database, DuplicateRecordCloning, PhysicalMaterialRecord } from "webcad_ue4_api";
import { CADFactory, CADFiler, CADObject, Database, DuplicateRecordCloning, ObjectId, PhysicalMaterialRecord } from "webcad_ue4_api";
// TODO: Danger: 注意入侵性代码
// 疑似是WebCAD中的漏洞当传入new Database()时,
// Database中的filer.ReadObject方法并不会为CadObject.objectId赋值
// 导致后续的CadObject.Id.Index发生空指针异常
// 因此需要修改CAD中的Database.AllocationObjectId尝试手动赋值
// @ts-ignore
Database.prototype.AllocationObjectId = function (this: Database, object: CADObject) {
if (object.Id === undefined) object.objectId = new ObjectId(undefined, undefined);
// @ts-ignore
object.Id.Index = this.idIndex++;
// @ts-ignore
this.idMap.set(object.Id.Index, object.Id);
}
export function MaterialOut(material: PhysicalMaterialRecord): string
{
let db = new Database();
debugger;
db.WblockCloneObejcts(
[material],
db.MaterialTable,