diff options
author | Roger Peppe <rogpeppe@gmail.com> | 2010-09-23 10:58:59 +1000 |
---|---|---|
committer | Nigel Tao <nigeltao@golang.org> | 2010-09-23 10:58:59 +1000 |
commit | 0f17173f79d674b3e94e6dabf096116677468fe6 (patch) | |
tree | 11b88a4cb2813ac420cceade9e4c00657ad72d12 | |
parent | 1a8bd6715d0f4d1edb3cb1570ca090ba0b2c1133 (diff) | |
download | go-0f17173f79d674b3e94e6dabf096116677468fe6.tar.gz go-0f17173f79d674b3e94e6dabf096116677468fe6.zip |
exp/draw: add Point.Eq, Point.Mul, Point.Div, Rectangle.Size methods
R=nigeltao, nigeltao_golang, rsc
CC=golang-dev, r
https://golang.org/cl/2192048
-rw-r--r-- | src/pkg/image/geom.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/pkg/image/geom.go b/src/pkg/image/geom.go index 06c13fec16..d031c37d1c 100644 --- a/src/pkg/image/geom.go +++ b/src/pkg/image/geom.go @@ -28,6 +28,21 @@ func (p Point) Sub(q Point) Point { return Point{p.X - q.X, p.Y - q.Y} } +// Mul returns the vector p*k. +func (p Point) Mul(k int) Point { + return Point{p.X * k, p.Y * k} +} + +// Div returns the vector p/k. +func (p Point) Div(k int) Point { + return Point{p.X / k, p.Y / k} +} + +// Eq returns whether p and q are equal. +func (p Point) Eq(q Point) bool { + return p.X == q.X && p.Y == q.Y +} + // ZP is the zero Point. var ZP Point @@ -59,6 +74,14 @@ func (r Rectangle) Dy() int { return r.Max.Y - r.Min.Y } +// Size returns r's width and height. +func (r Rectangle) Size() Point { + return Point{ + r.Max.X - r.Min.X, + r.Max.Y - r.Min.Y, + } +} + // Add returns the rectangle r translated by p. func (r Rectangle) Add(p Point) Rectangle { return Rectangle{ |