Mercurial > gemma
view cmd/tin2octree/vertex.go @ 720:aeaa2adf5a8b octree
octree: write SQL insert statements for octree indices.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 21 Sep 2018 17:36:00 +0200 |
parents | b17e3ce53285 |
children |
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 (v vertex) add(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 }