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
}
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.
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 .