Beispiel #1
0
    void Awake()
    {
        // Create random points
        int n = seed;

        points = new List <Vec3>();

        switch (usedGenerator)
        {
        case Generator.Halton:
            for (int i = 0; i < pointNumber; i++)
            {
                // Random sparse distribution
                Vec3 temp = HaltonSequence.Halton2D(n, bases[0], bases[1]);
                points.Add(new Vec3(temp.X * boundaries[0] + transform.position.x,
                                    temp.Y * boundaries[1] + transform.position.y,
                                    transform.position.z));
                n++;
            }
            break;

        case Generator.Poisson:
            RandGen.Init(seed);
            poissonGen = new PoissonDisk2D(minimalDistance, boundaries[0], boundaries[1],
                                           maxAttemp);
            poissonGen.BuildSample(pointNumber);
            foreach (Vec3 point in poissonGen)
            {
                points.Add(point);
            }
            break;

        default:
            throw new NotImplementedException();
        }


        // Place camera
        var cam = Camera.main;

        cam.transform.position = new Vector3(boundaries[0] / 2.0f, boundaries[1] / 2.0f, -0.8f * Mathf.Max(boundaries));
    }
Beispiel #2
0
    // Use this for initialization
    void Awake()
    {
        RandGen.Init(seed);

        if (dim == Dimension.Two)
        {
            generator2D = new PoissonDisk2D(minimalDistance, boundaries[0], boundaries[1],
                                            maxAttemp);
        }
        else
        {
            generator3D = new PoissonDisk3D(minimalDistance, boundaries[0], boundaries[1], boundaries[2],
                                            maxAttemp);
        }

        // Place camera
        var cam = Camera.main;

        cam.transform.position = new Vector3(boundaries[0] / 2.0f, boundaries[1] / 2.0f, -0.8f * Mathf.Max(boundaries));
    }