misc/persolijn

osm-protobuf/src/main/java/osm/message/HeaderBBox.java in master
Repositories | Summary | Log | Files

HeaderBBox.java (922B) download


 1package osm.message;
 2
 3import java.util.Iterator;
 4
 5import protobuf.Message;
 6import protobuf.ProtobufReader;
 7
 8// required sint64 left = 1;
 9// required sint64 right = 2;
10// required sint64 top = 3;
11// required sint64 bottom = 4;
12public class HeaderBBox implements Message<double[]> {
13    public static final double NANO = 1e-9;
14
15    @Override
16    public double[] parse(Iterator<ProtobufReader> iter) {
17        double[] bbox = new double[4];
18
19        while (iter.hasNext()) {
20            ProtobufReader message = iter.next();
21            switch (message.tag()) {
22                case 1 -> bbox[0] = NANO * message.svarint64();
23                case 2 -> bbox[1] = NANO * message.svarint64();
24                case 3 -> bbox[2] = NANO * message.svarint64();
25                case 4 -> bbox[3] = NANO * message.svarint64();
26                default -> message.throwUnexpected();
27            }
28        }
29
30        return bbox;
31    }
32}