annotate pkg/mesh/meshserialize_v1.go @ 5688:6281c18b109f sr-v2

Finsh serializing v2 meshes.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 12 Feb 2024 02:27:41 +0100
parents 8ff842858434
children da9720b4aa42
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5675
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 // This is Free Software under GNU Affero General Public License v >= 3.0
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2 // without warranty, see README.md and license for details.
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 //
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4 // SPDX-License-Identifier: AGPL-3.0-or-later
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 // License-Filename: LICENSES/AGPL-3.0.txt
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6 //
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7 // Copyright (C) 2024 by via donau
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8 // – Österreichische Wasserstraßen-Gesellschaft mbH
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9 // Software engineering by Intevation GmbH
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10 //
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 // Author(s):
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12 // * Sascha L. Teichmann <sascha.teichmann@intevation.de>
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 package mesh
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 import (
5676
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
17 "bufio"
5675
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 "encoding/binary"
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 "io"
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20 "math"
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 "gemma.intevation.de/gemma/pkg/log"
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 )
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 func (s *STRTree) serializeV1(w io.Writer) error {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 if err := s.tin.serializeV1(w); err != nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 if err := binary.Write(w, binary.LittleEndian, uint8(s.Entries)); err != nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 if err := s.serializeIndexV1(w); err != nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 }
5687
8ff842858434 More stubs for serializing v2.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5677
diff changeset
35 return s.serializeBBoxesV1(w)
5675
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38 func (s *STRTree) serializeBBoxesV1(w io.Writer) error {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 if err := binary.Write(w, binary.LittleEndian, int32(len(s.bboxes))); err != nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
44 var err error
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
46 write := func(v float64) {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
47 if err == nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
48 err = binary.Write(w, binary.LittleEndian, math.Float64bits(v))
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
49 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51 for _, box := range s.bboxes {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
52 write(box.X1)
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
53 write(box.Y1)
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
54 write(box.X2)
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
55 write(box.Y2)
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
56 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
57
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
58 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
59 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
60
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
61 func (s *STRTree) serializeIndexV1(w io.Writer) error {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
62
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
63 if err := binary.Write(w, binary.LittleEndian, int32(len(s.index))); err != nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
64 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
65 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
66
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
67 var buf [binary.MaxVarintLen32]byte
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
68
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
69 var last int32
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
70 var written int
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
71
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
72 for _, x := range s.index {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
73 delta := x - last
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
74 n := binary.PutVarint(buf[:], int64(delta))
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
75 for p := buf[:n]; len(p) > 0; p = p[n:] {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
76 var err error
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
77 if n, err = w.Write(p); err != nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
78 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
79 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
80 written += n
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
81 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
82 last = x
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
83 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
84
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
85 log.Infof("compressed index in bytes: %d %.2f (%d %.2f)\n",
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
86 written,
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
87 float64(written)/(1024*1024),
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
88 4*len(s.index),
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
89 float64(4*len(s.index))/(1024*1024),
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
90 )
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
91
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
92 return nil
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
93 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
94
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
95 func (t *Tin) serializeV1(w io.Writer) error {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
96
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
97 if err := binary.Write(w, binary.LittleEndian, t.EPSG); err != nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
98 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
99 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
100
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
101 if err := t.Min.Write(w); err != nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
102 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
103 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
104 if err := t.Max.Write(w); err != nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
105 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
106 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
107
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
108 if err := binary.Write(
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
109 w, binary.LittleEndian, uint32(len(t.Vertices))); err != nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
110 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
111 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
112
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
113 var err error
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
114 vwrite := func(v float64) {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
115 if err == nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
116 err = binary.Write(w, binary.LittleEndian, math.Float64bits(v))
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
117 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
118 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
119
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
120 for _, v := range t.Vertices {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
121 vwrite(v.X)
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
122 vwrite(v.Y)
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
123 vwrite(v.Z)
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
124 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
125
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
126 if err != nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
127 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
128 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
129 log.Infof("vertices %d (%d)\n", len(t.Vertices), len(t.Vertices)*3*8)
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
130
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
131 if err := binary.Write(
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
132 w, binary.LittleEndian, uint32(len(t.Triangles))); err != nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
133 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
134 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
135
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
136 var buf [binary.MaxVarintLen32]byte
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
137 var written int
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
138 var last int32
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
139 for _, triangle := range t.Triangles {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
140 for _, idx := range triangle {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
141 value := idx - last
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
142 n := binary.PutVarint(buf[:], int64(value))
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
143 for p := buf[:n]; len(p) > 0; p = p[n:] {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
144 var err error
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
145 if n, err = w.Write(p); err != nil {
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
146 return err
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
147 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
148 written += n
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
149 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
150 last = idx
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
151 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
152 }
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
153 log.Infof("compressed tin indices in bytes: %d (%d)\n",
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
154 written, 3*4*len(t.Triangles))
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
155
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
156 return nil
b8da63027b48 Started to separate mesh serialisation in different files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
157 }
5676
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
158
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
159 func (s *STRTree) deserializeBBoxesV1(r *bufio.Reader) error {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
160
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
161 var numBBoxes int32
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
162 if err := binary.Read(r, binary.LittleEndian, &numBBoxes); err != nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
163 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
164 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
165
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
166 bboxes := make([]Box2D, numBBoxes)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
167 s.bboxes = bboxes
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
168
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
169 var err error
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
170
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
171 read := func(v *float64) {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
172 if err == nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
173 err = binary.Read(r, binary.LittleEndian, v)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
174 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
175 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
176
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
177 for i := range bboxes {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
178 read(&bboxes[i].X1)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
179 read(&bboxes[i].Y1)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
180 read(&bboxes[i].X2)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
181 read(&bboxes[i].Y2)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
182 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
183
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
184 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
185 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
186
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
187 func (s *STRTree) deserializeIndexV1(r *bufio.Reader) error {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
188 var numIndex int32
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
189 if err := binary.Read(r, binary.LittleEndian, &numIndex); err != nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
190 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
191 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
192 index := make([]int32, numIndex)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
193 s.index = index
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
194
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
195 var last int32
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
196 for i := range index {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
197 v, err := binary.ReadVarint(r)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
198 if err != nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
199 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
200 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
201 value := int32(v) + last
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
202 index[i] = value
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
203 last = value
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
204 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
205
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
206 return nil
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
207 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
208
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
209 func (s *STRTree) deserializeV1(r *bufio.Reader) error {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
210 s.tin = new(Tin)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
211 if err := s.tin.deserializeV1(r); err != nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
212 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
213 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
214 var numEntries uint8
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
215 if err := binary.Read(r, binary.LittleEndian, &numEntries); err != nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
216 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
217 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
218 s.Entries = int(numEntries)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
219
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
220 if err := s.deserializeIndexV1(r); err != nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
221 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
222 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
223
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
224 return s.deserializeBBoxesV1(r)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
225 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
226
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
227 // deserializeV1 restores a TIN from a binary representation.
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
228 func (t *Tin) deserializeV1(r *bufio.Reader) error {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
229
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
230 if err := binary.Read(r, binary.LittleEndian, &t.EPSG); err != nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
231 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
232 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
233
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
234 log.Infof("EPSG: %d\n", t.EPSG)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
235
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
236 if err := t.Min.Read(r); err != nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
237 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
238 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
239
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
240 if err := t.Max.Read(r); err != nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
241 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
242 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
243
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
244 log.Infof("BBOX: [[%f, %f, %f], [%f, %f, %f]]\n",
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
245 t.Min.X, t.Min.Y, t.Min.Z,
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
246 t.Max.X, t.Max.Y, t.Max.Z)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
247
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
248 var numVertices uint32
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
249 if err := binary.Read(r, binary.LittleEndian, &numVertices); err != nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
250 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
251 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
252
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
253 log.Infof("vertices: %d\n", numVertices)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
254
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
255 vertices := make([]Vertex, numVertices)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
256 t.Vertices = vertices
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
257
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
258 for i := range vertices {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
259 if err := vertices[i].Read(r); err != nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
260 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
261 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
262 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
263
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
264 var numTriangles uint32
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
265 if err := binary.Read(r, binary.LittleEndian, &numTriangles); err != nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
266 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
267 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
268
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
269 log.Infof("triangles: %d\n", numTriangles)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
270
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
271 indices := make([]int32, 3*numTriangles)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
272 triangles := make([][]int32, numTriangles)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
273 t.Triangles = triangles
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
274
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
275 var last int32
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
276
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
277 for i := range triangles {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
278 tri := indices[:3]
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
279 indices = indices[3:]
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
280 triangles[i] = tri
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
281 for j := range tri {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
282 v, err := binary.ReadVarint(r)
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
283 if err != nil {
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
284 return err
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
285 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
286 value := int32(v) + last
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
287 tri[j] = value
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
288 last = value
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
289 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
290 }
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
291
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
292 return nil
d56e043bbbca More code moving.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 5675
diff changeset
293 }