public static double[] geodesicExactCompute(double[] vertices, uint[] faces, uint[] sources)
    {
        int vertexCount = vertices.Length / 3;

        double[]      distances     = new double[vertexCount];
        SetDistanceTo setDistanceTo = delegate(int x, double d) { distances[x] = d; };
        Log           log           = delegate(string s) { Debug.Log(s); };

        NativeMethods._geodesicExactCompute(
            doubleArrayConvertFromLocal(vertices), unsignedArrayConvertFromLocal(faces),
            unsignedArrayConvertFromLocal(sources),
            setDistanceTo, log
            );

        return(distances);
    }
 public static extern void _geodesicExactCompute(
     DoubleArray vertices, UnsignedArray faces,
     UnsignedArray sources,
     SetDistanceTo setDistanceTo, Log log
     );