示例#1
0
        public static bool Collision(ref Contact contact)
        {
            switch (contact.FixtureA.Collider.Type)
            {
            case ColliderType.CIRCLE:
                return(CircleCollision.Collision(ref contact));

            case ColliderType.SEGMENT:
                return(SegmentCollision.Collision(ref contact));

            case ColliderType.POLYGON:
                return(PolygonCollisionSAT.Collision(ref contact));

            default:
                throw new Exception("Collider type is not supported");
            }
        }
示例#2
0
        public static bool CircleVsPolygon(ref Contact contact)
        {
            Fixture.Swap(ref contact.FixtureA, ref contact.FixtureB);

            return(PolygonCollisionSAT.PolygonVsCircle(ref contact));
        }
示例#3
0
        internal static bool SegmentVsPolygon(ref Contact contact)
        {
            Fixture.Swap(ref contact.FixtureA, ref contact.FixtureB);

            return(PolygonCollisionSAT.PolygonVsSegment(ref contact));
        }