加入Json导出

pull/7/head
cx 7 years ago
parent f4487c69b2
commit bf0bdf048c

@ -77,13 +77,13 @@ test('xxx', () =>
(id1.Object as Line).EndPoint = new Vector3(2, 2, 2);
let file = db.FileOut();
console.log(file.ToString());
});
console.log(JSON.stringify(db.ObjectOut()));
});
CADFactory.RegisterObject(Line);
let l = CADFactory.CreateObject("Line");
console.log(l);
l.ClassName //?

@ -123,6 +123,20 @@ export class CADFactory
if (createF)
return createF();
}
static ReadObject(data: any, db: Database): CADObject
{
if (data.className)
{
let obj = this.CreateObject(data.className);
if (obj)
{
obj.SetDefaultDb(db);
obj.ObjectIn(data);
return obj
}
}
}
}
//所有cad对象的基类
@ -211,6 +225,17 @@ export class CADObject
{
this.WriteObjectId(file)
}
ObjectIn(obj: any)
{
this.objectId = ObjectId.Create(this._db, obj.id);
}
ObjectOut(): Object
{
return {
className: this.ClassName,
id: this.Id.Index
};
}
//局部撤销
ApplyPartialUndo(file: CADObject)
{
@ -271,7 +296,7 @@ export class ObjectId
static Create(db: Database, index: number): ObjectId
{
let id = db.GetObjectId(index);
if (!id)
if (!id && index >= 0)
{
id = new ObjectId(index);
db.SetObjectId(index, id);
@ -489,6 +514,19 @@ export class ObjectCollection<T> extends CADObject
file.WriteObject(obj);
}
}
ObjectIn(obj: any)
{
super.ObjectIn(obj);
let objList: Object[] = obj.objectCol;
this.objectCol = objList.map(o => CADFactory.ReadObject(o, this._db));
}
ObjectOut(): Object
{
let obj = super.ObjectOut() as any;
obj.objectCol = this.objectCol.map(o => o.ObjectOut());
return obj;
}
//局部撤销
ApplyPartialUndo(undoData: CADObject)
{
@ -662,6 +700,19 @@ export class Database
this.idCout = file.Read();
this.ModelSpace.FileIn(file);
}
ObjectIn(obj: any)
{
}
ObjectOut(): Object
{
return {
idCout: this.idCout,
ms: this.ModelSpace.ObjectOut(),
}
}
//创建一个id,自动递增它的索引号,并且会自动加入到db的id列表中.
AllocateId(obj: CADObject): ObjectId
{
@ -776,6 +827,18 @@ export class Line extends Entity
file.Write(this.startPoint.toArray());
file.Write(this.endPoint.toArray());
}
ObjectIn(obj: any)
{
}
ObjectOut(): Object
{
let obj = super.ObjectOut() as any;
obj.sp = this.startPoint.toArray();
obj.ep = this.endPoint.toArray();
return obj
}
ApplyPartialUndo(data)
{
}

Loading…
Cancel
Save