修改OWner工作方式,修改材质球名称时,材质球表也同时更新.

pull/254/head
ChenX 6 years ago
parent 120fb04b6d
commit a277cecbee

@ -9,6 +9,12 @@ import { ObjectId } from './ObjectId';
export abstract class CADObject
{
protected m_Owner: ObjectId;
set Owner(owner: ObjectId)
{
this.m_Owner = owner;
}
//对象被彻底遗弃
GoodBye(): any
{
@ -92,13 +98,16 @@ export abstract class CADObject
id.Object = this;
}
this._isErase = file.Read();
if (ver > 1)
this.m_Owner = file.ReadObjectId();
}
//对象将自身数据写入到文件.
WriteFile(file: CADFiler)
{
file.Write(1);
file.Write(2);
file.WriteObjectId(this.objectId);
file.Write(this._isErase);
file.WriteObjectId(this.m_Owner);
}
//局部撤销
ApplyPartialUndo(undoData: ISerialize)

@ -30,13 +30,6 @@ export class Entity extends CADObject
//自身坐标系
protected m_Matrix = new Matrix4();
protected m_Owner: ObjectId;//BlockTableRecord
set Owner(owner: ObjectId)
{
this.m_Owner = owner;
}
/**
* AutoUpdatefalse,.
* 便.
@ -413,19 +406,17 @@ export class Entity extends CADObject
this.materialId = file.ReadObjectId();
this.m_Matrix.fromArray(file.Read());
if (ver > 1)
if (ver === 2)
this.m_Owner = file.ReadObjectId();
}
//对象将自身数据写入到文件.
WriteFile(file: CADFiler)
{
file.Write(2);
file.Write(3);
super.WriteFile(file);
file.Write(this.m_Color);
file.WriteObjectId(this.materialId);
file.Write(this.m_Matrix.toArray());
file.WriteObjectId(this.m_Owner);
}
//局部撤销
ApplyPartialUndo(undoData: CADObject)

@ -21,6 +21,8 @@ export class SymbolTable extends CADObject
if (this._db && !record.Id)
record.SetOwnerDatabase(this._db);
record.Owner = this.objectId;
this.Symbols.set(record.Name, record);
return Status.True;
}
@ -56,6 +58,13 @@ export class SymbolTable extends CADObject
}
}
ChangeRecordName(record: SymbolTableRecord, newName: string): boolean
{
if (this.Has(newName)) return false;
this.Symbols.delete(record.Name);
this.Symbols.set(newName, record);
}
//#region -------------------------File-------------------------
ReadFile(file: CADFiler)
{

@ -1,5 +1,6 @@
import { CADObject } from "./CADObject";
import { CADFiler } from "./CADFiler";
import { SymbolTable } from "./SymbolTable";
export class SymbolTableRecord extends CADObject
{
@ -10,6 +11,12 @@ export class SymbolTableRecord extends CADObject
}
set Name(name: string)
{
this.WriteAllObjectRecord();
if (this.m_Owner)
{
let symbolTable = this.m_Owner.Object as SymbolTable;
symbolTable.ChangeRecordName(this, name);
}
this.name = name;
}

Loading…
Cancel
Save