comparison cmd/octree2contour/loader.go @ 726:5af9ab39e715

Renamed a few types to uppercase names to prepare the move to the octree package.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sat, 22 Sep 2018 21:34:12 +0200
parents 9db4ae29ded9
children
comparison
equal deleted inserted replaced
725:e0437ec46798 726:5af9ab39e715
1 package main 1 package main
2 2
3 import ( 3 import (
4 "bufio" 4 "bufio"
5 "encoding/binary" 5 "encoding/binary"
6 "io"
7 "log" 6 "log"
8 "math"
9 "os" 7 "os"
10 8
11 "github.com/golang/snappy" 9 "github.com/golang/snappy"
12 ) 10 )
13 11
14 func (v *vertex) read(r io.Reader) error { 12 func loadOctreeReader(r *bufio.Reader) (*Octree, error) {
15 var buf [8]byte 13 tree := new(Octree)
16 b := buf[:]
17 if _, err := io.ReadFull(r, b); err != nil {
18 return nil
19 }
20 v.x = math.Float64frombits(binary.LittleEndian.Uint64(b))
21 if _, err := io.ReadFull(r, b); err != nil {
22 return nil
23 }
24 v.y = math.Float64frombits(binary.LittleEndian.Uint64(b))
25 if _, err := io.ReadFull(r, b); err != nil {
26 return nil
27 }
28 v.z = math.Float64frombits(binary.LittleEndian.Uint64(b))
29 return nil
30 }
31 14
32 func loadOctreeReader(r *bufio.Reader) (*octree, error) { 15 if err := binary.Read(r, binary.LittleEndian, &tree.EPSG); err != nil {
33 tree := new(octree)
34
35 if err := binary.Read(r, binary.LittleEndian, &tree.epsg); err != nil {
36 return nil, err 16 return nil, err
37 } 17 }
38 18
39 log.Printf("EPSG: %d\n", tree.epsg) 19 log.Printf("EPSG: %d\n", tree.EPSG)
40 20
41 if err := tree.min.read(r); err != nil { 21 if err := tree.Min.read(r); err != nil {
42 return nil, err 22 return nil, err
43 } 23 }
44 24
45 if err := tree.max.read(r); err != nil { 25 if err := tree.Max.read(r); err != nil {
46 return nil, err 26 return nil, err
47 } 27 }
48 28
49 log.Printf("BBOX: [[%f, %f, %f], [%f, %f, %f]]\n", 29 log.Printf("BBOX: [[%f, %f, %f], [%f, %f, %f]]\n",
50 tree.min.x, tree.min.y, tree.min.z, 30 tree.Min.x, tree.Min.y, tree.Min.z,
51 tree.max.x, tree.max.y, tree.max.z) 31 tree.Max.x, tree.Max.y, tree.Max.z)
52 32
53 var numVertices uint32 33 var numVertices uint32
54 if err := binary.Read(r, binary.LittleEndian, &numVertices); err != nil { 34 if err := binary.Read(r, binary.LittleEndian, &numVertices); err != nil {
55 return nil, err 35 return nil, err
56 } 36 }
57 37
58 log.Printf("vertices: %d\n", numVertices) 38 log.Printf("vertices: %d\n", numVertices)
59 39
60 vertices := make([]vertex, numVertices) 40 vertices := make([]Vertex, numVertices)
61 tree.vertices = vertices 41 tree.vertices = vertices
62 42
63 for i := range vertices { 43 for i := range vertices {
64 if err := vertices[i].read(r); err != nil { 44 if err := vertices[i].read(r); err != nil {
65 return nil, err 45 return nil, err
116 } 96 }
117 97
118 return tree, nil 98 return tree, nil
119 } 99 }
120 100
121 func loadOctree(fname string) (*octree, error) { 101 func LoadOctree(fname string) (*Octree, error) {
122 102
123 f, err := os.Open(fname) 103 f, err := os.Open(fname)
124 if err != nil { 104 if err != nil {
125 return nil, err 105 return nil, err
126 } 106 }