清理代码,对图元刷新的函数集成到Entity类里面.

对实体的全部撤销进行修改,使用id绑定而不是实体,避免用例 <创建 修改 撤销撤销  重做重做  撤销  重做>无法通过.
pull/7/head
ChenX 7 years ago
parent 5947b82c26
commit 8434c9d576

@ -429,6 +429,7 @@ export class CreateObjectData extends CADObject
getObject(db: Database): CADObject getObject(db: Database): CADObject
{ {
this.cadFile.Reset();
let obj = this.cadFile.ReadObject(db); let obj = this.cadFile.ReadObject(db);
this.cadFile.Reset(); this.cadFile.Reset();
return obj; return obj;
@ -770,12 +771,10 @@ export class HistorycRecord extends CADObject
export class ObjectAllDataHistoryRecord extends HistorycRecord export class ObjectAllDataHistoryRecord extends HistorycRecord
{ {
objId: ObjectId; objId: ObjectId;
file: CADFile;
constructor(id?: ObjectId) constructor(id?: ObjectId)
{ {
super(); super();
this.objId = id; this.objId = id;
this.file = new CADFile();
} }
//将数据写入 手动调用 //将数据写入 手动调用
@ -1007,7 +1006,23 @@ export class Entity extends CADObject
return this.m_DrawEntity.get(renderType); return this.m_DrawEntity.get(renderType);
} }
} }
Update()
{
}
GoodBye()
{
for (let [, obj] of this.m_DrawEntity)
{
let geo = obj['Geometry']
if (geo && geo instanceof THREE.Geometry)
{
geo.dispose();
}
obj.parent.remove(obj);
}
}
Erase(isErase: boolean = true) Erase(isErase: boolean = true)
{ {
super.Erase(isErase); super.Erase(isErase);
@ -1028,6 +1043,15 @@ export class Entity extends CADObject
{ {
} }
//#region -------------------------File-------------------------
//局部撤销
ApplyPartialUndo(undoData: CADObject)
{
super.ApplyPartialUndo(undoData);
this.Update();
}
//#endregion
} }
//直线对象 //直线对象
@ -1036,11 +1060,11 @@ export class Line extends Entity
{ {
private startPoint: Vector3; private startPoint: Vector3;
private endPoint: Vector3; private endPoint: Vector3;
constructor() constructor(sp?: Vector3, ep?: Vector3)
{ {
super(); super();
this.startPoint = new Vector3(0, 0, 0); this.startPoint = sp || new Vector3(0, 0, 0);
this.endPoint = new Vector3(0, 0, 0); this.endPoint = ep || new Vector3(0, 0, 0);
} }
Draw(renderType: RenderType): Object3D Draw(renderType: RenderType): Object3D
@ -1055,19 +1079,7 @@ export class Line extends Entity
obj.userData = this; obj.userData = this;
return obj; return obj;
} }
GoodBye()
{
for (let [, obj] of this.m_DrawEntity)
{
let geo = obj['Geometry']
if (geo && geo instanceof THREE.Geometry)
{
geo.dispose();
}
obj.parent.remove(obj);
}
}
Update() Update()
{ {
for (let [, obj] of this.m_DrawEntity) for (let [, obj] of this.m_DrawEntity)
@ -1083,7 +1095,6 @@ export class Line extends Entity
} }
} }
GetStretchPoints(): Array<THREE.Vector3> GetStretchPoints(): Array<THREE.Vector3>
{ {
return [this.StartPoint, this.EndPoint] return [this.StartPoint, this.EndPoint]
@ -1119,11 +1130,6 @@ export class Line extends Entity
file.Write(this.startPoint.toArray()); file.Write(this.startPoint.toArray());
file.Write(this.endPoint.toArray()); file.Write(this.endPoint.toArray());
} }
ApplyPartialUndo(data)
{
super.ApplyPartialUndo(data);
this.Update();
}
//#endregion-----------------------------File End----------------------------- //#endregion-----------------------------File End-----------------------------
//#region 属性 //#region 属性

Loading…
Cancel
Save