packFloats method
void
packFloats(
- dynamic data
Packs a (possibly nested) list of numbers as little-endian float32 in row-major order. Accepts scalars, or arbitrarily nested Lists of num.
Implementation
void packFloats(dynamic data) {
final List<double> flat = [];
void flatten(dynamic x) {
if (x is num) {
flat.add(x.toDouble());
} else if (x is List) {
for (final dynamic e in x) {
flatten(e);
}
} else {
throw ArgumentError(
'packFloats expects num or nested List<num>, got $x');
}
}
flatten(data);
final ByteData bd = ByteData(flat.length * 4);
for (int i = 0; i < flat.length; i++) {
bd.setFloat32(i * 4, flat[i], Endian.little);
}
_builder.add(bd.buffer.asUint8List());
}