mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-07 18:35:34 +00:00
ui: rename TransformOp.Mul to Multiply and split InvTransform
Multiply is a bit longer but more clear. InvTransform was really two operations: Invert and Transform. Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -650,7 +650,7 @@ loop:
|
|||||||
case ops.TypeTransform:
|
case ops.TypeTransform:
|
||||||
var op ui.TransformOp
|
var op ui.TransformOp
|
||||||
op.Decode(encOp.Data)
|
op.Decode(encOp.Data)
|
||||||
state.t = state.t.Mul(op)
|
state.t = state.t.Multiply(op)
|
||||||
case ops.TypeAux:
|
case ops.TypeAux:
|
||||||
aux = encOp.Data[ops.TypeAuxLen:]
|
aux = encOp.Data[ops.TypeAuxLen:]
|
||||||
auxKey = encOp.Key
|
auxKey = encOp.Key
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ func (q *pointerQueue) collectHandlers(r *ui.OpsReader, events *handlerEvents, t
|
|||||||
case ops.TypeTransform:
|
case ops.TypeTransform:
|
||||||
var op ui.TransformOp
|
var op ui.TransformOp
|
||||||
op.Decode(encOp.Data)
|
op.Decode(encOp.Data)
|
||||||
t = t.Mul(op)
|
t = t.Multiply(op)
|
||||||
case ops.TypePointerHandler:
|
case ops.TypePointerHandler:
|
||||||
var op pointer.HandlerOp
|
var op pointer.HandlerOp
|
||||||
op.Decode(encOp.Data, encOp.Refs)
|
op.Decode(encOp.Data, encOp.Refs)
|
||||||
@@ -150,7 +150,7 @@ func (q *pointerQueue) hit(areaIdx int, p f32.Point) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *areaNode) hit(p f32.Point) bool {
|
func (a *areaNode) hit(p f32.Point) bool {
|
||||||
p = a.trans.InvTransform(p)
|
p = a.trans.Invert().Transform(p)
|
||||||
return a.area.Hit(p)
|
return a.area.Hit(p)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -246,7 +246,7 @@ func (q *pointerQueue) Push(e pointer.Event, events *handlerEvents) {
|
|||||||
e.Priority = pointer.Foremost
|
e.Priority = pointer.Foremost
|
||||||
}
|
}
|
||||||
e.Hit = q.hit(h.area, e.Position)
|
e.Hit = q.hit(h.area, e.Position)
|
||||||
e.Position = h.transform.InvTransform(e.Position)
|
e.Position = h.transform.Invert().Transform(e.Position)
|
||||||
events.Add(k, e)
|
events.Add(k, e)
|
||||||
if e.Type == pointer.Release {
|
if e.Type == pointer.Release {
|
||||||
// Release grab when the number of grabs reaches zero.
|
// Release grab when the number of grabs reaches zero.
|
||||||
|
|||||||
@@ -56,19 +56,23 @@ func (r *InvalidateOp) Decode(d []byte) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Offset the transformation.
|
||||||
func (t TransformOp) Offset(o f32.Point) TransformOp {
|
func (t TransformOp) Offset(o f32.Point) TransformOp {
|
||||||
return t.Mul(TransformOp{o})
|
return t.Multiply(TransformOp{o})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t TransformOp) InvTransform(p f32.Point) f32.Point {
|
// Invert the transformation.
|
||||||
return p.Sub(t.offset)
|
func (t TransformOp) Invert() TransformOp {
|
||||||
|
return TransformOp{offset: t.offset.Mul(-1)}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Transform a point.
|
||||||
func (t TransformOp) Transform(p f32.Point) f32.Point {
|
func (t TransformOp) Transform(p f32.Point) f32.Point {
|
||||||
return p.Add(t.offset)
|
return p.Add(t.offset)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t TransformOp) Mul(t2 TransformOp) TransformOp {
|
// Multiply by a transformation.
|
||||||
|
func (t TransformOp) Multiply(t2 TransformOp) TransformOp {
|
||||||
return TransformOp{
|
return TransformOp{
|
||||||
offset: t.offset.Add(t2.offset),
|
offset: t.offset.Add(t2.offset),
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user