private static void AddPoint(ushort[] distanceMatrix, int radius, int x, int y, int value, int[] output, int width)
{
int diameter = radius * 2 - 1;
for (int i = 0; i < diameter; i++)
{
int start = (y - radius + 1 + i) * width + x - radius;
for (int j = 0; j < diameter; j++)
{
if (j + x - radius < 0 || j + x - radius >= width)
{
continue;
}
int idx = start + j;
if (idx < 0 || idx >= output.Length)
{
continue;
}
output[idx] += distanceMatrix[i * diameter + j] * value;
}
}
}