FarseerPhysics.Dynamics.ContactManager.shouldCollide C# (CSharp) Method

shouldCollide() public static method

public static shouldCollide ( Fixture fixtureA, Fixture fixtureB ) : bool
fixtureA Fixture
fixtureB Fixture
return bool
		public static bool shouldCollide( Fixture fixtureA, Fixture fixtureB )
		{
			if( Settings.useFPECollisionCategories )
			{
				if( ( fixtureA.collisionGroup == fixtureB.collisionGroup ) && fixtureA.collisionGroup != 0 && fixtureB.collisionGroup != 0 )
					return false;

				if( ( ( fixtureA.collisionCategories & fixtureB.collidesWith ) == Category.None ) &
					( ( fixtureB.collisionCategories & fixtureA.collidesWith ) == Category.None ) )
					return false;

				if( fixtureA.isFixtureIgnored( fixtureB ) || fixtureB.isFixtureIgnored( fixtureA ) )
					return false;

				return true;
			}

			if( fixtureA.collisionGroup == fixtureB.collisionGroup && fixtureA.collisionGroup != 0 )
				return fixtureA.collisionGroup > 0;

			bool collide = ( fixtureA.collidesWith & fixtureB.collisionCategories ) != 0 &&
						   ( fixtureA.collisionCategories & fixtureB.collidesWith ) != 0;

			if( collide )
			{
				if( fixtureA.isFixtureIgnored( fixtureB ) || fixtureB.isFixtureIgnored( fixtureA ) )
					return false;
			}

			return collide;
		}