MCPcopy Create free account
hub / github.com/TodePond/ScreenPond / getMappedPositionPart

Function getMappedPositionPart

source/part.js:34–66  ·  view source on GitHub ↗
(position, pity = [0, 0])

Source from the content-addressed store, hash-verified

32
33export const PART_OUTSIDE_PITY_SCALE = 1.0;
34export const getMappedPositionPart = (position, pity = [0, 0]) => {
35 const [x, y] = position;
36 const [px, py] = pity.map((axis) => Math.min(0.25, axis));
37
38 if (x <= 0.0 - px * PART_OUTSIDE_PITY_SCALE)
39 return makePart(PART_TYPE.OUTSIDE);
40 if (x >= 1.0 + px * PART_OUTSIDE_PITY_SCALE)
41 return makePart(PART_TYPE.OUTSIDE);
42 if (y <= 0.0 - py * PART_OUTSIDE_PITY_SCALE)
43 return makePart(PART_TYPE.OUTSIDE);
44 if (y >= 1.0 + py * PART_OUTSIDE_PITY_SCALE)
45 return makePart(PART_TYPE.OUTSIDE);
46
47 // Left Edge
48 if (x <= 0.0 + px) {
49 if (y <= 0.0 + py) return makePart(PART_TYPE.CORNER, 0);
50 if (y >= 1.0 - py) return makePart(PART_TYPE.CORNER, 2);
51 return makePart(PART_TYPE.EDGE, 1);
52 }
53
54 // Right Edge
55 if (x >= 1.0 - px) {
56 if (y <= 0.0 + py) return makePart(PART_TYPE.CORNER, 1);
57 if (y >= 1.0 - py) return makePart(PART_TYPE.CORNER, 3);
58 return makePart(PART_TYPE.EDGE, 2);
59 }
60
61 // Top + Bottom Edges
62 if (y <= 0.0 + py) return makePart(PART_TYPE.EDGE, 0);
63 if (y >= 1.0 - py) return makePart(PART_TYPE.EDGE, 3);
64
65 return makePart(PART_TYPE.INSIDE);
66};

Callers 2

pickInScreenFunction · 0.90
setWorldCornersFunction · 0.90

Calls 1

makePartFunction · 0.85

Tested by

no test coverage detected