synchronize method
Implementation
@internal
void synchronize(
BroadPhase broadPhase,
Transform transform1,
Transform transform2,
) {
if (_proxyCount == 0) {
return;
}
for (var i = 0; i < _proxyCount; ++i) {
final proxy = proxies[i];
// Compute an AABB that covers the swept shape
// (may miss some rotation effect).
final aabb1 = _pool1;
final aab = _pool2;
shape.computeAABB(aabb1, transform1, proxy.childIndex);
shape.computeAABB(aab, transform2, proxy.childIndex);
proxy.aabb.lowerBound.x = aabb1.lowerBound.x < aab.lowerBound.x
? aabb1.lowerBound.x
: aab.lowerBound.x;
proxy.aabb.lowerBound.y = aabb1.lowerBound.y < aab.lowerBound.y
? aabb1.lowerBound.y
: aab.lowerBound.y;
proxy.aabb.upperBound.x = aabb1.upperBound.x > aab.upperBound.x
? aabb1.upperBound.x
: aab.upperBound.x;
proxy.aabb.upperBound.y = aabb1.upperBound.y > aab.upperBound.y
? aabb1.upperBound.y
: aab.upperBound.y;
_displacement.x = transform2.p.x - transform1.p.x;
_displacement.y = transform2.p.y - transform1.p.y;
broadPhase.moveProxy(proxy.proxyId, proxy.aabb, _displacement);
}
}