| 91985 | pickedObjectIndex: -1 |
| 91986 | }; |
| 91987 | function getClosestObject(_ref) { |
| 91988 | var pickedColors = _ref.pickedColors, layers = _ref.layers, deviceX = _ref.deviceX, deviceY = _ref.deviceY, deviceRadius = _ref.deviceRadius, deviceRect = _ref.deviceRect; |
| 91989 | if (pickedColors) { |
| 91990 | var x = deviceRect.x, y = deviceRect.y, width = deviceRect.width, height = deviceRect.height; |
| 91991 | var minSquareDistanceToCenter = deviceRadius * deviceRadius; |
| 91992 | var closestPixelIndex = -1; |
| 91993 | var i = 0; |
| 91994 | for(var row = 0; row < height; row++){ |
| 91995 | var dy = row + y - deviceY; |
| 91996 | var dy2 = dy * dy; |
| 91997 | if (dy2 > minSquareDistanceToCenter) i += 4 * width; |
| 91998 | else for(var col = 0; col < width; col++){ |
| 91999 | var pickedLayerIndex = pickedColors[i + 3] - 1; |
| 92000 | if (pickedLayerIndex >= 0) { |
| 92001 | var dx = col + x - deviceX; |
| 92002 | var d2 = dx * dx + dy2; |
| 92003 | if (d2 <= minSquareDistanceToCenter) { |
| 92004 | minSquareDistanceToCenter = d2; |
| 92005 | closestPixelIndex = i; |
| 92006 | } |
| 92007 | } |
| 92008 | i += 4; |
| 92009 | } |
| 92010 | } |
| 92011 | if (closestPixelIndex >= 0) { |
| 92012 | var _pickedLayerIndex = pickedColors[closestPixelIndex + 3] - 1; |
| 92013 | var pickedColor = pickedColors.slice(closestPixelIndex, closestPixelIndex + 4); |
| 92014 | var pickedLayer = layers[_pickedLayerIndex]; |
| 92015 | if (pickedLayer) { |
| 92016 | var pickedObjectIndex = pickedLayer.decodePickingColor(pickedColor); |
| 92017 | var _dy = Math.floor(closestPixelIndex / 4 / width); |
| 92018 | var _dx = closestPixelIndex / 4 - _dy * width; |
| 92019 | return { |
| 92020 | pickedColor: pickedColor, |
| 92021 | pickedLayer: pickedLayer, |
| 92022 | pickedObjectIndex: pickedObjectIndex, |
| 92023 | pickedX: x + _dx, |
| 92024 | pickedY: y + _dy |
| 92025 | }; |
| 92026 | } |
| 92027 | (0, _logDefault.default).error("Picked non-existent layer. Is picking buffer corrupt?")(); |
| 92028 | } |
| 92029 | } |
| 92030 | return NO_PICKED_OBJECT; |
| 92031 | } |
| 92032 | function getUniqueObjects(_ref2) { |
| 92033 | var pickedColors = _ref2.pickedColors, layers = _ref2.layers; |
| 92034 | var uniqueColors = new Map(); |