From 07317570606488776cf305a9f428b9db538655de Mon Sep 17 00:00:00 2001 From: Mark Mankarious Date: Tue, 17 Oct 2023 13:52:22 +0100 Subject: [PATCH] fix: fixes bug with rectangle resizing --- .../modes/Rectangle/TransformRectangle.ts | 9 +++++---- src/utils/renderer.ts | 13 +++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/interaction/modes/Rectangle/TransformRectangle.ts b/src/interaction/modes/Rectangle/TransformRectangle.ts index 460cb07..e759bbc 100644 --- a/src/interaction/modes/Rectangle/TransformRectangle.ts +++ b/src/interaction/modes/Rectangle/TransformRectangle.ts @@ -5,9 +5,9 @@ import { getItemAtTile, getBoundingBox, outermostCornerPositions, - getTilePosition, convertBoundsToNamedAnchors, - hasMovedTile + hasMovedTile, + isoToScreen } from 'src/utils'; import { TRANSFORM_ANCHOR_SIZE } from 'src/config'; import { ModeActions, AnchorPositionsEnum } from 'src/types'; @@ -74,9 +74,10 @@ export const TransformRectangle: ModeActions = { // Check if the user has mousedown'd on an anchor const rectangleBounds = getBoundingBox([rectangle.to, rectangle.from]); const anchorPositions = rectangleBounds.map((corner, i) => { - return getTilePosition({ + return isoToScreen({ tile: corner, - origin: outermostCornerPositions[i] + origin: outermostCornerPositions[i], + rendererSize: uiState.rendererSize }); }); const activeAnchorIndex = anchorPositions.findIndex((anchorPosition) => { diff --git a/src/utils/renderer.ts b/src/utils/renderer.ts index 6092c1f..cf9dfe9 100644 --- a/src/utils/renderer.ts +++ b/src/utils/renderer.ts @@ -104,6 +104,19 @@ export const getTilePosition = ({ } }; +type IsoToScreen = GetTilePosition & { + rendererSize: Size; +}; + +export const isoToScreen = ({ tile, origin, rendererSize }: IsoToScreen) => { + const position = getTilePosition({ tile, origin }); + + return { + x: position.x + rendererSize.width / 2, + y: position.y + rendererSize.height / 2 + }; +}; + export const sortByPosition = (tiles: Coords[]) => { const xSorted = [...tiles]; const ySorted = [...tiles];