comparison 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
comparison
equal deleted inserted replaced
681:a8d32a11b113 682:b17e3ce53285
12 leaves int 12 leaves int
13 index []int32 13 index []int32
14 } 14 }
15 15
16 var cubes = [8][2]vertex{ 16 var cubes = [8][2]vertex{
17 {{0.0, 0.0, 0.0}, {0.5, 0.5, 0.5}}, 17 makeCube(0),
18 {{0.5, 0.0, 0.0}, {1.0, 0.5, 0.5}}, 18 makeCube(1),
19 {{0.0, 0.0, 0.5}, {0.5, 0.5, 1.0}}, 19 makeCube(2),
20 {{0.0, 0.5, 0.5}, {0.5, 1.0, 1.0}}, 20 makeCube(3),
21 {{0.5, 0.0, 0.0}, {1.0, 0.5, 0.5}}, 21 makeCube(4),
22 {{0.5, 0.5, 0.0}, {1.0, 1.0, 0.5}}, 22 makeCube(5),
23 {{0.5, 0.0, 0.5}, {1.0, 0.5, 1.0}}, 23 makeCube(6),
24 {{0.5, 0.5, 0.5}, {1.0, 1.0, 1.0}}, 24 makeCube(7),
25 }
26
27 func makeCube(i int) [2]vertex {
28 var d vertex
29 if i&1 == 1 {
30 d.x = 0.5
31 }
32 if i&2 == 2 {
33 d.y = 0.5
34 }
35 if i&4 == 4 {
36 d.z = 0.5
37 }
38 return [2]vertex{
39 vertex{0.0, 0.0, 0.0}.add(d),
40 vertex{0.5, 0.5, 0.5}.add(d),
41 }
25 } 42 }
26 43
27 func (tb *treeBuilder) build() { 44 func (tb *treeBuilder) build() {
28 45
29 triangles := make([]int32, len(tb.t.triangles)) 46 triangles := make([]int32, len(tb.t.triangles))