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();
|
}
|
}
|