func (f *Imp) On(a, b int, t uint) bool { // if !f.Empty() { switch f.sort { case Pointset, Segments: return scr.OnSegments(f.x, f.y, a, b, t) case Polygon: return scr.OnPolygon(f.x, f.y, a, b, t) case Curve: return scr.OnCurve(f.x, f.y, a, b, t) case InfLine: return scr.OnInfLine(f.x[0], f.y[0], f.x[1], f.y[1], a, b, t) case Rectangle: return scr.OnRectangle(f.x[0], f.y[0], f.x[1], f.y[1], a, b, t) case Circle: return scr.OnCircle(f.x[0], f.y[0], uint(f.x[1]), a, b, t) case Ellipse: return scr.OnEllipse(f.x[0], f.y[0], uint(f.x[1]), uint(f.y[1]), a, b, t) case Text: if len(f.x) != 2 { errh.Error("Incident case Text: len (f.x) ==", uint(len(f.x))) } return scr.OnRectangle(f.x[0], f.y[0], f.x[1], f.y[1], a, b, t) // crash: TODO case Image: return scr.InRectangle(f.x[0], f.y[0], f.x[1], f.y[1], a, b) // , t } } return false }
func (f *Imp) uM() uint { // const ( r = 4 t = 4 ) a, b := scr.MousePosGr() n := uint(len(f.x)) for i := uint(0); i < n; i++ { if scr.OnCircle(f.x[i], f.y[i], r, a, b, t) { return uint(i) } } return n + 1 // ? }