private double getDefaultRadius() { double maxDistance = 0d; foreach (var item in _items) { foreach (var innerItem in _items) { var distance = new DistanceStrategy <T>().GetDistance(item, innerItem); if (distance > maxDistance) { maxDistance = distance; } } } return(maxDistance); }
private List <T> getItemsNear(Tuple <double, double> point, double radius, List <List <T> > excludeGroups) { var excludedItems = getItemsFromGroups(excludeGroups); var result = new List <T>(); foreach (var item in _items) { if (excludedItems.Contains(item)) { continue; } if (DistanceStrategy <T> .GetDistance(point, item) <= radius) { result.Add(item); } } return(result); }