Esempio n. 1
0
        /// <summary>
        /// Добавляет массив пикселей к региону и пересчитывает параметры региона
        /// </summary>
        /// <param name="pixels">Добавляемый к региону массив пикселей</param>
        public void AddPixelsWithParametersRecalculation(Pixel[] pixels)
        {
            for (int i = 0; i < pixels.Length; i++)
            {
                pixels[i].Region = this;
            }

            RegionPixels.AddRange(pixels);
            CalculateParameters(PixelAction.add, pixels);
        }
Esempio n. 2
0
        /// <summary>
        /// Проверяет, есть ли в данном регионе пиксель с заданным Id
        /// </summary>
        /// <param name="pixelId">Id пикселя</param>
        /// <returns>true, если пиксель есть в регионе, false, если его нет</returns>
        public bool isPixelInRegion(int[] pixelId)
        {
            var pixel = RegionPixels.Find(x => x.Id[0] == pixelId[0] && x.Id[1] == pixelId[1]);

            if (pixel != null)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Удаляет все пиксели региона без пересчета параметров региона
        /// </summary>
        /// <returns>Массив удаленных пикселей региона</returns>
        public Pixel[] RemovePixels()
        {
            Pixel[] removedPixels = new Pixel[RegionPixels.Count];
            for (int i = 0; i < RegionPixels.Count; i++)
            {
                removedPixels[i] = RegionPixels[i];
            }

            RegionPixels.Clear();
            // удаляем также список расстояний
            DistanceSums.Clear();

            return(removedPixels);
        }
Esempio n. 4
0
        /// <summary>
        /// Удаляет пиксель из региона без пересчета параметров региона
        /// </summary>
        /// <param name="pixelId">Идентификатор удаляемого пикселя - массив с координатами i, j</param>
        public Pixel RemovePixel(int[] pixelId)
        {
            Pixel removedPixel = null;

            for (int i = 0; i < RegionPixels.Count; i++)
            {
                if (RegionPixels[i].Id[0] == pixelId[0] && RegionPixels[i].Id[1] == pixelId[1])
                {
                    removedPixel = RegionPixels[i];
                    RegionPixels.RemoveAt(i);
                    break;
                }
            }
            return(removedPixel);
        }
Esempio n. 5
0
        /// <summary>
        /// Удаляет пиксель из региона и пересчитывает параметры региона
        /// </summary>
        /// <param name="pixelId">Идентификатор удаляемого пикселя - массив с координатами i, j</param>
        public Pixel RemovePixelWithParametersRecalculation(int[] pixelId)
        {
            Pixel removedPixel = null;

            for (int i = 0; i < RegionPixels.Count; i++)
            {
                if (RegionPixels[i].Id[0] == pixelId[0] && RegionPixels[i].Id[1] == pixelId[1])
                {
                    removedPixel = RegionPixels[i];
                    RegionPixels.RemoveAt(i);
                    // удаляем также и из списка расстояний
                    DistanceSums.RemoveAt(i);
                    break;
                }
            }
            CalculateParameters(PixelAction.remove, new Pixel[] { removedPixel });
            return(removedPixel);
        }
Esempio n. 6
0
 /// <summary>
 /// Добавляет массив пикселей к региону без пересчета параметров региона
 /// </summary>
 /// <param name="pixels">Добавляемый к региону массив пикселей</param>
 public void AddPixels(Pixel[] pixels)
 {
     RegionPixels.AddRange(pixels);
 }
Esempio n. 7
0
 /// <summary>
 /// Добавляет пиксель к региону и пересчитывает параметры региона
 /// </summary>
 /// <param name="pixel">Пиксель, добавляемый к региону</param>
 public void AddPixelWithParametersRecalculation(Pixel pixel)
 {
     pixel.Region = this;
     RegionPixels.Add(pixel);
     CalculateParameters(PixelAction.add, new Pixel[] { pixel });
 }
Esempio n. 8
0
 /// <summary>
 /// Добавляет пиксель к региону без пересчета параметров региона
 /// </summary>
 /// <param name="pixel">Пиксель, добавляемый к региону</param>
 public void AddPixel(Pixel pixel)
 {
     RegionPixels.Add(pixel);
 }