Mercurial > gemma
diff pkg/octree/vertex.go @ 2472:db0e4ab57977 octree-diff
Turn new point cloud into WKB form of MultiPointZ.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 26 Feb 2019 12:22:04 +0100 |
parents | 63475c8e710e |
children | 620038ade708 |
line wrap: on
line diff
--- a/pkg/octree/vertex.go Tue Feb 26 11:34:15 2019 +0100 +++ b/pkg/octree/vertex.go Tue Feb 26 12:22:04 2019 +0100 @@ -924,9 +924,13 @@ binary.Write(buf, binary.LittleEndian, wkb.MultiPointZ) binary.Write(buf, binary.LittleEndian, uint32(len(mpz))) + perPoint := bytes.NewBuffer(make([]byte, 0, 1+4)) + binary.Write(perPoint, binary.LittleEndian, wkb.NDR) + binary.Write(perPoint, binary.LittleEndian, wkb.PointZ) + hdr := perPoint.Bytes() + for _, p := range mpz { - binary.Write(buf, binary.LittleEndian, wkb.NDR) - binary.Write(buf, binary.LittleEndian, wkb.PointZ) + buf.Write(hdr) binary.Write(buf, binary.LittleEndian, math.Float64bits(p.X)) binary.Write(buf, binary.LittleEndian, math.Float64bits(p.Y)) binary.Write(buf, binary.LittleEndian, math.Float64bits(p.Z))