b2w_castRayClosest function

  1. @Native<Int32 Function(Int64, Float, Float, Float, Float, Uint64, Uint64, Pointer<Int64>, Pointer<Float>, Pointer<Float>, Pointer<Float>, Pointer<Float>, Pointer<Float>)>(ffi.Int64, ffi.Float, ffi.Float, ffi.Float, ffi.Float, ffi.Uint64, ffi.Uint64, ffi.Pointer<ffi.Int64>, ffi.Pointer<ffi.Float>, ffi.Pointer<ffi.Float>, ffi.Pointer<ffi.Float>, ffi.Pointer<ffi.Float>, ffi.Pointer<ffi.Float>)>()
int b2w_castRayClosest(
  1. int worldHandle,
  2. double originX,
  3. double originY,
  4. double translationX,
  5. double translationY,
  6. int categoryBits,
  7. int maskBits,
  8. Pointer<Int64> outBody,
  9. Pointer<Float> outPointX,
  10. Pointer<Float> outPointY,
  11. Pointer<Float> outNormalX,
  12. Pointer<Float> outNormalY,
  13. Pointer<Float> outFraction,
)

Cast a ray and report the closest hit: the body, the point, the surface normal there, and how far along the ray it is (0 to 1). Returns 1 on a hit, 0 on none (the out-parameters are then not written). A ray passes the shapes it starts inside; b2w_castRayAll reports those.

Implementation

@ffi.Native<
  ffi.Int32 Function(
    ffi.Int64,
    ffi.Float,
    ffi.Float,
    ffi.Float,
    ffi.Float,
    ffi.Uint64,
    ffi.Uint64,
    ffi.Pointer<ffi.Int64>,
    ffi.Pointer<ffi.Float>,
    ffi.Pointer<ffi.Float>,
    ffi.Pointer<ffi.Float>,
    ffi.Pointer<ffi.Float>,
    ffi.Pointer<ffi.Float>,
  )
>()
external int b2w_castRayClosest(
  int worldHandle,
  double originX,
  double originY,
  double translationX,
  double translationY,
  int categoryBits,
  int maskBits,
  ffi.Pointer<ffi.Int64> outBody,
  ffi.Pointer<ffi.Float> outPointX,
  ffi.Pointer<ffi.Float> outPointY,
  ffi.Pointer<ffi.Float> outNormalX,
  ffi.Pointer<ffi.Float> outNormalY,
  ffi.Pointer<ffi.Float> outFraction,
);