Files
bspviz/internal/geom/fit.go

26 lines
402 B
Go

package geom
import "math"
type AABB struct{ Min, Max Vec }
func Bounds(pts []Vec) AABB {
minX, minY := math.Inf(1), math.Inf(1)
maxX, maxY := math.Inf(-1), math.Inf(-1)
for _, p := range pts {
if p.X < minX {
minX = p.X
}
if p.Y < minY {
minY = p.Y
}
if p.X > maxX {
maxX = p.X
}
if p.Y > maxY {
maxY = p.Y
}
}
return AABB{Min: V(minX, minY), Max: V(maxX, maxY)}
}