private NormalizedPoint Add(PointF point) { NormalizedPoint result; VisualPoint visualPoint; for (var i = _normalizedPoints.Count - 1; i >= 0; i--) { if (IsVisuallyIdentical(_normalizedPoints[i].Point, point)) { visualPoint = _visualPoints[_normalizedPoints[i].VisualIndex]; visualPoint.Weight++; result = new NormalizedPoint { Point = point, VisualIndex = visualPoint.VisualIndex }; _normalizedPoints.Add(result); return(result); } } visualPoint = new VisualPoint { IsLocked = false, VisualIndex = _visualPoints.Count, Weight = 1 }; _visualPoints.Add(visualPoint); result = new NormalizedPoint { Point = point, VisualIndex = visualPoint.VisualIndex }; _normalizedPoints.Add(result); return(result); }
// TODO: TUNE: what's the correct value? Shoud it be based on the matafile's DPI? private bool IsVisuallyIdentical(NormalizedPoint a, PointF b) { for (var i = _normalizedPoints.Count - 1; i >= 0; i--) { if (_normalizedPoints[i].VisualIndex == a.VisualIndex && IsVisuallyIdentical(_normalizedPoints[i].Point, b)) { return(true); } } return(false); }
private static bool IsVisuallyIdentical(NormalizedPoint a, NormalizedPoint b) => a.VisualIndex == b.VisualIndex;
private NormalizedPoint Add(PointF point) { NormalizedPoint result; VisualPoint visualPoint; for (var i = _normalizedPoints.Count - 1; i >= 0; i--) { if (IsVisuallyIdentical(_normalizedPoints[i].Point, point)) { visualPoint = _visualPoints[_normalizedPoints[i].VisualIndex]; visualPoint.Weight++; result = new NormalizedPoint() { Point = point, VisualIndex = visualPoint.VisualIndex }; _normalizedPoints.Add(result); return result; } } visualPoint = new VisualPoint() { IsLocked = false, VisualIndex = _visualPoints.Count, Weight = 1 }; _visualPoints.Add(visualPoint); result = new NormalizedPoint() { Point = point, VisualIndex = visualPoint.VisualIndex }; _normalizedPoints.Add(result); return result; }
private bool IsVisuallyIdentical(NormalizedPoint a, PointF b) { for (var i = _normalizedPoints.Count - 1; i >= 0; i--) if (_normalizedPoints[i].VisualIndex == a.VisualIndex) if (IsVisuallyIdentical(_normalizedPoints[i].Point, b)) return true; return false; }
private static float UnitSizeEpsilon = 2.0f; // TODO: TUNE: what's the correct value? Shoud it be based on the matafile's DPI? private bool IsVisuallyIdentical(NormalizedPoint a, NormalizedPoint b) { return a.VisualIndex == b.VisualIndex; }