private static Point? FindCamera(Point p, List<Blob> blobs)
{
var diff = 2;
var antidiff = diff*-1;
foreach (var blob in blobs)
{
if (p.DistanceTo(blob.CenterOfGravity) < 1) continue;
if (InRange(((int) (blob.CenterOfGravity.Y - p.Y)), antidiff, diff))
{
foreach (var blob2 in blobs)
{
if (blob.CenterOfGravity.DistanceTo(blob2.CenterOfGravity) < 1) continue;
if (InRange(((int) (blob2.CenterOfGravity.X - blob.CenterOfGravity.X)), antidiff, diff))
{
foreach (var blob3 in blobs)
{
if (blob2.CenterOfGravity.DistanceTo(blob3.CenterOfGravity) < 1) continue;
if (InRange(((int) (blob3.CenterOfGravity.Y - blob2.CenterOfGravity.Y)), antidiff, diff))
{
if (InRange(((int) (blob3.CenterOfGravity.X - p.X)), antidiff, diff))
{
float xCent = 0, yCent = 0;
var sum = p + blob.CenterOfGravity + blob2.CenterOfGravity +
blob3.CenterOfGravity;
xCent = sum.X/4;
yCent = sum.Y/4;
return new Point(xCent, yCent);
}
}
}
}
}
}
}
return null;
}