Blink.Utilities.VectorMath.axisCollision C# (CSharp) Method

axisCollision() public static method

public static axisCollision ( Vector2 aVerts, Vector2 bVerts, Vector2 axis ) : bool
aVerts Vector2
bVerts Vector2
axis Vector2
return bool
        public static bool axisCollision(Vector2[] aVerts, Vector2[] bVerts, Vector2 axis)
        {
            float aMin, aMax, bMin, bMax;
            float angle = angleBetweenVectors(aVerts[0], axis);
            float dist = (float)Math.Cos(angle) * aVerts[0].Length();
            aMin = dist;
            aMax = dist;
            for (int v = 1; v < aVerts.Length; v++)
            {
                angle = angleBetweenVectors(aVerts[v], axis);
                dist = (float)Math.Cos(angle) * aVerts[v].Length();
                if (dist < aMin)
                    aMin = dist;
                else if (dist > aMax)
                    aMax = dist;
            }

            angle = angleBetweenVectors(bVerts[0], axis);
            dist = (float)Math.Cos(angle) * bVerts[0].Length();
            bMin = dist;
            bMax = dist;
            for (int v = 1; v < bVerts.Length; v++)
            {
                angle = angleBetweenVectors(bVerts[v], axis);
                dist = (float)Math.Cos(angle) * bVerts[v].Length();
                if (dist < bMin)
                    bMin = dist;
                else if (dist > bMax)
                    bMax = dist;
            }

            return (aMin >= bMin && aMin <= bMax) || (aMax >= bMin && aMax <= bMax);
        }