Example #1
0
    static public Mesh2DTriangle CreateBox(float size)
    {
        Mesh2DTriangle result = new Mesh2DTriangle();

        result.uv.Add(new Vector2(uv0, uv0));
        result.vertices.Add(new Vector3(-size, -size, 0));
        result.uv.Add(new Vector2(uv1, uv0));
        result.vertices.Add(new Vector3(size, -size, 0));
        result.uv.Add(new Vector2(uv1, uv1));
        result.vertices.Add(new Vector3(size, size, 0));

        result.uv.Add(new Vector2(uv1, uv1));
        result.vertices.Add(new Vector3(size, size, 0));
        result.uv.Add(new Vector2(uv1, uv0));
        result.vertices.Add(new Vector3(-size, size, 0));
        result.uv.Add(new Vector2(uv0, uv0));
        result.vertices.Add(new Vector3(-size, -size, 0));

        return(result);
    }
Example #2
0
    static public Mesh2DTriangle CreateLine(Pair2D pair, float lineWidth, float z = 0f)
    {
        Mesh2DTriangle result = new Mesh2DTriangle();

        float size = lineWidth / 6;
        float rot  = (float)Vector2D.Atan2(pair.A, pair.B);

        Vector2D A1 = new Vector2D(pair.A);
        Vector2D A2 = new Vector2D(pair.A);
        Vector2D B1 = new Vector2D(pair.B);
        Vector2D B2 = new Vector2D(pair.B);

        Vector2 scale = new Vector2(1f, 1f);

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

        result.uv.Add(new Vector2(0.5f + uv0, 0));
        result.vertices.Add(new Vector3((float)B1.x, (float)B1.y, z));
        result.uv.Add(new Vector2(uv1, 0));
        result.vertices.Add(new Vector3((float)A1.x, (float)A1.y, z));
        result.uv.Add(new Vector2(uv1, 1));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));
        result.uv.Add(new Vector2(0.5f + uv0, 1));
        result.vertices.Add(new Vector3((float)B2.x, (float)B2.y, z));

        A1 = new Vector2D(pair.A);
        A2 = new Vector2D(pair.A);
        Vector2D A3 = new Vector2D(pair.A);
        Vector2D A4 = new Vector2D(pair.A);

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

        A3.Push(rot + pi2, size, scale);
        A4.Push(rot - pi2, size, scale);
        A3.Push(rot + pi, -size, scale);
        A4.Push(rot + pi, -size, scale);

        result.uv.Add(new Vector2(uv0, 0));
        result.vertices.Add(new Vector3((float)A3.x, (float)A3.y, z));
        result.uv.Add(new Vector2(uv0, 1));
        result.vertices.Add(new Vector3((float)A4.x, (float)A4.y, z));
        result.uv.Add(new Vector2(0.5f - uv0, 1));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));
        result.uv.Add(new Vector2(0.5f - uv0, 0));
        result.vertices.Add(new Vector3((float)A1.x, (float)A1.y, z));

        B1 = new Vector2D(pair.B);
        B2 = new Vector2D(pair.B);
        Vector2D B3 = new Vector2D(pair.B);
        Vector2D B4 = new Vector2D(pair.B);

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

        B3.Push(rot + pi2, size, scale);
        B4.Push(rot - pi2, size, scale);
        B3.Push(rot + pi, size, scale);
        B4.Push(rot + pi, size, scale);

        result.uv.Add(new Vector2(uv0, 0));
        result.vertices.Add(new Vector3((float)B4.x, (float)B4.y, z));
        result.uv.Add(new Vector2(uv0, 1));
        result.vertices.Add(new Vector3((float)B3.x, (float)B3.y, z));
        result.uv.Add(new Vector2(0.5f - uv0, 1));
        result.vertices.Add(new Vector3((float)B1.x, (float)B1.y, z));
        result.uv.Add(new Vector2(0.5f - uv0, 0));
        result.vertices.Add(new Vector3((float)B2.x, (float)B2.y, z));

        return(result);
    }
