50 lines
770 B
Cap'n Proto
50 lines
770 B
Cap'n Proto
using Cxx = import "./include/c++.capnp";
|
|
$Cxx.namespace("cereal");
|
|
|
|
@0xa086df597ef5d7a0;
|
|
|
|
# Geometry
|
|
struct Point {
|
|
x @0: Float64;
|
|
y @1: Float64;
|
|
z @2: Float64;
|
|
}
|
|
|
|
struct PolyLine {
|
|
points @0: List(Point);
|
|
}
|
|
|
|
# Map features
|
|
struct Lane {
|
|
id @0 :Text;
|
|
|
|
leftBoundary @1 :LaneBoundary;
|
|
rightBoundary @2 :LaneBoundary;
|
|
|
|
leftAdjacentId @3 :Text;
|
|
rightAdjacentId @4 :Text;
|
|
|
|
inboundIds @5 :List(Text);
|
|
outboundIds @6 :List(Text);
|
|
|
|
struct LaneBoundary {
|
|
polyLine @0 :PolyLine;
|
|
startHeading @1 :Float32; # WRT north
|
|
}
|
|
}
|
|
|
|
# Map tiles
|
|
struct TileSummary {
|
|
version @0 :Text;
|
|
updatedAt @1 :UInt64; # Millis since epoch
|
|
|
|
level @2 :UInt8;
|
|
x @3 :UInt16;
|
|
y @4 :UInt16;
|
|
}
|
|
|
|
struct MapTile {
|
|
summary @0 :TileSummary;
|
|
lanes @1 :List(Lane);
|
|
}
|