view cmd/tin2octree/vertex.go @ 672:5fa2eaffac84 octree

octree: Always compress the index with snappy as its halves its size.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 19 Sep 2018 10:57:37 +0200
parents be0327dc3119
children 9a0246ab3021
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 interpolate(v1, v2 vertex) func(vertex) vertex {
	return func(s vertex) vertex {
		return vertex{
			(v2.x-v1.x)*s.x + v1.x,
			(v2.y-v1.y)*s.y + v1.y,
			(v2.z-v1.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
}