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
diff --git a/src/pkg/image/geom.go b/src/pkg/image/geom.go
index 06c13fe..d031c37 100644
--- a/src/pkg/image/geom.go
+++ b/src/pkg/image/geom.go
@@ -28,6 +28,21 @@
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 @@
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{