|
|
@ -14,13 +14,13 @@ import { Curve } from './Curve';
|
|
|
|
@Factory
|
|
|
|
@Factory
|
|
|
|
export class Line extends Curve
|
|
|
|
export class Line extends Curve
|
|
|
|
{
|
|
|
|
{
|
|
|
|
private startPoint: Vector3;
|
|
|
|
private m_StartPoint: Vector3;
|
|
|
|
private endPoint: Vector3;
|
|
|
|
private m_EndPoint: Vector3;
|
|
|
|
constructor(sp?: Vector3, ep?: Vector3)
|
|
|
|
constructor(sp?: Vector3, ep?: Vector3)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
super();
|
|
|
|
super();
|
|
|
|
this.startPoint = sp || new Vector3(0, 0, 0);
|
|
|
|
this.m_StartPoint = sp || new Vector3(0, 0, 0);
|
|
|
|
this.endPoint = ep || new Vector3(0, 0, 0);
|
|
|
|
this.m_EndPoint = ep || new Vector3(0, 0, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Draw(renderType: RenderType): Object3D
|
|
|
|
Draw(renderType: RenderType): Object3D
|
|
|
@ -47,8 +47,8 @@ export class Line extends Curve
|
|
|
|
|
|
|
|
|
|
|
|
let geo = lineObj.geometry as THREE.Geometry;
|
|
|
|
let geo = lineObj.geometry as THREE.Geometry;
|
|
|
|
|
|
|
|
|
|
|
|
geo.vertices[0].copy(this.startPoint);
|
|
|
|
geo.vertices[0].copy(this.m_StartPoint);
|
|
|
|
geo.vertices[1].copy(this.endPoint);
|
|
|
|
geo.vertices[1].copy(this.m_EndPoint);
|
|
|
|
|
|
|
|
|
|
|
|
geo.computeBoundingSphere();//必须调用该函数,使得实体可以被选中.
|
|
|
|
geo.computeBoundingSphere();//必须调用该函数,使得实体可以被选中.
|
|
|
|
|
|
|
|
|
|
|
@ -83,8 +83,8 @@ export class Line extends Curve
|
|
|
|
|
|
|
|
|
|
|
|
ApplyMatrix(m: Matrix4)
|
|
|
|
ApplyMatrix(m: Matrix4)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
this.startPoint.applyMatrix4(m);
|
|
|
|
this.m_StartPoint.applyMatrix4(m);
|
|
|
|
this.endPoint.applyMatrix4(m);
|
|
|
|
this.m_EndPoint.applyMatrix4(m);
|
|
|
|
this.Update();
|
|
|
|
this.Update();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -112,7 +112,7 @@ export class Line extends Curve
|
|
|
|
let len = this.Length;
|
|
|
|
let len = this.Length;
|
|
|
|
if (len == 0)
|
|
|
|
if (len == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (equal(this.startPoint, pt))
|
|
|
|
if (equal(this.m_StartPoint, pt))
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
|
else
|
|
|
|
else
|
|
|
|
return NaN;
|
|
|
|
return NaN;
|
|
|
@ -218,6 +218,12 @@ export class Line extends Curve
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Reverse()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
this.WriteAllObjectRecord();
|
|
|
|
|
|
|
|
[this.m_StartPoint, this.m_EndPoint] = [this.m_EndPoint, this.m_StartPoint];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GetOffsetCurves(offsetDist: number): Array<Curve>
|
|
|
|
GetOffsetCurves(offsetDist: number): Array<Curve>
|
|
|
|
{
|
|
|
|
{
|
|
|
|
let an = this.GetFistDerivAngle(0) - Math.PI * 0.5;
|
|
|
|
let an = this.GetFistDerivAngle(0) - Math.PI * 0.5;
|
|
|
@ -236,7 +242,7 @@ export class Line extends Curve
|
|
|
|
return 1;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//属性
|
|
|
|
//属性
|
|
|
|
get Length(): number { return this.startPoint.distanceTo(this.endPoint); }
|
|
|
|
get Length(): number { return this.m_StartPoint.distanceTo(this.m_EndPoint); }
|
|
|
|
|
|
|
|
|
|
|
|
//#region -----------------------------File-----------------------------
|
|
|
|
//#region -----------------------------File-----------------------------
|
|
|
|
//对象应该实现dataIn和DataOut的方法,为了对象的序列化和反序列化
|
|
|
|
//对象应该实现dataIn和DataOut的方法,为了对象的序列化和反序列化
|
|
|
@ -246,16 +252,16 @@ export class Line extends Curve
|
|
|
|
{
|
|
|
|
{
|
|
|
|
super.ReadFile(file);
|
|
|
|
super.ReadFile(file);
|
|
|
|
let ver = file.Read();//1
|
|
|
|
let ver = file.Read();//1
|
|
|
|
this.startPoint.fromArray(file.Read());
|
|
|
|
this.m_StartPoint.fromArray(file.Read());
|
|
|
|
this.endPoint.fromArray(file.Read());
|
|
|
|
this.m_EndPoint.fromArray(file.Read());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//对象将自身数据写入到文件.
|
|
|
|
//对象将自身数据写入到文件.
|
|
|
|
WriteFile(file: CADFile)
|
|
|
|
WriteFile(file: CADFile)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
super.WriteFile(file);
|
|
|
|
super.WriteFile(file);
|
|
|
|
file.Write(1);//ver
|
|
|
|
file.Write(1);//ver
|
|
|
|
file.Write(this.startPoint.toArray());
|
|
|
|
file.Write(this.m_StartPoint.toArray());
|
|
|
|
file.Write(this.endPoint.toArray());
|
|
|
|
file.Write(this.m_EndPoint.toArray());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//#endregion-----------------------------File End-----------------------------
|
|
|
|
//#endregion-----------------------------File End-----------------------------
|
|
|
|
|
|
|
|
|
|
|
@ -263,23 +269,23 @@ export class Line extends Curve
|
|
|
|
set StartPoint(v: Vector3)
|
|
|
|
set StartPoint(v: Vector3)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
this.WriteAllObjectRecord();
|
|
|
|
this.WriteAllObjectRecord();
|
|
|
|
this.startPoint.copy(v);
|
|
|
|
this.m_StartPoint.copy(v);
|
|
|
|
|
|
|
|
|
|
|
|
this.Update();
|
|
|
|
this.Update();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
get StartPoint(): Vector3
|
|
|
|
get StartPoint(): Vector3
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return this.startPoint.clone();
|
|
|
|
return this.m_StartPoint.clone();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
get EndPoint(): Vector3
|
|
|
|
get EndPoint(): Vector3
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return this.endPoint.clone();
|
|
|
|
return this.m_EndPoint.clone();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
set EndPoint(v: Vector3)
|
|
|
|
set EndPoint(v: Vector3)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
this.WriteAllObjectRecord();
|
|
|
|
this.WriteAllObjectRecord();
|
|
|
|
this.endPoint.copy(v);
|
|
|
|
this.m_EndPoint.copy(v);
|
|
|
|
this.Update();
|
|
|
|
this.Update();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|