internal Point DetermineStartPoint([NotNull] IEnumerable <IPolylineSegment> segments) { IPolylineSegment first = segments.FirstOrDefault(); return(first == null ? Point.Unknown : first.StartPoint); }
internal Point DetermineEndPoint([NotNull] IEnumerable <IPolylineSegment> segments) { IPolylineSegment last = segments.LastOrDefault(); return(last == null ? Point.Unknown : last.EndPoint); }
public void AddSegment(IPolylineSegment segment) { m_Segments.Add(segment); Length += segment.Length; StartPoint = DetermineStartPoint(m_Segments); EndPoint = DetermineEndPoint(m_Segments); AngleToXAxisAtStartPoint = DetermineAngleToXAxisAtStartPoint(m_Segments); AngleToXAxisAtEndPoint = DetermineAngleToXAxisAtEndPoint(m_Segments); }
public Constants.TurnDirection TurnDirectionToPoint(Point point) { IPolylineSegment firstSegment = m_Segments.FirstOrDefault(); if (firstSegment == null) { return(Constants.TurnDirection.Unknown); } Constants.TurnDirection turnDirection = firstSegment.TurnDirectionToPoint(point); return(turnDirection); }
public void ReverseTest() { IPolylineSegment actual = m_Line.Reverse(); Assert.AreEqual(m_Line.Length, actual.Length, "Length"); Assert.AreEqual(m_Line.EndPoint, actual.StartPoint, "StartPoint"); Assert.AreEqual(m_Line.StartPoint, actual.EndPoint, "EndPoint"); }
private Angle DetermineAngleToXAxisAtStartPoint([NotNull] IEnumerable <IPolylineSegment> segments) { IPolylineSegment segment = segments.First(); return(segment.AngleToXAxisAtStartPoint); }
public void Add(IPolylineSegment polylineSegment) { m_Polyline.AddSegment(polylineSegment); EndPoint = polylineSegment.EndPoint; }