26 lines
402 B
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)}
|
|
}
|