readBodies method

  1. @override
void readBodies(
  1. List<int> bodies,
  2. BodyPoses3D out
)
override

bodies' poses, in order, into out; dead ones read as zeros.

Implementation

@override
void readBodies(List<int> bodies, BodyPoses3D out) {
  if (_gone || bodies.isEmpty) {
    out.set(0, const [], Float32List(0));
    return;
  }
  using((arena) {
    final ids = arena<Int64>(bodies.length);
    for (var i = 0; i < bodies.length; i++) {
      ids[i] = bodies[i];
    }
    final data = arena<Float>(bodies.length * BodyPoses3D.stride);
    jj_get_transforms(handle, ids, bodies.length, data);
    out.set(
      bodies.length,
      List.of(bodies),
      Float32List.fromList(
        data.asTypedList(bodies.length * BodyPoses3D.stride),
      ),
    );
  });
}