createProxy method
Create a proxy. Provide a tight fitting AABB and a userData pointer.
Implementation
@override
int createProxy(AABB aabb, Object? userData) {
assert(aabb.isValid());
final node = _allocateNode();
final proxyId = node.id;
// Fatten the aabb
final nodeAABB = node.aabb;
nodeAABB.lowerBound.x = aabb.lowerBound.x - settings.aabbExtension;
nodeAABB.lowerBound.y = aabb.lowerBound.y - settings.aabbExtension;
nodeAABB.upperBound.x = aabb.upperBound.x + settings.aabbExtension;
nodeAABB.upperBound.y = aabb.upperBound.y + settings.aabbExtension;
node.userData = userData;
_insertLeaf(proxyId);
return proxyId;
}