Module technology.sola.engine
Class CollisionDetectionSystem
java.lang.Object
technology.sola.ecs.EcsSystem
technology.sola.engine.physics.system.CollisionDetectionSystem
@NullMarked
public class CollisionDetectionSystem
extends technology.sola.ecs.EcsSystem
The CollisionDetectionSystem class is a
EcsSystem
implementation that handles checking if a World
has any Entity
with ColliderComponent
s that are colliding with each other. If a
collision is detected either a SensorEvent
or a CollisionEvent
will be emitted depending on if either
collider ColliderComponent.isSensor()
or not.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Collision detection order is one after thePhysicsSystem.ORDER
. -
Constructor Summary
ConstructorsConstructorDescriptionCollisionDetectionSystem
(EventHub eventHub) Creates a CollisionDetectionSystem that uses an auto sizingQuadTreeCollisionDetectionBroadPhase
.CollisionDetectionSystem
(EventHub eventHub, CollisionDetectionBroadPhase collisionDetectionBroadPhase) Creates a CollisionDetectionSystem with customCollisionDetectionBroadPhase
algorithm. -
Method Summary
Modifier and TypeMethodDescriptionint
getOrder()
void
setCollisionDetectionBroadPhase
(CollisionDetectionBroadPhase collisionDetectionBroadPhase) Sets theCollisionDetectionBroadPhase
algorithm used for collision detection.void
update
(technology.sola.ecs.World world, float deltaTime) Methods inherited from class technology.sola.ecs.EcsSystem
isActive, setActive
-
Field Details
-
ORDER
public static final int ORDERCollision detection order is one after thePhysicsSystem.ORDER
.- See Also:
-
-
Constructor Details
-
CollisionDetectionSystem
Creates a CollisionDetectionSystem that uses an auto sizingQuadTreeCollisionDetectionBroadPhase
.- Parameters:
eventHub
-EventHub
instance
-
CollisionDetectionSystem
public CollisionDetectionSystem(EventHub eventHub, CollisionDetectionBroadPhase collisionDetectionBroadPhase) Creates a CollisionDetectionSystem with customCollisionDetectionBroadPhase
algorithm.- Parameters:
eventHub
- theEventHub
instancecollisionDetectionBroadPhase
- theCollisionDetectionBroadPhase
algorithm
-
-
Method Details
-
getOrder
public int getOrder()- Overrides:
getOrder
in classtechnology.sola.ecs.EcsSystem
-
update
public void update(technology.sola.ecs.World world, float deltaTime) - Specified by:
update
in classtechnology.sola.ecs.EcsSystem
-
getCollisionDetectionBroadPhase
- Returns:
- the
CollisionDetectionBroadPhase
currently being used
-
setCollisionDetectionBroadPhase
public void setCollisionDetectionBroadPhase(CollisionDetectionBroadPhase collisionDetectionBroadPhase) Sets theCollisionDetectionBroadPhase
algorithm used for collision detection.- Parameters:
collisionDetectionBroadPhase
- the new broad phase algorithm to use
-