QuestieOcto.Clustering = QuestieOcto.Clustering or {} local C = QuestieOcto.Clustering C.objectiveRadius=9.0 C.itemStartRadius=12.0 local function Dist(x1,y1,x2,y2) local dx=x1-x2 local dy=y1-y2 return math.sqrt(dx*dx+dy*dy) end function C:BuildAreas(points,radius) local areas={} if not points then return areas end table.sort(points,function(a,b) if a.x==b.x then return a.y