import { GeometricObject } from "../../../core/models/objects/geometric-object"; import { ELEMENTS_CLASS } from "../../../core/enums/elements-class-enum"; export class PointModel extends GeometricObject { /** * * @param {number} posX X Position ex: (38.5) float precision * @param {number} posY Y Position ex: (-38.5) float precision * @param {string} label Label ex: (P) */ constructor(posX, posY, label, id) { super(id); this.posX = posX; this.posY = posY; this.setLabel(label); super.setClass(ELEMENTS_CLASS.POINT); this.definitions = [{ id: this.posX + 5 }, { id: -this.posY - 5 }]; this.color = -16711936; } /** * * @param {konvaObject} Object of Konva Library * @param {*} event */ update(konvaObject, event) { this.posX = konvaObject.attrs.startPosX + event.target._lastPos.x; this.posY = konvaObject.attrs.startPosY + event.target._lastPos.y; this.definitions = [{ id: this.posX + 5 }, { id: -this.posY - 5 }]; } /** * Create new Intersection By Line of Script .geo * @param {Map} map JavaScript Map * @param {List} list List of Generic Objects */ static do(map, list) { const id = map.get("id"); const x = map.get("param")[0] - 5; const y = -map.get("param")[1] + 5; const label = map.get("label")[0]; return new PointModel(x, y, label, id); } }