raycast method

  1. @override
List<QueryHit3D> raycast(
  1. Vector3 origin,
  2. Vector3 direction, {
  3. QueryFilter3D filter = QueryFilter3D.all,
  4. bool allHits = false,
})
override

Casts a ray from origin along direction, whose length is the ray's. The closest hit, or every hit nearest first when allHits.

Implementation

@override
List<QueryHit3D> raycast(
  Vector3 origin,
  Vector3 direction, {
  QueryFilter3D filter = QueryFilter3D.all,
  bool allHits = false,
}) {
  if (_gone) return const [];
  _f
    ..[0] = origin.x
    ..[1] = origin.y
    ..[2] = origin.z
    ..[3] = direction.x
    ..[4] = direction.y
    ..[5] = direction.z;
  final flags = _flags(filter, allHits);
  return _query(
    (hits, capacity) => jj_raycast(
      handle,
      _f,
      _f + 3,
      filter.layerMask,
      filter.ignoreBody,
      flags,
      hits,
      allHits ? capacity : 1,
    ),
    allHits,
  );
}