Esempio n. 1
0
    public void Simplify(Vector3 target)
    {
        Vector3 center           = GetTriangleCenter();
        Vector3 normalizedTarget = (target - planet.transform.position).normalized;
        float   distance         = (target - planet.transform.position).magnitude;
        Vector3 v         = _b - _a;
        float   magnitude = v.magnitude;

        if ((normalizedTarget * (distance / _radius) - center).magnitude > (magnitude * planet.drawDistance))
        {
            foreach (Transform t in transform)
            {
                GetComponent <MeshRenderer>().enabled = true;
                t.gameObject.SetActive(false);
            }
        }
        else
        {
            if (transform.childCount == 0 && _counter > 0)
            {
                Divide();
            }
            foreach (Transform t in transform)
            {
                TriangleTerrain tt = t.GetComponent <TriangleTerrain>();
                if (tt)
                {
                    t.gameObject.SetActive(true);
                    GetComponent <MeshRenderer>().enabled = false;
                    tt.Simplify(target);
                }
            }
        }
    }
Esempio n. 2
0
 public void Simplify(Vector3 position)
 {
     foreach (Transform t in transform)
     {
         TriangleTerrain terrain = t.GetComponent <TriangleTerrain>();
         if (terrain)
         {
             terrain.Simplify(position);
         }
     }
 }
Esempio n. 3
0
    public void CreateTerrain(Vector3 a, Vector3 b, Vector3 c)
    {
        GameObject g = new GameObject();

        g.transform.parent        = transform;
        g.transform.localPosition = Vector3.zero;
        TriangleTerrain t = g.AddComponent <TriangleTerrain>();

        t.GetComponent <MeshRenderer>().sharedMaterial = material;
        t.planet = this;
        t.Generate(a, b, c, resolution, radius, division, child);
    }
Esempio n. 4
0
    void makeChild(Vector3 a, Vector3 b, Vector3 c)
    {
        MeshRenderer    rend = GetComponent <MeshRenderer>();
        GameObject      g    = new GameObject();
        TriangleTerrain t    = g.AddComponent <TriangleTerrain>();

        g.transform.parent        = transform;
        g.transform.localPosition = Vector3.zero;
        g.GetComponent <MeshRenderer>().sharedMaterial = rend.sharedMaterial;
        t.planet   = planet;
        g.isStatic = true;
        t.Generate(a, c, b, _counter - 1, _radius, _size, _s2);
        rend.enabled = false;
    }