protected RightObstacleSide FindFirstObstacleSideToTheLeftOfPoint(Point point) { var node = RightObstacleSideTree.FindLast( s => Point.PointToTheRightOfLineOrOnLine(point, s.Start, s.End)); return(node == null ? null : (RightObstacleSide)(node.Item)); }
protected void RemoveRightSide(RightObstacleSide side) { ObstacleSideComparer.SetOperand(side); RightObstacleSideTree.Remove(side); }
protected void InsertRightSide(RightObstacleSide side) { ObstacleSideComparer.SetOperand(side); RightObstacleSideTree.Insert(side); }
RBNode <SegmentBase> GetActiveSideFromLeft(Point point) { return(RightObstacleSideTree.FindLast(side => PointToTheRightOfLineOrOnLineLocal(point, side.Start, side.End))); }