From 34d1c346113af83045d906f54f5a8b2b7299f044 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Fri, 13 Aug 2021 14:46:49 +0200 Subject: [PATCH] Add `canvas.getCoords` and `canvas.setCoords` methods. #3668 --- src/canvas/index.js | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/src/canvas/index.js b/src/canvas/index.js index 65599cfc4..97eec8e5c 100644 --- a/src/canvas/index.js +++ b/src/canvas/index.js @@ -575,7 +575,7 @@ export default () => { * @param {Number} value The zoom value, from 0 to 100 * @returns {this} * @example - * canvas.setZoom(50) // set zoom to 50% + * canvas.setZoom(50); // set zoom to 50% */ setZoom(value) { canvas.set('zoom', parseFloat(value)); @@ -586,13 +586,39 @@ export default () => { * Get canvas zoom value * @returns {Number} * @example - * canvas.setZoom(50) // set zoom to 50% - * const zoom = canvas.getZoom() // 50 + * canvas.setZoom(50); // set zoom to 50% + * const zoom = canvas.getZoom(); // 50 */ getZoom() { return parseFloat(canvas.get('zoom')); }, + /** + * Set canvas position coordinates + * @param {Number} x Horizontal position + * @param {Number} y Vertical position + * @returns {this} + * @example + * canvas.setCoords(100, 100); + */ + setCoords(x, y) { + canvas.set({ x: parseFloat(x), y: parseFloat(y) }); + return this; + }, + + /** + * Get canvas position coordinates + * @returns {Object} Object containing coordinates + * @example + * canvas.setCoords(100, 100); + * const coords = canvas.getCoords(); + * // { x: 100, y: 100 } + */ + getCoords() { + const { x, y } = canvas.attributes; + return { x, y }; + }, + getZoomDecimal() { return this.getZoom() / 100; },