comparison cmd/octree2contour/vertex.go @ 674:120a82bd9953 octree

octree: Added loading frame for contour generation.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 19 Sep 2018 13:26:30 +0200
parents
children be90ab542aa7
comparison
equal deleted inserted replaced
673:9a0246ab3021 674:120a82bd9953
1 package main
2
3 type vertex struct {
4 x float64
5 y float64
6 z float64
7 }
8
9 func (v *vertex) minimize(w vertex) {
10 if w.x < v.x {
11 v.x = w.x
12 }
13 if w.y < v.y {
14 v.y = w.y
15 }
16 if w.z < v.z {
17 v.z = w.z
18 }
19 }
20
21 func (v *vertex) maximize(w vertex) {
22 if w.x > v.x {
23 v.x = w.x
24 }
25 if w.y > v.y {
26 v.y = w.y
27 }
28 if w.z > v.z {
29 v.z = w.z
30 }
31 }
32
33 func (v vertex) sub(w vertex) vertex {
34 return vertex{
35 v.x - w.x,
36 v.y - w.y,
37 v.z - w.z,
38 }
39 }
40
41 func interpolate(v1, v2 vertex) func(vertex) vertex {
42 v2 = v2.sub(v1)
43 return func(s vertex) vertex {
44 return vertex{
45 v2.x*s.x + v1.x,
46 v2.y*s.y + v1.y,
47 v2.z*s.z + v1.z,
48 }
49 }
50 }
51
52 func (a vertex) less(b vertex) bool {
53 return a.x < b.x || a.y < b.y || a.z < b.z
54 }