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() {