Mercurial > gemma
diff cmd/tin2octree/builder.go @ 682:b17e3ce53285 octree
octree: simplified cube indexing.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 19 Sep 2018 20:55:02 +0200 |
parents | 7bb961d750b6 |
children | b0bd242ff821 |
line wrap: on
line diff
--- a/cmd/tin2octree/builder.go Wed Sep 19 18:39:03 2018 +0200 +++ b/cmd/tin2octree/builder.go Wed Sep 19 20:55:02 2018 +0200 @@ -14,14 +14,31 @@ } var cubes = [8][2]vertex{ - {{0.0, 0.0, 0.0}, {0.5, 0.5, 0.5}}, - {{0.5, 0.0, 0.0}, {1.0, 0.5, 0.5}}, - {{0.0, 0.0, 0.5}, {0.5, 0.5, 1.0}}, - {{0.0, 0.5, 0.5}, {0.5, 1.0, 1.0}}, - {{0.5, 0.0, 0.0}, {1.0, 0.5, 0.5}}, - {{0.5, 0.5, 0.0}, {1.0, 1.0, 0.5}}, - {{0.5, 0.0, 0.5}, {1.0, 0.5, 1.0}}, - {{0.5, 0.5, 0.5}, {1.0, 1.0, 1.0}}, + makeCube(0), + makeCube(1), + makeCube(2), + makeCube(3), + makeCube(4), + makeCube(5), + makeCube(6), + makeCube(7), +} + +func makeCube(i int) [2]vertex { + var d vertex + if i&1 == 1 { + d.x = 0.5 + } + if i&2 == 2 { + d.y = 0.5 + } + if i&4 == 4 { + 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), + } } func (tb *treeBuilder) build() {