Пример #1
0
        /// <summary>
        /// Строит индекс для списка объектов.
        /// </summary>
        /// <param name="objects">Перечислитель объектов, для которых требуется построить индекс</param>
        public void Build <T>(IEnumerable <T> objects)
            where T : IIndexable
        {
            Clear();

            List <T> list = new List <T>();

            foreach (T obj in objects)
            {
                if (IndexedSpace.ContainsRectangle(obj.BoundingRectangle))
                {
                    list.Add(obj);
                }
                else
                {
                    throw new ArgumentException("At least one object goes beyond the indexed space", "objects");
                }
            }

            _root.Build(list);
        }