protected LeftObstacleSide FindFirstObstacleSideToToTheRightOfPoint(Point point) { var node = LeftObstacleSideTree.FindFirst( s => !Point.PointToTheRightOfLineOrOnLine(point, s.Start, s.End)); return(node == null ? null : (LeftObstacleSide)node.Item); }
protected void RemoveLeftSide(LeftObstacleSide side) { ObstacleSideComparer.SetOperand(side); LeftObstacleSideTree.Remove(side); }
protected void InsertLeftSide(LeftObstacleSide side) { ObstacleSideComparer.SetOperand(side); LeftObstacleSideTree.Insert((side)); }
RBNode <SegmentBase> GetActiveSideFromRight(Point point) { return(LeftObstacleSideTree.FindFirst(side => PointToTheLeftOfLineOrOnLineLocal(point, side.Start, side.End))); }