import { Point } from "./Point.js" import { renderCube } from "../../3D/cube.js" class Segment { /** * @param {Point} start * @param {Point} stop */ constructor(start, stop) { this.start = start === undefined ? new Point() : start; this.stop = stop === undefined ? new Point() : stop; } /** * @param {CanvasRenderingContext2D} ctx */ draw(ctx) { if(ctx instanceof CanvasRenderingContext2D) { ctx.moveTo(this.start.x, this.start.y); ctx.lineTo(this.stop.x, this.stop.y); } else if(ctx instanceof WebGLRenderingContext) { renderCube(ctx, this.start.x, -3, this.start.y, 0, 0.5, 0.5, 0.5); } else { alert('Unknown rendering context type'); } } from_json(data) { this.start = this.start.from_json(data.start); this.stop = this.stop.from_json(data.stop); return this; } } export { Segment }