Exemple #1
0
        public void CreateLine(Pair2 pair, Vector3 transformScale, float lineWidth, float z = 0f)
        {
            float xuv0 = 0;
            float xuv1 = 1f - xuv0;
            float yuv0 = 0;
            float yuv1 = 1f - yuv0;

            float size = lineWidth / 6;
            float rot  = pair.a.Atan2(pair.b);

            Vector2 A1 = pair.a;
            Vector2 A2 = pair.a;
            Vector2 B1 = pair.b;
            Vector2 B2 = pair.b;

            Vector2 scale = new Vector2(1f / transformScale.x, 1f / transformScale.y);

            A1 = A1.Push(rot + pi2, size, scale);
            A2 = A2.Push(rot - pi2, size, scale);
            B1 = B1.Push(rot + pi2, size, scale);
            B2 = B2.Push(rot - pi2, size, scale);

            AddVertice(new Vector3(B1.x, B1.y, z));
            AddVertice(new Vector3(A1.x, A1.y, z));
            AddVertice(new Vector3(A2.x, A2.y, z));
            AddVertice(new Vector3(B2.x, B2.y, z));

            AddUV(new Vector2(xuv1 / 3, yuv1));
            AddUV(new Vector2(1 - xuv1 / 3, yuv1));
            AddUV(new Vector2(1 - xuv1 / 3, yuv0));
            AddUV(new Vector2(yuv1 / 3, xuv0));

            Vector2 A3 = A1;
            Vector2 A4 = A1;

            A3 = A1;
            A4 = A2;

            A1 = A1.Push(rot, size, scale);
            A2 = A2.Push(rot, size, scale);

            AddVertice(new Vector3(A3.x, A3.y, z));
            AddVertice(new Vector3(A1.x, A1.y, z));
            AddVertice(new Vector3(A2.x, A2.y, z));
            AddVertice(new Vector3(A4.x, A4.y, z));

            AddUV(new Vector2(xuv1 / 3, yuv1));
            AddUV(new Vector2(xuv0, yuv1));
            AddUV(new Vector2(xuv0, yuv0));
            AddUV(new Vector2(yuv1 / 3, xuv0));


            A1 = B1;
            A2 = B2;

            B1 = B1.Push(rot - Mathf.PI, size, scale);
            B2 = B2.Push(rot - Mathf.PI, size, scale);

            AddVertice(new Vector3(B1.x, B1.y, z));
            AddVertice(new Vector3(A1.x, A1.y, z));
            AddVertice(new Vector3(A2.x, A2.y, z));
            AddVertice(new Vector3(B2.x, B2.y, z));

            AddUV(new Vector2(xuv0, yuv1));
            AddUV(new Vector2(xuv1 / 3, yuv1));
            AddUV(new Vector2(xuv1 / 3, yuv0));
            AddUV(new Vector2(yuv0, xuv0));

            AddTriangle(tris + 0);
            AddTriangle(tris + 1);
            AddTriangle(tris + 2);

            AddTriangle(tris + 2);
            AddTriangle(tris + 3);
            AddTriangle(tris + 0);


            AddTriangle(tris + 4);
            AddTriangle(tris + 5);
            AddTriangle(tris + 6);

            AddTriangle(tris + 6);
            AddTriangle(tris + 7);
            AddTriangle(tris + 4);



            AddTriangle(tris + 8);
            AddTriangle(tris + 9);
            AddTriangle(tris + 10);

            AddTriangle(tris + 10);
            AddTriangle(tris + 11);
            AddTriangle(tris + 8);

            tris += 12;
        }