public void CalculateTriangleMatrices(int index)
        {
            var A = srcMesh.matricesForTriangle[index].A;
            var C = srcMesh.matricesForTriangle[index].C;

            var   inverseMat = srcMesh.InverseVertexMatrices[index];
            var   coefv1     = TriangleUtils.CalculateCoefficientV1(srcMesh.InverseVertexMatrices[index]);
            float coef       = 0;

            int v1 = index * 3 + 0;
            int v2 = index * 3 + 1;
            int v3 = index * 3 + 2;

            for (int i = 0, row = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++, row++)
                {
                    C[row] = 0;

                    /* coefficient of v1: -(a[0,i] + a[1,i] + a[2,i]) */
                    coef = coefv1[j];

                    if (!vertexConstraintList.ContainsKey(srcMesh.TriangleList[v1]))
                    {
                        A[row, 0] = coef;
                    }
                    else
                    {
                        var tgtVertIdx = vertexConstraintList[srcMesh.TriangleList[v1]];
                        C[row] -= coef * tgtMesh.VertexList[tgtVertIdx][i];
                    }


                    /* coefficient of v2: a[0,i]*/
                    coef = inverseMat[0, j];
                    if (!vertexConstraintList.ContainsKey(srcMesh.TriangleList[v2]))
                    {
                        A[row, 1] = coef;
                    }
                    else
                    {
                        var tgtVertIdx = vertexConstraintList[srcMesh.TriangleList[v2]];
                        C[row] -= coef * tgtMesh.VertexList[tgtVertIdx][i];
                    }

                    /* coefficient of v3: a[1,i] */
                    coef = inverseMat[1, j];
                    if (!vertexConstraintList.ContainsKey(srcMesh.TriangleList[v3]))
                    {
                        A[row, 2] = coef;
                    }
                    else
                    {
                        var tgtVertIdx = vertexConstraintList[srcMesh.TriangleList[v3]];
                        C[row] -= coef * tgtMesh.VertexList[tgtVertIdx][i];
                    }

                    /* coefficient of v4: a[2,i] */
                    A[row, 3] = inverseMat[2, j];
                }
            }
        }