Delaunay.Voronoi.Sites C# (CSharp) Method

Sites() public method

public Sites ( ) : SiteList
return SiteList
        public SiteList Sites()
        {
            return _sites;
        }

Usage Example

Example #1
0
        private Voronoi GetVoronoi(int width, int height, int sitecount, int seed, int smoothingFactor)
        {
            var sw = new Stopwatch();

            sw.Start();

            var points = new List <Vector2>();

            Random.seed = seed;

            for (int i = 0; i < sitecount; i++)
            {
                points.Add(new Vector2(
                               Random.Range(0f, width),
                               Random.Range(0f, height))
                           );
            }
            var v = new Voronoi(points, null, new Rect(0, 0, width, height));

            for (int i = 0; i < smoothingFactor; i++)
            {
                points = new List <Vector2>();
                foreach (var site in v.Sites())
                {
                    //brnkhy - voices are telling me that, this should use circumference, not average
                    var sum   = Vector2.zero;
                    var count = 0;
                    foreach (var r in site.edges)
                    {
                        if (r.leftVertex != null)
                        {
                            sum += r.leftVertex.Coord;
                        }
                        if (r.rightVertex != null)
                        {
                            sum += r.rightVertex.Coord;
                        }
                        count += 2;
                    }
                    points.Add(sum / count);
                }

                v = new Voronoi(points, null, new Rect(0, 0, width, height));
            }
            sw.Stop();
            Debug.Log(string.Format("Voronoi generation took [{0}] milisecs with {1} smoothing iterations", sw.ElapsedMilliseconds, smoothingFactor));
            return(v);
        }