mirror of https://github.com/golang/go.git
image: make Rectangle implement Image.
Change-Id: I01e328fc3644b679bacf2209c3d7ade9d8bffe53 Reviewed-on: https://go-review.googlesource.com/6551 Reviewed-by: Rob Pike <r@golang.org>
This commit is contained in:
parent
b745ab95af
commit
848e2feac6
|
|
@ -5,6 +5,7 @@
|
|||
package image
|
||||
|
||||
import (
|
||||
"image/color"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
|
|
@ -77,6 +78,10 @@ func Pt(X, Y int) Point {
|
|||
// It is well-formed if Min.X <= Max.X and likewise for Y. Points are always
|
||||
// well-formed. A rectangle's methods always return well-formed outputs for
|
||||
// well-formed inputs.
|
||||
//
|
||||
// A Rectangle is also an Image whose bounds are the rectangle itself. At
|
||||
// returns color.Opaque for points in the rectangle and color.Transparent
|
||||
// otherwise.
|
||||
type Rectangle struct {
|
||||
Min, Max Point
|
||||
}
|
||||
|
|
@ -226,6 +231,24 @@ func (r Rectangle) Canon() Rectangle {
|
|||
return r
|
||||
}
|
||||
|
||||
// At implements the Image interface.
|
||||
func (r Rectangle) At(x, y int) color.Color {
|
||||
if (Point{x, y}).In(r) {
|
||||
return color.Opaque
|
||||
}
|
||||
return color.Transparent
|
||||
}
|
||||
|
||||
// Bounds implements the Image interface.
|
||||
func (r Rectangle) Bounds() Rectangle {
|
||||
return r
|
||||
}
|
||||
|
||||
// ColorModel implements the Image interface.
|
||||
func (r Rectangle) ColorModel() color.Model {
|
||||
return color.Alpha16Model
|
||||
}
|
||||
|
||||
// ZR is the zero Rectangle.
|
||||
var ZR Rectangle
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue