use of com.almasb.fxgl.physics.box2d.collision.broadphase.BroadPhase in project FXGL by AlmasB.
the class Body method setActive.
/**
* Set the active state of the body.
* An inactive body is not simulated and cannot be collided with or woken up.
* If you pass a flag of true, all fixtures will be added to the broad-phase.
* If you pass a flag of false, all fixtures will be removed from the broad-phase and all contacts will be destroyed.
* Fixtures and joints are otherwise unaffected.
* You may continue to create/destroy fixtures and joints on inactive bodies.
* Fixtures on an inactive body are implicitly inactive
* and will not participate in collisions, ray-casts, or queries.
* Joints connected to an inactive body are implicitly inactive.
* An inactive body is still owned by a World object and remains in the body list.
*
* @param flag active flag
*/
public void setActive(boolean flag) {
world.assertNotLocked();
if (flag == isActive()) {
return;
}
if (flag) {
m_flags |= e_activeFlag;
// Create all proxies.
BroadPhase broadPhase = world.getContactManager().broadPhase;
for (Fixture f : fixtures) {
f.createProxies(broadPhase, m_xf);
}
// Contacts are created the next time step.
} else {
m_flags &= ~e_activeFlag;
// Destroy all proxies.
BroadPhase broadPhase = world.getContactManager().broadPhase;
for (Fixture f : fixtures) {
f.destroyProxies(broadPhase);
}
destroyAttachedContacts();
}
}
Aggregations