Exemple #1
0
        public void CreatesPoints()
        {
            var points = PoissonSampler.GeneratePoints(
                1, new Vector2(10, 10));

            Assert.Greater(points.Count, 0);
        }
Exemple #2
0
        public void MaxPoints()
        {
            const int maxPoints = 10;
            var       points    = PoissonSampler.GeneratePoints(
                1, new Vector2(10, 10), 30, maxPoints);

            Assert.LessOrEqual(points.Count, maxPoints);
        }
Exemple #3
0
    private void PlantGrassArea(Vector3 originPosition, float areaWidth)
    {
        Action <Vector3> sampleAction = (samplePosition) =>
        {
            PlantGrass(samplePosition);
        };

        var ps = new PoissonSampler(sampleAction);

        ps.Sample(originPosition, areaWidth);
    }
Exemple #4
0
        public IEnumerator NoOverlap()
        {
            const float radius = 0.5f;
            var         points = PoissonSampler.GeneratePoints(
                radius, new Vector2(40, 40));
            var nonOverlapping = 0;

            var light = new GameObject("Directional Light").AddComponent <Light> ();

            light.type = LightType.Directional;

            for (var i = 0; i < points.Count; i++)
            {
                var go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                go.transform.position = points[i];
                var earlier = i - 1;

                for (; earlier >= 0; earlier--)
                {
                    if (!Overlaps(points[i], points[earlier], radius))
                    {
                        continue;
                    }

                    go.GetComponent <MeshRenderer> ().material.color = Color.red;
                    nonOverlapping--;
                    break;
                }

                nonOverlapping++;
                //yield return null;
            }

            yield return(new WaitForSeconds(1));

            Assert.True(points.Count == nonOverlapping);
        }