f32/d2/rect.go
func (r Rectangle) Intersect(s Rectangle) Rectangle {
	ir := Rect(r.Min[0], r.Min[1], r.Max[0], r.Max[1])
	if ir.Min[0] < s.Min[0] {
		ir.Min[0] = s.Min[0]
	}
	if ir.Min[1] < s.Min[1] {
		ir.Min[1] = s.Min[1]
	}
	if ir.Max[0] > s.Max[0] {
		ir.Max[0] = s.Max[0]
	}
	if ir.Max[1] > s.Max[1] {
		ir.Max[1] = s.Max[1]
	}
	if ir.Min[0] > ir.Max[0] || ir.Min[1] > ir.Max[1] {
		return ZR
	}
	return ir
}
func (r Rectangle) Intersect(s Rectangle) Rectangle {
	ir := Rect(r.Min[0], r.Min[1], r.Max[0], r.Max[1])
	if ir.Min[0] < s.Min[0] {
		ir.Min[0] = s.Min[0]
	}
	if ir.Min[1] < s.Min[1] {
		ir.Min[1] = s.Min[1]
	}
	if ir.Max[0] > s.Max[0] {
		ir.Max[0] = s.Max[0]
	}
	if ir.Max[1] > s.Max[1] {
		ir.Max[1] = s.Max[1]
	}
	if ir.Min[0] > ir.Max[0] || ir.Min[1] > ir.Max[1] {
		return ZR
	}
	return ir
}
// Intersect returns the largest rectangle contained by both r and s. If the
// two rectangles do not overlap then the zero rectangle will be returned.