setupFilter
Definition
-- @/lua/ge/extensions/freeroam/bigMapMarkers.lua:23
local function setupFilter(validIds, radius)
local elementsInFilter = {}
if radius then
radius = round(radius/radiusStep) * radiusStep
else
radius = 20
end
local settingsId = radius.."#-"
local validIdsLookup = {}
table.sort(validIds)
for _, e in ipairs(validIds) do
settingsId = settingsId .. e
validIdsLookup[e] = true
end
clusterSettingsCounter = clusterSettingsCounter + 1
local clusterSettings = {radius = radius, id = settingsId, validIdsLookup = validIdsLookup, markerPrefix = clusterSettingsCounter}
clusterSettingsById[clusterSettings.id] = clusterSettings
currentClusterSettingsId = clusterSettings.id
local newOldMarkers = {}
for clusterId, marker in pairs(oldMarkersByClusterId) do
if not marker.visible then
marker:clearObjects()
else
newOldMarkers[clusterId] = marker
end
end
oldMarkersByClusterId = newOldMarkers
-- Move current markers to old markers list for gradual cleanup
for clusterId, marker in pairs(markersByClusterId) do
marker:hide()
oldMarkersByClusterId[clusterId] = marker
end
markersByClusterId = {}
end
Callers
@/lua/ge/extensions/freeroam/bigMapMode.lua
currentlyVisibleIds = list or {}
freeroam_bigMapMarkers.setupFilter(currentlyVisibleIds, M.clusterMergeRadius)
end
--freeroam_bigMapMarkers.buildPoiList() -- removed(testing)
--freeroam_bigMapMarkers.setupFilter()
M.clusterMergeRadius = lerp(minMergeRadius, maxMergeRadius, factor)
freeroam_bigMapMarkers.setupFilter(currentlyVisibleIds, M.clusterMergeRadius)
--updateOnlyIdsVisible(true)