createProxy method

  1. @override
int createProxy(
  1. AABB aabb,
  2. Object? userData
)
override

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;
}