コード例 #1
0
 public CarColor4Def(string line)
     : base(line, 4)
 {
     for (var i = 0; i < Colors.Length; ++i) {
         Colors[i] = new ColorIndices(GetInt(i * 4 + 1), GetInt(i * 4 + 2), GetInt(i * 4 + 3), GetInt(i * 4 + 4));
     }
 }
コード例 #2
0
 public CarColor2Def(string line)
     : base(line, 2)
 {
     for (var i = 0; i < Colors.Length; ++i) {
         Colors[i] = new ColorIndices(GetInt(i * 2 + 1), GetInt(i * 2 + 2));
     }
 }
コード例 #3
0
    public void PushQuad(short vtColorIndex, ref Vector3 v1, ref Vector3 v2, ref Vector3 v3, ref Vector3 v4, bool renderWinding)
    {
        int lastIndex = Vertices.Count;

        Vertices.Add(v1);
        Vertices.Add(v2);
        Vertices.Add(v3);
        Vertices.Add(v4);

        if (renderWinding)
        {
            Triangles.Add(lastIndex + 0);
            Triangles.Add(lastIndex + 1);
            Triangles.Add(lastIndex + 2);

            Triangles.Add(lastIndex + 0);
            Triangles.Add(lastIndex + 2);
            Triangles.Add(lastIndex + 3);
        }
        else
        {
            Triangles.Add(lastIndex + 0);
            Triangles.Add(lastIndex + 2);
            Triangles.Add(lastIndex + 1);

            Triangles.Add(lastIndex + 0);
            Triangles.Add(lastIndex + 3);
            Triangles.Add(lastIndex + 2);
        }

        for (int i = 0; i < 4; ++i)
        {
            ColorIndices.Add(vtColorIndex);
        }
    }
コード例 #4
0
    public void PushTriangle(short vtColorIndex, ref Vector3 v1, ref Vector3 v2, ref Vector3 v3, bool renderWinding)
    {
        int lastIndex = Vertices.Count;

        Vertices.Add(v1);
        Vertices.Add(v2);
        Vertices.Add(v3);

        // winding is for RHS so apply reverse for Unity
        if (renderWinding)
        {
            Triangles.Add(lastIndex + 0);
            Triangles.Add(lastIndex + 1);
            Triangles.Add(lastIndex + 2);
        }
        else
        {
            Triangles.Add(lastIndex + 0);
            Triangles.Add(lastIndex + 2);
            Triangles.Add(lastIndex + 1);
        }

        for (int i = 0; i < 3; ++i)
        {
            ColorIndices.Add(vtColorIndex);
        }
    }
コード例 #5
0
    public void MergeChildBrick(bool accInvertNext, short color, Matrix4x4 trMatrix, BrickMeshInfo childMesh)
    {
        int vtCnt = Vertices.Count;

        for (int i = 0; i < childMesh.Vertices.Count; ++i)
        {
            Vertices.Add(trMatrix.MultiplyPoint3x4(childMesh.Vertices[i]));
        }

        for (int i = 0; i < childMesh.ColorIndices.Count; ++i)
        {
            ColorIndices.Add(LdConstant.GetEffectiveColorIndex(childMesh.ColorIndices[i], color));
        }

        bool inverted = accInvertNext ^ (trMatrix.determinant < 0);

        for (int i = 0; i < childMesh.Triangles.Count; i += 3)
        {
            if (inverted)
            {
                Triangles.Add(vtCnt + childMesh.Triangles[i]);
                Triangles.Add(vtCnt + childMesh.Triangles[i + 2]);
                Triangles.Add(vtCnt + childMesh.Triangles[i + 1]);
            }
            else
            {
                Triangles.Add(vtCnt + childMesh.Triangles[i]);
                Triangles.Add(vtCnt + childMesh.Triangles[i + 1]);
                Triangles.Add(vtCnt + childMesh.Triangles[i + 2]);
            }
        }
    }
コード例 #6
0
 public CarColor4Def(string line)
     : base(line, 4)
 {
     for (var i = 0; i < Colors.Length; ++i)
     {
         Colors[i] = new ColorIndices(GetInt(i * 4 + 1), GetInt(i * 4 + 2), GetInt(i * 4 + 3), GetInt(i * 4 + 4));
     }
 }
コード例 #7
0
 public CarColor2Def(string line)
     : base(line, 2)
 {
     for (var i = 0; i < Colors.Length; ++i)
     {
         Colors[i] = new ColorIndices(GetInt(i * 2 + 1), GetInt(i * 2 + 2));
     }
 }