Example #3
0
    static public Mesh2DTriangle CreateLineNew(Pair2D pair, Transform transform, float lineWidth, float z = 0f)
    {
        if (lineType == LineType.Legacy)
        {
            return(CreateLine(pair, lineWidth, z));
        }

        Mesh2DTriangle result = new Mesh2DTriangle();

        float xuv0 = 0;         //1f / 128;
        float xuv1 = 1f - xuv0;
        float yuv0 = 0;         //1f / 192;
        float yuv1 = 1f - xuv0;

        float size = lineWidth / 6;
        float rot  = (float)Vector2D.Atan2(pair.A, pair.B);

        Vector2D A1 = new Vector2D(pair.A);
        Vector2D A2 = new Vector2D(pair.A);
        Vector2D B1 = new Vector2D(pair.B);
        Vector2D B2 = new Vector2D(pair.B);

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

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

        result.uv.Add(new Vector2(xuv1 / 3, yuv1));
        result.vertices.Add(new Vector3((float)B1.x, (float)B1.y, z));
        result.uv.Add(new Vector2(1 - xuv1 / 3, yuv1));
        result.vertices.Add(new Vector3((float)A1.x, (float)A1.y, z));
        result.uv.Add(new Vector2(1 - xuv1 / 3, yuv0));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));

        result.uv.Add(new Vector2(1 - xuv1 / 3, yuv0));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));
        result.uv.Add(new Vector2(yuv1 / 3, xuv0));
        result.vertices.Add(new Vector3((float)B2.x, (float)B2.y, z));
        result.uv.Add(new Vector2(xuv1 / 3, yuv1));
        result.vertices.Add(new Vector3((float)B1.x, (float)B1.y, z));

        Vector2D A3 = A1.Copy();
        Vector2D A4 = A1.Copy();

        A3.Push(rot - pi2, size, scale);

        A3 = A1.Copy();
        A4 = A2.Copy();

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

        result.uv.Add(new Vector2(xuv1 / 3, yuv1));
        result.vertices.Add(new Vector3((float)A3.x, (float)A3.y, z));
        result.uv.Add(new Vector2(xuv0, yuv1));
        result.vertices.Add(new Vector3((float)A1.x, (float)A1.y, z));
        result.uv.Add(new Vector2(xuv0, yuv0));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));

        result.uv.Add(new Vector2(xuv0, yuv0));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));
        result.uv.Add(new Vector2(yuv1 / 3, xuv0));
        result.vertices.Add(new Vector3((float)A4.x, (float)A4.y, z));
        result.uv.Add(new Vector2(xuv1 / 3, yuv1));
        result.vertices.Add(new Vector3((float)A3.x, (float)A3.y, z));

        A1 = B1.Copy();
        A2 = B2.Copy();

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

        result.uv.Add(new Vector2(xuv0, yuv1));
        result.vertices.Add(new Vector3((float)B1.x, (float)B1.y, z));
        result.uv.Add(new Vector2(xuv1 / 3, yuv1));
        result.vertices.Add(new Vector3((float)A1.x, (float)A1.y, z));
        result.uv.Add(new Vector2(xuv1 / 3, yuv0));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));

        result.uv.Add(new Vector2(xuv1 / 3, yuv0));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));
        result.uv.Add(new Vector2(yuv0, xuv0));
        result.vertices.Add(new Vector3((float)B2.x, (float)B2.y, z));
        result.uv.Add(new Vector2(xuv0, yuv1));
        result.vertices.Add(new Vector3((float)B1.x, (float)B1.y, z));

        return(result);
    }
    static public Mesh2DTriangle CreateLineNew(Pair2D pair, float lineWidth, float z = 0f)
    {
        Mesh2DTriangle result = new Mesh2DTriangle();

        float xuv0 = 0;
        float xuv1 = 1f;

        float yuv0 = 0;
        float yuv1 = 1f;

        float size = lineWidth / 6;
        float rot  = (float)Vector2D.Atan2(pair.A, pair.B);

        Vector2D A1 = pair.A.Copy();
        Vector2D A2 = pair.A.Copy();
        Vector2D B1 = pair.B.Copy();
        Vector2D B2 = pair.B.Copy();

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

        result.uv.Add(new Vector2(xuv1 / 3, yuv1));
        result.vertices.Add(new Vector3((float)B1.x, (float)B1.y, z));
        result.uv.Add(new Vector2(1 - xuv1 / 3, yuv1));
        result.vertices.Add(new Vector3((float)A1.x, (float)A1.y, z));
        result.uv.Add(new Vector2(1 - xuv1 / 3, yuv0));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));

        result.uv.Add(new Vector2(1 - xuv1 / 3, yuv0));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));
        result.uv.Add(new Vector2(yuv1 / 3, xuv0));
        result.vertices.Add(new Vector3((float)B2.x, (float)B2.y, z));
        result.uv.Add(new Vector2(xuv1 / 3, yuv1));
        result.vertices.Add(new Vector3((float)B1.x, (float)B1.y, z));

        Vector2D A3 = A1.Copy();
        Vector2D A4 = A1.Copy();

        A3.Push(rot - pi2, size);

        A3 = A1.Copy();
        A4 = A2.Copy();

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

        result.uv.Add(new Vector2(xuv1 / 3, yuv1));
        result.vertices.Add(new Vector3((float)A3.x, (float)A3.y, z));
        result.uv.Add(new Vector2(xuv0, yuv1));
        result.vertices.Add(new Vector3((float)A1.x, (float)A1.y, z));
        result.uv.Add(new Vector2(xuv0, yuv0));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));

        result.uv.Add(new Vector2(xuv0, yuv0));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));
        result.uv.Add(new Vector2(yuv1 / 3, xuv0));
        result.vertices.Add(new Vector3((float)A4.x, (float)A4.y, z));
        result.uv.Add(new Vector2(xuv1 / 3, yuv1));
        result.vertices.Add(new Vector3((float)A3.x, (float)A3.y, z));

        A1 = B1.Copy();
        A2 = B2.Copy();

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

        result.uv.Add(new Vector2(xuv0, yuv1));
        result.vertices.Add(new Vector3((float)B1.x, (float)B1.y, z));
        result.uv.Add(new Vector2(xuv1 / 3, yuv1));
        result.vertices.Add(new Vector3((float)A1.x, (float)A1.y, z));
        result.uv.Add(new Vector2(xuv1 / 3, yuv0));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));

        result.uv.Add(new Vector2(xuv1 / 3, yuv0));
        result.vertices.Add(new Vector3((float)A2.x, (float)A2.y, z));
        result.uv.Add(new Vector2(yuv0, xuv0));
        result.vertices.Add(new Vector3((float)B2.x, (float)B2.y, z));
        result.uv.Add(new Vector2(xuv0, yuv1));
        result.vertices.Add(new Vector3((float)B1.x, (float)B1.y, z));

        return(result);
    }