功能:引用实体支持修改材质

pull/1943/MERGE
ChenX 2 years ago
parent f095ebc5d0
commit 81ca25bf8a

@ -11,6 +11,7 @@ import { RenderType } from "../../GraphicsSystem/RenderType";
import { IndexedDbStore, StoreName } from "../../IndexedDb/IndexedDbStore";
import { Factory } from "../CADFactory";
import { CADFiler } from "../CADFiler";
import { ObjectId } from "../ObjectId";
import { GetBoxGeoBufferGeometry } from "./BoxSolid";
import { Entity } from "./Entity";
import { GenUVForWorld } from "./GenUVForWorld";
@ -29,6 +30,8 @@ export class EntityRef extends Entity
private _ScaleSize = new Vector3;//缩放后的尺寸
private _Center = new Vector3;//盒子中心
private _OverWriteMaterial = new Map<number, ObjectId>();//section index -> materialId
// `/Data/ASSETS/DXAA_0001`
constructor(private _url?: string)
{
@ -383,14 +386,27 @@ export class EntityRef extends Entity
this._ScaleSize.y = file.Read();
this._ScaleSize.z = file.Read();
}
this._OverWriteMaterial.clear();
if (ver > 2)
{
let size = file.Read();
for (let i = 0; i < size; i++)
{
let index = file.Read();
let id = file.ReadHardObjectId();
this._OverWriteMaterial.set(index, id);
}
}
}
//对象将自身数据写入到文件.
WriteFile(file: CADFiler)
{
file.Write(2);
file.Write(3);
super.WriteFile(file);
file.Write(this._url);
//2
file.Write(this._Size.x);
file.Write(this._Size.y);
file.Write(this._Size.z);
@ -402,6 +418,14 @@ export class EntityRef extends Entity
file.Write(this._ScaleSize.x);
file.Write(this._ScaleSize.y);
file.Write(this._ScaleSize.z);
//ver3
file.Write(this._OverWriteMaterial.size);
for (let [index, id] of this._OverWriteMaterial)
{
file.Write(index);
file.WriteHardObjectId(id);
}
}
//#endregion
}

Loading…
Cancel
Save