|
|
@ -1,4 +1,4 @@
|
|
|
|
import * as THREE from "three"
|
|
|
|
import * as THREE from 'three';
|
|
|
|
import { OBB } from '../Geometry/OBB/obb';
|
|
|
|
import { OBB } from '../Geometry/OBB/obb';
|
|
|
|
import { Database } from './Database';
|
|
|
|
import { Database } from './Database';
|
|
|
|
import { Vector3 } from 'three';
|
|
|
|
import { Vector3 } from 'three';
|
|
|
@ -181,6 +181,7 @@ export class Line extends Curve
|
|
|
|
sp.copy(this.getData().StartPoint);
|
|
|
|
sp.copy(this.getData().StartPoint);
|
|
|
|
ep.copy(this.getData().EndPoint);
|
|
|
|
ep.copy(this.getData().EndPoint);
|
|
|
|
geometry.verticesNeedUpdate = true;
|
|
|
|
geometry.verticesNeedUpdate = true;
|
|
|
|
|
|
|
|
geometry.computeBoundingSphere();
|
|
|
|
})
|
|
|
|
})
|
|
|
|
return threeObject;
|
|
|
|
return threeObject;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -212,6 +213,75 @@ export class Line extends Curve
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export class Circle extends Curve
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
m_Radius: number;
|
|
|
|
|
|
|
|
m_Center: THREE.Vector3;
|
|
|
|
|
|
|
|
constructor(center: THREE.Vector3, radius: number)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
super();
|
|
|
|
|
|
|
|
this.m_Center = center;
|
|
|
|
|
|
|
|
this.m_Radius = radius;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
set Center(v: THREE.Vector3)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
this.m_Center.copy(v);
|
|
|
|
|
|
|
|
this.m_DrawEntity.forEach(obj =>
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
let curve = new THREE.EllipseCurve(
|
|
|
|
|
|
|
|
this.m_Center.x, this.m_Center.y, // ax, aY
|
|
|
|
|
|
|
|
this.m_Radius, this.m_Radius, // xRadius, yRadius
|
|
|
|
|
|
|
|
0, 2 * Math.PI, // aStartAngle, aEndAngle
|
|
|
|
|
|
|
|
false, // aClockwise
|
|
|
|
|
|
|
|
0 // aRotation
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let path = new THREE.Path(curve.getPoints(50));
|
|
|
|
|
|
|
|
let geometry = path.createPointsGeometry(50);
|
|
|
|
|
|
|
|
(<THREE.Line>obj).geometry = geometry;
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
set Radius(r: number)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
this.m_Radius = r;
|
|
|
|
|
|
|
|
this.m_DrawEntity.forEach(obj =>
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
let curve = new THREE.EllipseCurve(
|
|
|
|
|
|
|
|
this.m_Center.x, this.m_Center.y, // ax, aY
|
|
|
|
|
|
|
|
this.m_Radius, this.m_Radius, // xRadius, yRadius
|
|
|
|
|
|
|
|
0, 2 * Math.PI, // aStartAngle, aEndAngle
|
|
|
|
|
|
|
|
false, // aClockwise
|
|
|
|
|
|
|
|
0 // aRotation
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let path = new THREE.Path(curve.getPoints(50));
|
|
|
|
|
|
|
|
let geometry = path.createPointsGeometry(50);
|
|
|
|
|
|
|
|
(<THREE.Line>obj).geometry = geometry;
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Draw(renderType: RenderType = RenderType.Wireframe): THREE.Object3D
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
let curve = new THREE.EllipseCurve(
|
|
|
|
|
|
|
|
this.m_Center.x, this.m_Center.y, // ax, aY
|
|
|
|
|
|
|
|
this.m_Radius, this.m_Radius, // xRadius, yRadius
|
|
|
|
|
|
|
|
0, 2 * Math.PI, // aStartAngle, aEndAngle
|
|
|
|
|
|
|
|
false, // aClockwise
|
|
|
|
|
|
|
|
0 // aRotation
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let path = new THREE.Path(curve.getPoints(50));
|
|
|
|
|
|
|
|
let geometry = path.createPointsGeometry(50);
|
|
|
|
|
|
|
|
var material = new THREE.LineBasicMaterial({ color: 0xff0000 });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Create the final object to add to the scene
|
|
|
|
|
|
|
|
var ellipse = new THREE.Line(geometry, material);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.m_DrawEntity.set(renderType, ellipse);
|
|
|
|
|
|
|
|
return ellipse;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export class Solid3d extends Entity
|
|
|
|
export class Solid3d extends Entity
|
|
|
|
{
|
|
|
|
{
|
|
|
|
constructor(len: number, wid: number, hei: number)
|
|
|
|
constructor(len: number, wid: number, hei: number)
|
|
|
@ -245,4 +315,3 @@ export class Point extends Entity
|
|
|
|
super()
|
|
|
|
super()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|