common/collision/strategies/helpers library

Functions

bestSlotCenterDistanceRatio(Rect rect, List<Rect> slots) → double
bestSlotClearance(Rect rect, List<Rect> slots) → double
candidateAlignmentOffsets({required Offset anchorPx, required Size size, required Alignment currentAlignment, required EdgeInsets margin, required bool rotate, required double mapRotationRad}) → List<Offset>
clampRadius(Offset o, double maxR) → Offset
computeSlots(Rect anchorRect, double anchorPad, double maxRadius) → List<Rect>
connectorEntryPoint(Rect rect, Offset anchor) → Offset
connectorObstaclePenalty(Offset start, Offset end, List<Rect> obstacles, {double avoidDistance = 10.0, double intersectWeight = 160.0, double proximityWeight = 24.0}) → double
dirOrFallback(Offset prev, Offset outward) → Offset
fans(Offset outward, double step, double maxR) → Iterable<Offset>
goldenSpiral({required double step, required double maxR, double? startAngle}) → Iterable<Offset>
Golden spiral sampling with good angular distribution.
insideSlotsOrMostly(Rect cand, List<Rect> slots, {double minCover = 0.95}) → bool
overlapsAnySlot(Rect cand, List<Rect> slots) → bool
placementScore({required Offset candidate, required Offset previous, required Offset outward, Offset? connectorStart, Offset? connectorEnd, Rect? candidateRect, List<Rect> slots = const [], List<Rect> obstacles = const [], double previousWeight = 0.65, double originWeight = 0.2, double directionWeight = 16.0, double lengthWeight = 0.18, double clearanceWeight = 8.0, double coverageWeight = 16.0, double slotCenterWeight = 18.0, double connectorIntersectWeight = 160.0, double connectorProximityWeight = 24.0, double connectorAvoidDistance = 10.0}) → double
ring(int k, double step) → Iterable<Offset>
rot(Offset v, double a) → Offset
screenPriority<T>(CollisionNode<T> node, Offset viewCenter, MapCamera cam) → int
segmentDistanceToRect(Offset a, Offset b, Rect rect) → double
segmentIntersectsRect(Offset a, Offset b, Rect rect) → bool
slotCoverageRatio(Rect rect, List<Rect> slots) → double
sortSlotsByDir(List<Rect> slots, Offset anchorPx, Offset dir) → List<Rect>