public bool TryAddLine(Line line, float distanceThreshold) { foreach (var l in lines) { if (LineUtils.LineLineDistance(l, line) < distanceThreshold && LineUtils.LineLineAngle(l, line) < Settings.lineAngleThreshold) { lines.Add(line); return(true); } } return(false); }
public bool TryMerge(ApproximatedLine approxLine, float distanceThreshold) { foreach (var line in lines) { foreach (var sLine in approxLine.lines) { if (LineUtils.LineLineDistance(line, sLine) < distanceThreshold && LineUtils.LineLineAngle(line, sLine) < Settings.lineAngleThreshold) { lines.AddRange(approxLine.lines); return(true); } } } return(false); }