point property

(double, double) get point

The point the pointer went down on — derived rather than recorded, so the schema cannot disagree with itself the way a second pair of numbers beside the first pair could.

That holds because a verb marks the shape of what it aimed at. A verb aimed at a widget presses the centre of the box it resolved, and the centre of the rect is that. A verb aimed at a point — tapAt, dragFrom, or any verb whose target named a coordinate — records a box of no size at the point, and the centre of that is the point. One derivation, honest for both, and no rect here is ever a box the finger did not go down in the middle of.

Implementation

(double, double) get point => (x + width / 2, y + height / 2);