Mercurial > gemma
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)) |