FarseerPhysics.Common.Decomposition.FlipcodeDecomposer.InsideTriangle C# (CSharp) Method

InsideTriangle() private static method

Check if the point P is inside the triangle defined by the points A, B, C
private static InsideTriangle ( Vector2 &a, Vector2 &b, Vector2 &c, Vector2 &p ) : bool
a Microsoft.Xna.Framework.Vector2 The A point.
b Microsoft.Xna.Framework.Vector2 The B point.
c Microsoft.Xna.Framework.Vector2 The C point.
p Microsoft.Xna.Framework.Vector2 The point to be tested.
return bool
        private static bool InsideTriangle(ref Vector2 a, ref Vector2 b, ref Vector2 c, ref Vector2 p)
        {
            //A cross bp
            float abp = (c.X - b.X) * (p.Y - b.Y) - (c.Y - b.Y) * (p.X - b.X);

            //A cross ap
            float aap = (b.X - a.X) * (p.Y - a.Y) - (b.Y - a.Y) * (p.X - a.X);

            //b cross cp
            float bcp = (a.X - c.X) * (p.Y - c.Y) - (a.Y - c.Y) * (p.X - c.X);

            return ((abp >= 0.0f) && (bcp >= 0.0f) && (aap >= 0.0f));
        }