Example #1
0
 private void OnEnable()
 {
     TP = GameObject.Find("MainController").GetComponentInChildren <TrianglePainter>();
     buySat.onClick.AddListener(BuySatelite);
     MainController.NextTurn += GetPaid;
     //UpdateTexts();
 }
Example #2
0
    void Update()
    {
        if (check || Input.GetKeyDown(KeyCode.Space))
        {
            check = false;

            Triangle3D t = testPlane.triangle;

            Camera camera = cam;

            float theta_Y = camera.fieldOfView * 0.5f;
            float theta_X = Mathf.Atan(Mathf.Tan(camera.fieldOfView * 0.5f * Mathf.Deg2Rad) * camera.aspect) * Mathf.Rad2Deg;

            Plane left   = new Plane(0, new Vector3(-Mathf.Cos((theta_X) * Mathf.Deg2Rad), 0, -Mathf.Sin((theta_X) * Mathf.Deg2Rad)));
            Plane right  = new Plane(0, new Vector3(-Mathf.Cos((180 - theta_X) * Mathf.Deg2Rad), 0, -Mathf.Sin((180 - theta_X) * Mathf.Deg2Rad)));
            Plane near   = new Plane(-camera.nearClipPlane, Vector3.back);
            Plane far    = new Plane(camera.farClipPlane, Vector3.forward);
            Plane top    = new Plane(0, new Vector3(0, -Mathf.Sin((-theta_Y + 90) * Mathf.Deg2Rad), -Mathf.Cos((-theta_Y + 90) * Mathf.Deg2Rad)));
            Plane buttom = new Plane(0, new Vector3(0, -Mathf.Sin((theta_Y - 90) * Mathf.Deg2Rad), -Mathf.Cos((theta_Y - 90) * Mathf.Deg2Rad)));


            List <Triangle3D> ts = Rasterizer.ViewSpaceFrustrumClipping(t, cam);

            print(buttom.Point(p1.position));

            foreach (var go in ts)
            {
                TrianglePainter.CreateTrianglePainter(go);
            }
        }
    }
Example #3
0
    public static void DisplayTriangleList(List <Triangle3D> ts, string prefix = "TrianglePainters")
    {
        if (!display)
        {
            return;
        }

        GameObject parent = new GameObject();

        parent.name = prefix;

        for (int i = 0; i < ts.Count; i++)
        {
            TrianglePainter tp = TrianglePainter.CreateTrianglePainter(ts[i], prefix + " " + i.ToString());
            tp.transform.SetParent(parent.transform);
        }
    }
Example #4
0
    //void Cache()
    //{
    //    if (transform.childCount < 3)
    //        return;

    //    if (mesh == null)
    //        mesh = new Mesh();

    //    if ( mesh.vertices.Length != transform.childCount)
    //        mesh.vertices = new Vector3[transform.childCount];

    //    int cnt = 0;
    //    foreach (Transform go in transform)
    //    {
    //        if (cnt == 3)
    //            return;

    //        mesh.vertices[cnt++] = go.position;
    //    }

    //    Plane p = new Plane(mesh.vertices[0],mesh.vertices[1],mesh.vertices[2]);
    //    mesh.SetVertices()

    //}
    public static TrianglePainter CreateTrianglePainter(Triangle3D triangle, string name = "TrianglePainter")
    {
        GameObject go = new GameObject(name);

        go.transform.position = (triangle.a + triangle.b + triangle.c) / 3;

        TrianglePainter tp = go.AddComponent <TrianglePainter>();

        tp.color = Helper.RandomColor();
        GameObject p1 = new GameObject("p1");
        GameObject p2 = new GameObject("p2");
        GameObject p3 = new GameObject("p3");

        p1.transform.position = triangle.a;
        p2.transform.position = triangle.b;
        p3.transform.position = triangle.c;

        p1.transform.SetParent(go.transform);
        p2.transform.SetParent(go.transform);
        p3.transform.SetParent(go.transform);


        return(tp);
    }