/** @module svgObjects.PolyLinePoint */
/**
* one point of {@link PolyLinePoints}, used in the {@link PolyLine} object
*/
export default class PolyLinePoint {
/**
* @param {number} x horizontal coordinate of the PolyLine point
* @param {number} y vertical coordinate of the PolyLine point
*/
constructor(x, y) {
this.x = 0;
this.y = 0;
if (x !== undefined && y !== undefined) {
this.x = x;
this.y = y;
}
}
/**
* change the coordinates of this point
* @param {number} x horizontal coordinate of the PolyLine point
* @param {number} y vertical coordinate of the PolyLine point
*/
set(x, y) {
this.x = x;
this.y = y;
}
/**
* create PolyLine from a comma separated string (e.g. from a string formatted like this: "x,y", for example "15,8")
* @param {string} string string in the format "x,y" representing a point in the SVG PolyLine
* @return {PolyLinePoint} newly created instance of {@link PolyLinePoint}
*/
static parseFromString(string) {
let arr = string.split(',');
return new PolyLinePoint(arr[0], arr[1]);
}
/**
* return a string representation of this PolyLine point
* @return {string} string in the format "x,y"
*/
get string() {
return this.x + ',' + this.y;
}
/**
* compare PolyLine points, return `true` if they are equal, else return `false`
* @param {PolyLinePoint} a
* @param {PolyLinePoint} b
* @return {boolean}
*/
static equals(a, b) {
return a.x === b.x && a.y === b.y;
}
}