this repo has no description
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}