protected float DistanceBetweenMarkups(MarkupBase markupA, MarkupBase markupB) { if (markupA == null || markupB == null) { return(float.MaxValue); } return(Vector2.Distance(markupA.center, markupB.center)); }
override protected float ComputeScoreBetweenMarkup(MarkupBase userMarkup, MarkupBase gtMarkup) { var userStartX = (userMarkup as Segment).GetStartX(_userSegments); var gtStartX = (gtMarkup as Segment).GetStartX(_groundTruthSegments); var startError = Mathf.Abs(userStartX - gtStartX) / error.x; var stopError = Mathf.Abs(userMarkup.center.x - gtMarkup.center.x) / error.x; var devError = Mathf.Abs(userMarkup.center.y - gtMarkup.center.y) / error.y; return((Mathf.Max(0, 1f - startError) + Mathf.Max(0, 1f - stopError) + Mathf.Max(0, 1f - devError)) / 3f); }
override protected bool IsMarkupSelected(MarkupBase userMarkup) { if (_dragSegment != null) { return(_dragSegment == userMarkup); } if (_dragDivider != null) { if (_dragDivider == userMarkup) { return(true); } return(userMarkup == _dragDivider.GetNextSegment(_userSegments)); } return(false); }
override protected MarkupBase ComputeClosestGTMarkup(MarkupBase userMarkup) { var closeMarkup = userMarkup; var min = float.MaxValue; foreach (var gtSegment in _groundTruthSegments) { var userMidpoint = GetUserMarkupMidpoint(userMarkup); var gtMidpoint = gtSegment.CalcMidpoint(_groundTruthSegments); var dist = Mathf.Abs(userMidpoint.x - gtMidpoint.x); if (dist < min) { min = dist; closeMarkup = gtSegment; } } return(closeMarkup != userMarkup ? closeMarkup : null); }
private Vector2 GetUserMarkupMidpoint(MarkupBase userMarkup) { return((userMarkup as Segment).CalcMidpoint(_userSegments)); }
override protected Vector2 CalculateLabelPositionForMarkup(MarkupBase userMarkup) { return(ConvertPixelToLabel(GetUserMarkupMidpoint(userMarkup))); }
virtual protected Vector2 CalculateLabelPositionForMarkup(MarkupBase userMarkup) { return(ConvertPixelToLabel(ConvertUVToPixel(userMarkup.center))); }
virtual protected float ComputeScoreBetweenMarkup(MarkupBase userMarkup, MarkupBase gtMarkup) { return(1f); }
virtual protected MarkupBase ComputeClosestGTMarkup(MarkupBase userMarkup) { return(null); }
virtual protected bool IsMarkupSelected(MarkupBase userMarkup) { return(false); }