internal LineEndPointNode(LineEndPoint endPoint) { EndPoints.Add(endPoint); }
private static List <Line> getClosestUpperEndPoints(BSTNode <LineEndPointNode> node, LineEndPoint currentLine) { var result = new List <LineEndPoint>(); result.AddRange(node.Value.EndPoints); var nextUpper = getNextUpper(node); if (nextUpper != null) { result.AddRange(nextUpper.Value.EndPoints); } return(result.Where(x => x.Line != currentLine.Line) .OrderBy(x => x.Y) .Select(x => x.Line) .ToList()); }