// Uses 4 calibration factors
    public float arwCalibChessboardCornersSimple(int numImages, string file_name, out float[] projectErrorResults)
    {
        projectErrorResults = new float[numImages];
        GCHandle handle  = GCHandle.Alloc(projectErrorResults, GCHandleType.Pinned);
        IntPtr   address = handle.AddrOfPinnedObject();
        float    averageProjectionError = ARNativePlugin.arwCalibChessboardCornersSimple(file_name, address);

        handle.Free();
        return(averageProjectionError);
    }