Mercurial > gemma
view 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 |
line wrap: on
line source
package main type vertex struct { x float64 y float64 z float64 } func (v *vertex) minimize(w vertex) { if w.x < v.x { v.x = w.x } if w.y < v.y { v.y = w.y } if w.z < v.z { v.z = w.z } } func (v *vertex) maximize(w vertex) { if w.x > v.x { v.x = w.x } if w.y > v.y { v.y = w.y } if w.z > v.z { v.z = w.z } } func (v vertex) sub(w vertex) vertex { return vertex{ v.x - w.x, v.y - w.y, v.z - w.z, } } func interpolate(v1, v2 vertex) func(vertex) vertex { v2 = v2.sub(v1) return func(s vertex) vertex { return vertex{ v2.x*s.x + v1.x, v2.y*s.y + v1.y, v2.z*s.z + v1.z, } } } func (a vertex) less(b vertex) bool { return a.x < b.x || a.y < b.y || a.z < b.z }