e2ab54a896f822fa85f785f5426dd69186185f55 — Elias Naur 3 months ago b25af47
ui/f32: document

Signed-off-by: Elias Naur <mail@eliasnaur.com>
1 files changed, 22 insertions(+), 0 deletions(-)

M ui/f32/f32.go
M ui/f32/f32.go => ui/f32/f32.go +22 -0
@@ 1,39 1,55 @@
 // SPDX-License-Identifier: Unlicense OR MIT
+/*
+Package f32 is a float32 implementation of package image's
+Point and Rectangle
 
+The coordinate space has the origin in the top left
+corner with the axes extending right and down.
+*/
 package f32
 
+// A Point is a two dimensional point.
 type Point struct {
 	X, Y float32
 }
 
+// A Rectangle contains the points (X, Y) where Min.X <= X < Max.X,
+// Min.Y <= Y < Max.Y.
 type Rectangle struct {
 	Min, Max Point
 }
 
+// Add return the point p+p2.
 func (p Point) Add(p2 Point) Point {
 	return Point{X: p.X + p2.X, Y: p.Y + p2.Y}
 }
 
+// Sub returns the vector p-p2.
 func (p Point) Sub(p2 Point) Point {
 	return Point{X: p.X - p2.X, Y: p.Y - p2.Y}
 }
 
+// Mul returns p scaled by s.
 func (p Point) Mul(s float32) Point {
 	return Point{X: p.X * s, Y: p.Y * s}
 }
 
+// Size returns r's width and height.
 func (r Rectangle) Size() Point {
 	return Point{X: r.Dx(), Y: r.Dy()}
 }
 
+// Dx returns r's width.
 func (r Rectangle) Dx() float32 {
 	return r.Max.X - r.Min.X
 }
 
+// Dy returns r's Height.
 func (r Rectangle) Dy() float32 {
 	return r.Max.Y - r.Min.Y
 }
 
+// Intersect returns the intersection of r and s.
 func (r Rectangle) Intersect(s Rectangle) Rectangle {
 	if r.Min.X < s.Min.X {
 		r.Min.X = s.Min.X


@@ 50,6 66,7 @@
 	return r
 }
 
+// Union returns the union of r and s.
 func (r Rectangle) Union(s Rectangle) Rectangle {
 	if r.Min.X > s.Min.X {
 		r.Min.X = s.Min.X


@@ 66,6 83,8 @@
 	return r
 }
 
+// Canon returns the canonical version of r, where Min is to
+// the upper left of Max.
 func (r Rectangle) Canon() Rectangle {
 	if r.Max.X < r.Min.X {
 		r.Min.X, r.Max.X = r.Max.X, r.Min.X


@@ 76,10 95,12 @@
 	return r
 }
 
+// Empty reports whether r represents the empty area.
 func (r Rectangle) Empty() bool {
 	return r.Min.X >= r.Max.X || r.Min.Y >= r.Max.Y
 }
 
+// Add offsets r with the vector p.
 func (r Rectangle) Add(p Point) Rectangle {
 	return Rectangle{
 		Point{r.Min.X + p.X, r.Min.Y + p.Y},


@@ 87,6 108,7 @@
 	}
 }
 
+// Sub offsets r with the vector -p.
 func (r Rectangle) Sub(p Point) Rectangle {
 	return Rectangle{
 		Point{r.Min.X - p.X, r.Min.Y - p.Y},