raycastAll method

  1. @override
List<RaycastHit> raycastAll(
  1. Ray ray, {
  2. double maxDistance = double.infinity,
  3. int layerMask = 0xFFFFFFFF,
  4. bool includeFixed = true,
  5. bool includeKinematic = true,
  6. bool includeDynamic = true,
  7. bool includeTriggers = false,
})
override

Implementation

@override
List<RaycastHit> raycastAll(
  Ray ray, {
  double maxDistance = double.infinity,
  int layerMask = 0xFFFFFFFF,
  bool includeFixed = true,
  bool includeKinematic = true,
  bool includeDynamic = true,
  bool includeTriggers = false,
}) {
  final hits = <RaycastHit>[];
  for (final collider in _colliders) {
    if (!_passesFilters(
      collider,
      layerMask: layerMask,
      includeFixed: includeFixed,
      includeKinematic: includeKinematic,
      includeTriggers: includeTriggers,
    )) {
      continue;
    }
    final hit = rayHitsShape(
      ray,
      collider.shape,
      collider.worldPose,
      maxDistance,
    );
    if (hit == null) continue;
    hits.add(_wrapHit(collider, hit));
  }
  hits.sort((a, b) => a.distance.compareTo(b.distance));
  return hits;
}