commit
daa8205b8c
|
@ -479,6 +479,9 @@ type Rect struct {
|
||||||
Min, Max Vec
|
Min, Max Vec
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ZR is a zero rectangle.
|
||||||
|
var ZR = Rect{Min: ZV, Max: ZV}
|
||||||
|
|
||||||
// R returns a new Rect with given the Min and Max coordinates.
|
// R returns a new Rect with given the Min and Max coordinates.
|
||||||
//
|
//
|
||||||
// Note that the returned rectangle is not automatically normalized.
|
// Note that the returned rectangle is not automatically normalized.
|
||||||
|
@ -605,7 +608,7 @@ func (r Rect) Union(s Rect) Rect {
|
||||||
|
|
||||||
// Intersect returns the maximal Rect which is covered by both r and s. Rects r and s must be normalized.
|
// Intersect returns the maximal Rect which is covered by both r and s. Rects r and s must be normalized.
|
||||||
//
|
//
|
||||||
// If r and s don't overlap, this function returns R(0, 0, 0, 0).
|
// If r and s don't overlap, this function returns a zero-rectangle.
|
||||||
func (r Rect) Intersect(s Rect) Rect {
|
func (r Rect) Intersect(s Rect) Rect {
|
||||||
t := R(
|
t := R(
|
||||||
math.Max(r.Min.X, s.Min.X),
|
math.Max(r.Min.X, s.Min.X),
|
||||||
|
@ -614,7 +617,7 @@ func (r Rect) Intersect(s Rect) Rect {
|
||||||
math.Min(r.Max.Y, s.Max.Y),
|
math.Min(r.Max.Y, s.Max.Y),
|
||||||
)
|
)
|
||||||
if t.Min.X >= t.Max.X || t.Min.Y >= t.Max.Y {
|
if t.Min.X >= t.Max.X || t.Min.Y >= t.Max.Y {
|
||||||
return Rect{}
|
return ZR
|
||||||
}
|
}
|
||||||
return t
|
return t
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue