|
|
|
@ -1,5 +1,9 @@
|
|
|
|
|
import { Geometry, Object3D, Vector3 } from 'three';
|
|
|
|
|
import * as THREE from 'three';
|
|
|
|
|
|
|
|
|
|
import { ArrayRemove } from '../../src/Common/Utils';
|
|
|
|
|
import { Vector3, Line3 } from 'three';
|
|
|
|
|
import { RenderType } from '../GraphicsSystem/Enum';
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
关于webCAD 文件系统的原型.
|
|
|
|
|
包括了对象的保存,撤销,还原.
|
|
|
|
@ -1000,6 +1004,15 @@ export class BlockTableRecord extends ObjectCollection<Entity>
|
|
|
|
|
@Factory
|
|
|
|
|
export class Entity extends CADObject
|
|
|
|
|
{
|
|
|
|
|
protected m_DrawEntity = new Map<RenderType, Object3D>();
|
|
|
|
|
//绘制一个threeJs对象.
|
|
|
|
|
Draw(renderType: RenderType = RenderType.Wireframe): Object3D
|
|
|
|
|
{
|
|
|
|
|
if (this.m_DrawEntity && this.m_DrawEntity.has(renderType))
|
|
|
|
|
{
|
|
|
|
|
return this.m_DrawEntity.get(renderType);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//直线对象
|
|
|
|
@ -1015,7 +1028,19 @@ export class Line extends Entity
|
|
|
|
|
this.endPoint = new Vector3(0, 0, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//-----------------------------File-----------------------------
|
|
|
|
|
Draw(renderType: RenderType): Object3D
|
|
|
|
|
{
|
|
|
|
|
let obj = super.Draw(renderType);
|
|
|
|
|
if (obj) return obj;
|
|
|
|
|
|
|
|
|
|
let geo = new Geometry();
|
|
|
|
|
geo.vertices.push(this.StartPoint, this.EndPoint);
|
|
|
|
|
obj = new THREE.Line(geo);
|
|
|
|
|
this.m_DrawEntity.set(renderType, obj);
|
|
|
|
|
return obj;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//#region -----------------------------File-----------------------------
|
|
|
|
|
//对象应该实现dataIn和DataOut的方法,为了对象的序列化和反序列化
|
|
|
|
|
|
|
|
|
|
//对象从文件中读取数据,初始化自身
|
|
|
|
@ -1038,9 +1063,9 @@ export class Line extends Entity
|
|
|
|
|
{
|
|
|
|
|
super.ApplyPartialUndo(data);
|
|
|
|
|
}
|
|
|
|
|
//-----------------------------File End-----------------------------
|
|
|
|
|
|
|
|
|
|
//#endregion-----------------------------File End-----------------------------
|
|
|
|
|
|
|
|
|
|
//#region 属性
|
|
|
|
|
set StartPoint(v: Vector3)
|
|
|
|
|
{
|
|
|
|
|
this.WriteAllObjectRecord();
|
|
|
|
@ -1061,4 +1086,5 @@ export class Line extends Entity
|
|
|
|
|
this.endPoint.copy(v);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//#endregion
|
|
|
|
|
}
|
|
|
|
|