/** | |
* Responsible for validating positions and is used | |
* when manipulating positions across the application | |
*/ | |
export default class Position { | |
/** | |
* @param {number} left | |
* @param {number} top | |
* @param {number} right | |
* @param {number} bottom | |
*/ | |
constructor({ | |
left = 0, | |
top = 0, | |
right = 0, | |
bottom = 0, | |
} = {}) { | |
this.left = left; | |
this.right = right; | |
this.top = top; | |
this.bottom = bottom; | |
} | |
/** | |
* Checks if the position is valid to be highlighted | |
* @returns {boolean} | |
* @public | |
*/ | |
canHighlight() { | |
return this.left < this.right && this.top < this.bottom; | |
} | |
/** | |
* Checks if the given position is equal to the passed position | |
* @param position Position | |
* @returns {boolean} | |
* @public | |
*/ | |
equals(position) { | |
return Math.round(this.left) === Math.round(position.left) && | |
Math.round(this.right) === Math.round(position.right) && | |
Math.round(this.top) === Math.round(position.top) && | |
Math.round(this.bottom) === Math.round(position.bottom); | |
} | |
} | |