25 lines
993 B
TypeScript
25 lines
993 B
TypeScript
import * as THREE from "three";
|
|
import * as CONSTANTS from '../../../../types/world/worldConstants';
|
|
import * as Types from "../../../../types/world/worldTypes";
|
|
|
|
function addLineToScene(
|
|
start: Types.Vector3,
|
|
end: Types.Vector3,
|
|
colour: Types.Color,
|
|
userData: Types.UserData,
|
|
floorPlanGroupLine: Types.RefGroup
|
|
): void {
|
|
|
|
////////// A function that creates and adds lines based on the start, end, and colour from the params, Also adds the userData in the mesh userData //////////
|
|
|
|
const path = new THREE.CatmullRomCurve3([start, end]);
|
|
const geometry = new THREE.TubeGeometry(path, CONSTANTS.lineConfig.tubularSegments, CONSTANTS.lineConfig.radius, CONSTANTS.lineConfig.radialSegments, false);
|
|
const material = new THREE.MeshBasicMaterial({ color: colour });
|
|
const mesh = new THREE.Mesh(geometry, material);
|
|
floorPlanGroupLine.current.add(mesh);
|
|
|
|
mesh.userData.linePoints = userData;
|
|
}
|
|
|
|
export default addLineToScene;
|