UNPKG

@dominicstop/utils

Version:

Yet another event emitter written in typescript.

64 lines (63 loc) 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Line = void 0; const Point_1 = require("./Point"); class Line { constructor(args) { this.startPoint = args.startPoint; this.endPoint = args.endPoint; } ; get asValue() { return { startPoint: this.startPoint, endPoint: this.endPoint, }; } ; get distance() { const deltaX = this.endPoint.x - this.startPoint.x; const deltaY = this.endPoint.y - this.startPoint.y; return Math.sqrt(deltaX * deltaX + deltaY * deltaY); } ; get midPoint() { const midX = (this.endPoint.x + this.startPoint.x) / 2; const midY = (this.endPoint.y + this.startPoint.y) / 2; return new Point_1.Point({ x: midX, y: midY }); } ; get slope() { const deltaX = this.startPoint.x - this.endPoint.x; const deltaY = this.startPoint.y - this.endPoint.y; return deltaY / deltaX; } ; get reversed() { return new Line({ startPoint: this.endPoint, endPoint: this.startPoint, }); } ; clone() { return new Line(this.asValue); } ; traverseByPercent(percentToTraverse) { return Point_1.Point.lerp(this.startPoint, this.endPoint, percentToTraverse); } ; traverseByDistance(distanceToTraverse) { const totalDistance = this.distance; const percentTraversed = distanceToTraverse / totalDistance; const stopPoint = this.traverseByPercent(percentTraversed); return { percentTraversed, stopPoint }; } ; } exports.Line = Line; ;