public Algorithm( IPoints points, IRectangle rect, StrategyType type = StrategyType.Grid, ILog2 log = null) { _log = log ?? new NoLog(); Rectangle = rect; Points = points.Data; Singles = new List<IP>(); Knn = new NearestNeighbor(); GridContainer = new GridContainer(Rectangle, Points); switch (type) { case StrategyType.Naive: Strategy = new NaiveStrategy(_log); break; case StrategyType.Grid: Strategy = new GridStrategy(_log); break; case StrategyType.KdTree: Strategy = new KdTreeStrategy(Points); break; default: throw new NotImplementedException("Unknown strategy"); } //_log.Info(MethodBase.GetCurrentMethod(), "object init"); }
public List<IP> GetSingles(GridContainer gc) { var singles = new List<IP>(); for (var i = 0; i < X; i++) { for (var j = 0; j < Y; j++) { var set = Set[i, j]; if (set.Count != 1) continue; var p = set.First(); singles.Add(p); } } return singles; }
public List <IP> GetSingles(GridContainer gc) { var singles = new List <IP>(); for (var i = 0; i < X; i++) { for (var j = 0; j < Y; j++) { var set = Set[i, j]; if (set.Count != 1) { continue; } var p = set.First(); singles.Add(p); } } return(singles); }