From d684d94f55acfda5ed515ceb2a2282af4cadf935 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 7 Mar 2018 14:53:07 -0800 Subject: [PATCH] Pass a node ID around as part of the serial feature representation --- geometry.cpp | 3 +++ geometry.hpp | 4 +++- serial.cpp | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/geometry.cpp b/geometry.cpp index 7a00a29..c17460a 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -46,9 +46,11 @@ drawvec decode_geometry(FILE *meta, long long *geompos, int z, unsigned tx, unsi if (d.op == VT_MOVETO || d.op == VT_LINETO) { long long dx, dy; + long long id; deserialize_long_long_io(meta, &dx, geompos); deserialize_long_long_io(meta, &dy, geompos); + deserialize_long_long_io(meta, &id, geompos); wx += dx * (1 << geometry_scale); wy += dy * (1 << geometry_scale); @@ -76,6 +78,7 @@ drawvec decode_geometry(FILE *meta, long long *geompos, int z, unsigned tx, unsi d.x = wwx; d.y = wwy; + d.id = id; } out.push_back(d); diff --git a/geometry.hpp b/geometry.hpp index cd1fb9b..7f01497 100644 --- a/geometry.hpp +++ b/geometry.hpp @@ -21,12 +21,14 @@ struct draw { signed char op; long long y : 40; signed char necessary; + long id; draw(int nop, long long nx, long long ny) : x(nx), op(nop), y(ny), - necessary(0) { + necessary(0), + id(0) { } draw() diff --git a/serial.cpp b/serial.cpp index ef6fcb9..2280cb4 100644 --- a/serial.cpp +++ b/serial.cpp @@ -174,6 +174,7 @@ static void write_geometry(drawvec const &dv, long long *fpos, FILE *out, const serialize_byte(out, dv[i].op, fpos, fname); serialize_long_long(out, dv[i].x - wx, fpos, fname); serialize_long_long(out, dv[i].y - wy, fpos, fname); + serialize_long_long(out, dv[i].id, fpos, fname); wx = dv[i].x; wy = dv[i].y; } else {