|
|
|
@ -211,8 +211,9 @@ export class CADObject
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//对象从文件中读取数据,初始化自身
|
|
|
|
|
FileIn(file: CADFile)
|
|
|
|
|
FileRead(file: CADFile)
|
|
|
|
|
{
|
|
|
|
|
let ver = file.Read();
|
|
|
|
|
//write Id;
|
|
|
|
|
this.objectId = this.ReadObjectId(file);
|
|
|
|
|
if (this.objectId)
|
|
|
|
@ -221,8 +222,9 @@ export class CADObject
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//对象将自身数据写入到文件.
|
|
|
|
|
FileOut(file: CADFile)
|
|
|
|
|
FileWrite(file: CADFile)
|
|
|
|
|
{
|
|
|
|
|
file.Write(1);
|
|
|
|
|
this.WriteObjectId(file)
|
|
|
|
|
}
|
|
|
|
|
ObjectIn(obj: any)
|
|
|
|
@ -324,6 +326,21 @@ export class CADFile
|
|
|
|
|
private readIndex: number = 0;
|
|
|
|
|
private dataList: any[] = [];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Destroy()
|
|
|
|
|
{
|
|
|
|
|
delete this.dataList;
|
|
|
|
|
delete this.readIndex;
|
|
|
|
|
}
|
|
|
|
|
get Data()
|
|
|
|
|
{
|
|
|
|
|
return this.dataList;
|
|
|
|
|
}
|
|
|
|
|
set Data(v)
|
|
|
|
|
{
|
|
|
|
|
this.dataList = v;
|
|
|
|
|
this.Reset();
|
|
|
|
|
}
|
|
|
|
|
Reset()
|
|
|
|
|
{
|
|
|
|
|
this.readIndex = 0;
|
|
|
|
@ -340,15 +357,23 @@ export class CADFile
|
|
|
|
|
}
|
|
|
|
|
WriteObject(obj: CADObject)
|
|
|
|
|
{
|
|
|
|
|
this.WriteString(obj.ClassName);
|
|
|
|
|
obj.FileOut(this);
|
|
|
|
|
let tempFile = new CADFile();
|
|
|
|
|
tempFile.WriteString(obj.ClassName);
|
|
|
|
|
obj.FileWrite(tempFile);
|
|
|
|
|
this.Write(tempFile.Data);
|
|
|
|
|
tempFile.Destroy();//GC
|
|
|
|
|
}
|
|
|
|
|
ReadObject(db: Database): CADObject
|
|
|
|
|
ReadObject(db: Database, obj?: CADObject): CADObject
|
|
|
|
|
{
|
|
|
|
|
let className = this.ReadString();
|
|
|
|
|
let obj = CADFactory.CreateObject(className);
|
|
|
|
|
let data = this.Read();
|
|
|
|
|
let tempFile = new CADFile();
|
|
|
|
|
tempFile.Data = data;
|
|
|
|
|
|
|
|
|
|
let className = tempFile.ReadString();
|
|
|
|
|
obj = obj ? obj : CADFactory.CreateObject(className);
|
|
|
|
|
obj.SetDefaultDb(db);
|
|
|
|
|
obj.FileIn(this);
|
|
|
|
|
obj.FileRead(tempFile);
|
|
|
|
|
tempFile.Destroy();
|
|
|
|
|
return obj;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -393,10 +418,10 @@ export class AppendData extends CADObject
|
|
|
|
|
return "AppendData";
|
|
|
|
|
}
|
|
|
|
|
//对象从文件中读取数据,初始化自身
|
|
|
|
|
FileIn(file: CADFile)
|
|
|
|
|
FileRead(file: CADFile)
|
|
|
|
|
{ }
|
|
|
|
|
//对象将自身数据写入到文件.
|
|
|
|
|
FileOut(file: CADFile)
|
|
|
|
|
FileWrite(file: CADFile)
|
|
|
|
|
{ }
|
|
|
|
|
//局部撤销
|
|
|
|
|
ApplyPartialUndo(file: CADObject)
|
|
|
|
@ -424,10 +449,10 @@ export class RemoveData extends CADObject
|
|
|
|
|
return "RemoveData";
|
|
|
|
|
}
|
|
|
|
|
//对象从文件中读取数据,初始化自身
|
|
|
|
|
FileIn(file: CADFile)
|
|
|
|
|
FileRead(file: CADFile)
|
|
|
|
|
{ }
|
|
|
|
|
//对象将自身数据写入到文件.
|
|
|
|
|
FileOut(file: CADFile)
|
|
|
|
|
FileWrite(file: CADFile)
|
|
|
|
|
{ }
|
|
|
|
|
//局部撤销
|
|
|
|
|
ApplyPartialUndo(file: CADObject)
|
|
|
|
@ -493,9 +518,9 @@ export class ObjectCollection<T> extends CADObject
|
|
|
|
|
return "ObjectCollection";
|
|
|
|
|
}
|
|
|
|
|
//对象从文件中读取数据,初始化自身
|
|
|
|
|
FileIn(file: CADFile)
|
|
|
|
|
FileRead(file: CADFile)
|
|
|
|
|
{
|
|
|
|
|
super.FileIn(file);
|
|
|
|
|
super.FileRead(file);
|
|
|
|
|
let cout = file.Read();
|
|
|
|
|
this.objectCol = [];
|
|
|
|
|
for (let i = 0; i < cout; i++)
|
|
|
|
@ -505,9 +530,9 @@ export class ObjectCollection<T> extends CADObject
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//对象将自身数据写入到文件.
|
|
|
|
|
FileOut(file: CADFile)
|
|
|
|
|
FileWrite(file: CADFile)
|
|
|
|
|
{
|
|
|
|
|
super.FileOut(file);
|
|
|
|
|
super.FileWrite(file);
|
|
|
|
|
file.Write(this.objectCol.length);
|
|
|
|
|
for (let obj of this.objectCol)
|
|
|
|
|
{
|
|
|
|
@ -686,19 +711,17 @@ export class Database
|
|
|
|
|
this.hm.SetDefaultDb(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FileOut(): CADFile
|
|
|
|
|
FileWrite(): CADFile
|
|
|
|
|
{
|
|
|
|
|
let file = new CADFile();
|
|
|
|
|
file.Write(1);//ver;
|
|
|
|
|
file.Write(this.idCout);
|
|
|
|
|
this.ModelSpace.FileOut(file);
|
|
|
|
|
file.WriteObject(this.ModelSpace);
|
|
|
|
|
return file;
|
|
|
|
|
}
|
|
|
|
|
FileIn(file: CADFile)
|
|
|
|
|
FileRead(file: CADFile)
|
|
|
|
|
{
|
|
|
|
|
let ver = file.Read();
|
|
|
|
|
this.idCout = file.Read();
|
|
|
|
|
this.ModelSpace.FileIn(file);
|
|
|
|
|
file.ReadObject(this, this.ModelSpace);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -769,14 +792,14 @@ export class BlockTableRecord extends ObjectCollection<Entity>
|
|
|
|
|
return "BlockTableRecord";
|
|
|
|
|
}
|
|
|
|
|
//对象从文件中读取数据,初始化自身
|
|
|
|
|
FileIn(file: CADFile)
|
|
|
|
|
FileRead(file: CADFile)
|
|
|
|
|
{
|
|
|
|
|
super.FileIn(file);
|
|
|
|
|
super.FileRead(file);
|
|
|
|
|
}
|
|
|
|
|
//对象将自身数据写入到文件.
|
|
|
|
|
FileOut(file: CADFile)
|
|
|
|
|
FileWrite(file: CADFile)
|
|
|
|
|
{
|
|
|
|
|
super.FileOut(file);
|
|
|
|
|
super.FileWrite(file);
|
|
|
|
|
}
|
|
|
|
|
//局部撤销
|
|
|
|
|
ApplyPartialUndo(file: CADObject)
|
|
|
|
@ -812,17 +835,17 @@ export class Line extends Entity
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//对象从文件中读取数据,初始化自身
|
|
|
|
|
FileIn(file: CADFile)
|
|
|
|
|
FileRead(file: CADFile)
|
|
|
|
|
{
|
|
|
|
|
super.FileIn(file);
|
|
|
|
|
super.FileRead(file);
|
|
|
|
|
let ver = file.Read();//1
|
|
|
|
|
this.startPoint.fromArray(file.Read());
|
|
|
|
|
this.endPoint.fromArray(file.Read());
|
|
|
|
|
}
|
|
|
|
|
//对象将自身数据写入到文件.
|
|
|
|
|
FileOut(file: CADFile)
|
|
|
|
|
FileWrite(file: CADFile)
|
|
|
|
|
{
|
|
|
|
|
super.FileOut(file);
|
|
|
|
|
super.FileWrite(file);
|
|
|
|
|
file.Write(1);//ver
|
|
|
|
|
file.Write(this.startPoint.toArray());
|
|
|
|
|
file.Write(this.endPoint.toArray());
|
|
|
|
|