You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
WebCAD/__test__/Draw.ts

61 lines
1.3 KiB

import * as THREE from 'three';
import { Vector3 } from 'three';
//绘制线
function DrawLine(sp: THREE.Vector3, ep: THREE.Vector3): THREE.Object3D
{
//创建几何体
var geometry = new THREE.Geometry();
geometry.vertices.push(sp.clone());
geometry.vertices.push(ep.clone());
//创建材质
var material = new THREE.LineBasicMaterial();
let threeObject: THREE.Object3D = new THREE.Line(geometry, material);
return threeObject;
}
function SetLinePoint(line: THREE.Object3D, pt: THREE.Vector3)
{
let l: THREE.Line = <THREE.Line>line;
let geo: THREE.Geometry = <THREE.Geometry>l.geometry;
geo.vertices[0].set(pt.x, pt.y, pt.z);
geo.verticesNeedUpdate = true;
}
/**
*
*
* @param {THREE.Object3D} ent
* @param {boolean} isSet
*/
function SetIsSelect(ent: THREE.Object3D, isSet: boolean)
{
var baseColor = 0x333333;
var foundColor = 0x12C0E3;
var intersectColor = 0x00D66B;
let mesh = <THREE.Mesh>ent;
let material = <THREE.MeshBasicMaterial>mesh.material;
if (isSet)
{
material.color.setHex(intersectColor);
}
else
{
material.color.setHex(baseColor);
}
}
function CreateBox(l: number, w: number, h: number)
{
var geometry = new THREE.BoxGeometry(l, w, h);
}