this repo has no description
at main 1.6 kB view raw
1import { PositionInfo } from "../renderer"; 2 3export let screenToWorldSpace = ( canvas: HTMLCanvasElement, position: PositionInfo, pointX: number, pointY: number ): [ number, number ] => { 4 let startX = canvas.width / -2; 5 let startY = canvas.height / -2; 6 7 let worldX = ((pointX + startX) / position.scale) - position.x - startX; 8 let worldY = ((pointY + startY) / position.scale) - position.y - startY; 9 10 return [ worldX, worldY ]; 11} 12 13export let isPointInRectApplyOffset = ( canvas: HTMLCanvasElement, position: PositionInfo, pointX: number, pointY: number, rectX: number, rectY: number, rectW: number, rectH: number ): boolean => { 14 let startX = canvas.width / -2; 15 let startY = canvas.height / -2; 16 17 let screenPointX = (pointX + startX); 18 let screenPointY = (pointY + startY); 19 20 let rectScreenX = (rectX + startX + position.x) * position.scale; 21 let rectScreenY = (rectY + startY + position.y) * position.scale; 22 let rectScreenW = rectW * position.scale; 23 let rectScreenH = rectH * position.scale; 24 25 return ( 26 screenPointX > rectScreenX && 27 screenPointX < rectScreenX + rectScreenW && 28 screenPointY > rectScreenY && 29 screenPointY < rectScreenY + rectScreenH 30 ) 31} 32 33export let isPointInRect = ( canvas: HTMLCanvasElement, pointX: number, pointY: number, rectX: number, rectY: number, rectW: number, rectH: number ): boolean => { 34 return ( 35 pointX > canvas.width / 2 + rectX && 36 pointX < canvas.width / 2 + rectX + rectW && 37 pointY > canvas.height / 2 + rectY && 38 pointY < canvas.height / 2 + rectY + rectH 39 ) 40}