aboutsummaryrefslogtreecommitdiffstats
path: root/lay/strain/sym.go
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2026-03-03 15:23:25 -0500
committerSam Anthony <sam@samanthony.xyz>2026-03-03 15:23:25 -0500
commit3ae1a7330b0eaab02fafd1f857c60fad1cd4fe19 (patch)
tree069ba54c2ca7594e96cfe519acc3700a02a5d949 /lay/strain/sym.go
parent474f4984f8be450524eedd3e89bcbfdfa1b4f516 (diff)
downloadgui-3ae1a7330b0eaab02fafd1f857c60fad1cd4fe19.zip
lay/strain: represent rectangles as (origin, size)
Diffstat (limited to 'lay/strain/sym.go')
-rw-r--r--lay/strain/sym.go11
1 files changed, 6 insertions, 5 deletions
diff --git a/lay/strain/sym.go b/lay/strain/sym.go
index cf8777b..9d2a0bf 100644
--- a/lay/strain/sym.go
+++ b/lay/strain/sym.go
@@ -14,7 +14,8 @@ type SymPt struct {
// SymRect is a set of Cassowary symbols representing an
// image.Rectangle.
type SymRect struct {
- Min, Max SymPt
+ Origin SymPt // top-left corner position
+ Size SymPt // Dx() and Dy()
}
func NewSymPt() SymPt {
@@ -28,10 +29,10 @@ func NewSymRect() SymRect {
// editRect marks all symbols of a rectangle as editable with a
// certain precedence.
func editRect(solver *casso.Solver, sr SymRect, p casso.Priority) error {
- if err := editPt(solver, sr.Min, p); err != nil {
+ if err := editPt(solver, sr.Origin, p); err != nil {
return err
}
- if err := editPt(solver, sr.Max, p); err != nil {
+ if err := editPt(solver, sr.Size, p); err != nil {
return err
}
return nil
@@ -50,10 +51,10 @@ func editPt(solver *casso.Solver, sp SymPt, p casso.Priority) error {
}
func suggestRect(solver *casso.Solver, sr SymRect, r image.Rectangle) error {
- if err := suggestPt(solver, sr.Min, r.Min); err != nil {
+ if err := suggestPt(solver, sr.Origin, r.Min); err != nil {
return err
}
- if err := suggestPt(solver, sr.Max, r.Max); err != nil {
+ if err := suggestPt(solver, sr.Size, image.Pt(r.Dx(), r.Dy())); err != nil {
return err
}
return nil