- Object
-
- WorldCollisionData<T>
-
- Type Parameters:
T
- thePhysicsBody
type
- All Implemented Interfaces:
Shiftable
,BroadphaseCollisionData<T,BodyFixture>
,CollisionData<T,BodyFixture>
,ContactCollisionData<T>
,ManifoldCollisionData<T,BodyFixture>
,NarrowphaseCollisionData<T,BodyFixture>
public class WorldCollisionData<T extends PhysicsBody> extends Object implements ContactCollisionData<T>
Represents the collision data for theWorld
class.This will track the broadphase, narrowphase, manifold generation, and contact constraint stages of collision detection. Use the
isBroadphaseCollision()
and similar methods to determine the progress of the collision.- Since:
- 4.0.0
- Version:
- 4.0.0
- Author:
- William Bittle
-
-
Constructor Summary
Constructors Constructor Description WorldCollisionData(CollisionPair<T,BodyFixture> pair)
Minimal constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description T
getBody1()
Returns the firstCollisionBody
.T
getBody2()
Returns the secondCollisionBody
.ContactConstraint<T>
getContactConstraint()
Returns theContactConstraint
.BodyFixture
getFixture1()
Returns the firstFixture
.BodyFixture
getFixture2()
Returns the secondFixture
.Manifold
getManifold()
Returns theManifold
of the collision.CollisionPair<T,BodyFixture>
getPair()
Returns the collision pair.Penetration
getPenetration()
Returns thePenetration
.boolean
isBroadphaseCollision()
Returns true if theCollisionPair
is a broadphase collision.boolean
isContactConstraintCollision()
Returns true if theCollisionPair
is a contact constraint collision.boolean
isManifoldCollision()
Returns true if theCollisionPair
is a manifold collision.boolean
isNarrowphaseCollision()
Returns true if theCollisionPair
is a narrowphase collision.void
reset()
Resets the data in this object to prepare for use in the next detection step.void
setBroadphaseCollision(boolean flag)
Set to true if theCollisionPair
was detected by theBroadphaseDetector
and it was allowed to continue to theNarrowphaseDetector
stage.void
setContactConstraintCollision(boolean flag)
Set to true if theCollisionPair
created aContactConstraint
and interaction edge.void
setManifoldCollision(boolean flag)
Set to true if theCollisionPair
was detected by theManifoldSolver
.void
setNarrowphaseCollision(boolean flag)
Set to true if theCollisionPair
was detected by theNarrowphaseDetector
and it was allowed to continue to theManifoldSolver
stage.void
shift(Vector2 shift)
Translates the object to match the given coordinate shift.
-
-
-
Constructor Detail
-
WorldCollisionData
public WorldCollisionData(CollisionPair<T,BodyFixture> pair)
Minimal constructor.- Parameters:
pair
- the collision pair
-
-
Method Detail
-
getPair
public CollisionPair<T,BodyFixture> getPair()
Description copied from interface:BroadphaseCollisionData
Returns the collision pair.- Specified by:
getPair
in interfaceBroadphaseCollisionData<T extends PhysicsBody,BodyFixture>
- Returns:
CollisionPair
-
getBody1
public T getBody1()
Description copied from interface:BroadphaseCollisionData
Returns the firstCollisionBody
.- Specified by:
getBody1
in interfaceBroadphaseCollisionData<T extends PhysicsBody,BodyFixture>
- Returns:
- T
-
getFixture1
public BodyFixture getFixture1()
Description copied from interface:BroadphaseCollisionData
Returns the firstFixture
.- Specified by:
getFixture1
in interfaceBroadphaseCollisionData<T extends PhysicsBody,BodyFixture>
- Returns:
- E
-
getBody2
public T getBody2()
Description copied from interface:BroadphaseCollisionData
Returns the secondCollisionBody
.- Specified by:
getBody2
in interfaceBroadphaseCollisionData<T extends PhysicsBody,BodyFixture>
- Returns:
- T
-
getFixture2
public BodyFixture getFixture2()
Description copied from interface:BroadphaseCollisionData
Returns the secondFixture
.- Specified by:
getFixture2
in interfaceBroadphaseCollisionData<T extends PhysicsBody,BodyFixture>
- Returns:
- E
-
shift
public void shift(Vector2 shift)
Description copied from interface:Shiftable
Translates the object to match the given coordinate shift.
-
getManifold
public Manifold getManifold()
Description copied from interface:ManifoldCollisionData
Returns theManifold
of the collision.- Specified by:
getManifold
in interfaceManifoldCollisionData<T extends PhysicsBody,BodyFixture>
- Returns:
Manifold
-
getPenetration
public Penetration getPenetration()
Description copied from interface:NarrowphaseCollisionData
Returns thePenetration
.- Specified by:
getPenetration
in interfaceNarrowphaseCollisionData<T extends PhysicsBody,BodyFixture>
- Returns:
Penetration
-
getContactConstraint
public ContactConstraint<T> getContactConstraint()
Description copied from interface:ContactCollisionData
Returns theContactConstraint
.- Specified by:
getContactConstraint
in interfaceContactCollisionData<T extends PhysicsBody>
- Returns:
ContactConstraint
-
isBroadphaseCollision
public boolean isBroadphaseCollision()
Description copied from interface:CollisionData
Returns true if theCollisionPair
is a broadphase collision.- Specified by:
isBroadphaseCollision
in interfaceCollisionData<T extends PhysicsBody,BodyFixture>
- Returns:
- boolean
- See Also:
CollisionData.setBroadphaseCollision(boolean)
-
setBroadphaseCollision
public void setBroadphaseCollision(boolean flag)
Description copied from interface:CollisionData
Set to true if theCollisionPair
was detected by theBroadphaseDetector
and it was allowed to continue to theNarrowphaseDetector
stage.More specifically, set to true if all of the following conditions were met:
- The
CollisionPair
was detected by theBroadphaseDetector
or was detected in a prior iteration - The
CollisionPair
was confirmed to have theirAABB
s still overlapping - The
CollisionPair
was NOT filtered by theBroadphaseFilter
- The
CollisionPair
was NOT filtered by any of theCollisionListener.collision(BroadphaseCollisionData)
method calls
- Specified by:
setBroadphaseCollision
in interfaceCollisionData<T extends PhysicsBody,BodyFixture>
- Parameters:
flag
- true if the above conditions are met
- The
-
isNarrowphaseCollision
public boolean isNarrowphaseCollision()
Description copied from interface:CollisionData
Returns true if theCollisionPair
is a narrowphase collision.- Specified by:
isNarrowphaseCollision
in interfaceCollisionData<T extends PhysicsBody,BodyFixture>
- Returns:
- boolean
- See Also:
CollisionData.setNarrowphaseCollision(boolean)
-
setNarrowphaseCollision
public void setNarrowphaseCollision(boolean flag)
Description copied from interface:CollisionData
Set to true if theCollisionPair
was detected by theNarrowphaseDetector
and it was allowed to continue to theManifoldSolver
stage.More specifically, set to true if all of the following conditions were met:
- The
CollisionPair
was detected by theNarrowphaseDetector
to be overlapping - The
CollisionPair
'sPenetration.getDepth()
is greater than zero - The
CollisionPair
was NOT filtered by any of theCollisionListener.collision(NarrowphaseCollisionData)
method calls
- Specified by:
setNarrowphaseCollision
in interfaceCollisionData<T extends PhysicsBody,BodyFixture>
- Parameters:
flag
- true if the above conditions are met
- The
-
isManifoldCollision
public boolean isManifoldCollision()
Description copied from interface:CollisionData
Returns true if theCollisionPair
is a manifold collision.- Specified by:
isManifoldCollision
in interfaceCollisionData<T extends PhysicsBody,BodyFixture>
- Returns:
- boolean
- See Also:
CollisionData.setManifoldCollision(boolean)
-
setManifoldCollision
public void setManifoldCollision(boolean flag)
Description copied from interface:CollisionData
Set to true if theCollisionPair
was detected by theManifoldSolver
.More specifically, set to true if all of the following conditions were met:
- The
CollisionPair
was detected by theManifoldSolver
- The
CollisionPair
'sManifold
has at least one point - The
CollisionPair
was NOT filtered by any of theCollisionListener.collision(ManifoldCollisionData)
method calls
- Specified by:
setManifoldCollision
in interfaceCollisionData<T extends PhysicsBody,BodyFixture>
- Parameters:
flag
- true if the above conditions are met
- The
-
isContactConstraintCollision
public boolean isContactConstraintCollision()
Description copied from interface:ContactCollisionData
Returns true if theCollisionPair
is a contact constraint collision.- Specified by:
isContactConstraintCollision
in interfaceContactCollisionData<T extends PhysicsBody>
- Returns:
- boolean
- See Also:
ContactCollisionData.setContactConstraintCollision(boolean)
-
setContactConstraintCollision
public void setContactConstraintCollision(boolean flag)
Description copied from interface:ContactCollisionData
Set to true if theCollisionPair
created aContactConstraint
and interaction edge.This will always be true if
CollisionData.isManifoldCollision()
is true.- Specified by:
setContactConstraintCollision
in interfaceContactCollisionData<T extends PhysicsBody>
- Parameters:
flag
- true if the above conditions are met- See Also:
CollisionData.setManifoldCollision(boolean)
-
reset
public void reset()
Description copied from interface:CollisionData
Resets the data in this object to prepare for use in the next detection step.- Specified by:
reset
in interfaceCollisionData<T extends PhysicsBody,BodyFixture>
-
-