Exemple #1
0
        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");
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        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);
        }