private static int CountIntersections(Vector3 v, Vector3 dist, float length)
{
v += (Vector3) (dist * 0.01f);
if (!kDebug)
{
return (Physics.RaycastAll(v, dist, length, 0x20000000).Length + Physics.RaycastAll(v + ((Vector3) (dist * length)), -dist, length, 0x20000000).Length);
}
RaycastHit[] hitArray = Physics.RaycastAll(v, dist, length, 0x20000000);
int num2 = hitArray.Length;
float distance = 0f;
if (num2 > 0)
{
distance = hitArray[hitArray.Length - 1].distance;
}
hitArray = Physics.RaycastAll(v + ((Vector3) (dist * length)), -dist, length, 0x20000000);
if (hitArray.Length > 0)
{
float num4 = length - hitArray[0].distance;
if (num4 > distance)
{
distance = num4;
}
}
return (num2 + hitArray.Length);
}