public void CreatesPoints() { var points = PoissonSampler.GeneratePoints( 1, new Vector2(10, 10)); Assert.Greater(points.Count, 0); }
public void MaxPoints() { const int maxPoints = 10; var points = PoissonSampler.GeneratePoints( 1, new Vector2(10, 10), 30, maxPoints); Assert.LessOrEqual(points.Count, maxPoints); }
private void PlantGrassArea(Vector3 originPosition, float areaWidth) { Action <Vector3> sampleAction = (samplePosition) => { PlantGrass(samplePosition); }; var ps = new PoissonSampler(sampleAction); ps.Sample(originPosition, areaWidth); }
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); }