Mercurial > gemma
diff cmd/tin2octree/builder.go @ 729:b0bd242ff821
Removed vertex duplicate.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Sat, 22 Sep 2018 22:14:31 +0200 |
parents | b17e3ce53285 |
children |
line wrap: on
line diff
--- a/cmd/tin2octree/builder.go Sat Sep 22 21:58:15 2018 +0200 +++ b/cmd/tin2octree/builder.go Sat Sep 22 22:14:31 2018 +0200 @@ -4,6 +4,8 @@ "encoding/binary" "io" "log" + + "gemma.intevation.de/gemma/pkg/octree" ) type treeBuilder struct { @@ -13,7 +15,7 @@ index []int32 } -var cubes = [8][2]vertex{ +var cubes = [8][2]octree.Vertex{ makeCube(0), makeCube(1), makeCube(2), @@ -24,20 +26,20 @@ makeCube(7), } -func makeCube(i int) [2]vertex { - var d vertex +func makeCube(i int) [2]octree.Vertex { + var d octree.Vertex if i&1 == 1 { - d.x = 0.5 + d.X = 0.5 } if i&2 == 2 { - d.y = 0.5 + d.Y = 0.5 } if i&4 == 4 { - d.z = 0.5 + d.Z = 0.5 } - return [2]vertex{ - vertex{0.0, 0.0, 0.0}.add(d), - vertex{0.5, 0.5, 0.5}.add(d), + return [2]octree.Vertex{ + octree.Vertex{0.0, 0.0, 0.0}.Add(d), + octree.Vertex{0.5, 0.5, 0.5}.Add(d), } } @@ -60,7 +62,7 @@ func (tb *treeBuilder) buildRecursive( triangles []int32, - min, max vertex, + min, max octree.Vertex, depth int, ) int32 { if len(triangles) <= 16 || depth > 8 { @@ -77,12 +79,12 @@ 0, 0, 0, 0, 0, 0, 0, 0) - bbox := interpolate(min, max) + bbox := octree.Interpolate(min, max) - bboxes := make([][2]vertex, len(cubes)) + bboxes := make([][2]octree.Vertex, len(cubes)) for i := range cubes { - bboxes[i] = [2]vertex{ + bboxes[i] = [2]octree.Vertex{ bbox(cubes[i][0]), bbox(cubes[i][1]), } @@ -97,15 +99,15 @@ v2 := tb.t.vertices[triangle[2]] l := v0 - l.minimize(v1) - l.minimize(v2) + l.Minimize(v1) + l.Minimize(v2) h := v0 - h.maximize(v1) - h.maximize(v2) + h.Maximize(v1) + h.Maximize(v2) for i := range bboxes { - if !(h.less(bboxes[i][0]) || bboxes[i][1].less(l)) { + if !(h.Less(bboxes[i][0]) || bboxes[i][1].Less(l)) { quandrants[i] = append(quandrants[i], tri) } }