/
set_up_towns.dart
29 lines (24 loc) · 951 Bytes
/
set_up_towns.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import 'dart:ffi';
import 'package:ffi/ffi.dart';
import '../ffi_core.dart';
import '../models/arrays.dart';
void setUpTowns(List<List<int>> points, List<int> towns) {
final execute = lookup<
NativeFunction<
Void Function(Pointer<IntArray>, Pointer<IntArray>,
Pointer<IntArray>)>>('setUpTowns')
.asFunction<
void Function(
Pointer<IntArray>, Pointer<IntArray>, Pointer<IntArray>)>();
Arena arena = Arena();
Pointer<IntArray> positionX = IntArray.create(arena, points.length);
Pointer<IntArray> positionY = IntArray.create(arena, points.length);
Pointer<IntArray> townsPriority = IntArray.create(arena, points.length);
for (int i = 0; i < points.length; i++) {
positionX.ref.data[i] = points[i][0];
positionY.ref.data[i] = points[i][1];
townsPriority.ref.data[i] = towns[i];
}
execute(positionX, positionY, townsPriority);
arena.releaseAll();
}