liujie
2026-06-09 c96fbe6b0aeb413a17c429133ee6d81d138144b9
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.xiaopeng.map.dto;
 
import com.google.flatbuffers.FlatBufferBuilder;
import com.google.flatbuffers.Table;
 
/**
 * 对应 map_area_rtree.fbs 中的 RTree 表。
 * 只实现构建 FlatBuffer 所需的最小方法集合。
 */
public final class RTree extends Table {
 
    private RTree() {
    }
 
    public static int createRTree(FlatBufferBuilder builder, int nodesVectorOffset) {
        builder.startTable(1);
        addNodes(builder, nodesVectorOffset);
        return endRTree(builder);
    }
 
    public static void startRTree(FlatBufferBuilder builder) {
        builder.startTable(1);
    }
 
    public static void addNodes(FlatBufferBuilder builder, int nodesOffset) {
        builder.addOffset(0, nodesOffset, 0);
    }
 
    /**
     * 构建 nodes 向量。
     */
    public static int createNodesVector(FlatBufferBuilder builder, int[] data) {
        builder.startVector(4, data.length, 4);
        for (int i = data.length - 1; i >= 0; i--) {
            builder.addOffset(data[i]);
        }
        return builder.endVector();
    }
 
    public static void startNodesVector(FlatBufferBuilder builder, int numElems) {
        builder.startVector(4, numElems, 4);
    }
 
    public static int endRTree(FlatBufferBuilder builder) {
        return builder.endTable();
    }
}