Exemple #1
0
        public void EnsureRadius(int radius)
        {
            if (radius > current_radius)
            {
                RectI2 old_rect = RectI2Extensions.CreateCenterRectI2(VectorI2.ZERO, new VectorI2(current_radius * 2, current_radius * 2));
                RectI2 new_rect = RectI2Extensions.CreateCenterRectI2(VectorI2.ZERO, new VectorI2(radius * 2, radius * 2));

                new_rect.GetSubtraction(old_rect)
                .Convert(r => r.GetPoints())
                .Flatten()
                .Process(p => points.Add(new RadiatingPoint(p)));

                current_radius = radius;
                points.Sort((x, y) => x.GetDistance().CompareTo(y.GetDistance()));
            }
        }