Esempio n. 1
0
        internal Point DetermineStartPoint([NotNull] IEnumerable <IPolylineSegment> segments)
        {
            IPolylineSegment first = segments.FirstOrDefault();

            return(first == null
                       ? Point.Unknown
                       : first.StartPoint);
        }
Esempio n. 2
0
        internal Point DetermineEndPoint([NotNull] IEnumerable <IPolylineSegment> segments)
        {
            IPolylineSegment last = segments.LastOrDefault();

            return(last == null
                       ? Point.Unknown
                       : last.EndPoint);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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");
        }
Esempio n. 6
0
        private Angle DetermineAngleToXAxisAtStartPoint([NotNull] IEnumerable <IPolylineSegment> segments)
        {
            IPolylineSegment segment = segments.First();

            return(segment.AngleToXAxisAtStartPoint);
        }
Esempio n. 7
0
        public void Add(IPolylineSegment polylineSegment)
        {
            m_Polyline.AddSegment(polylineSegment);

            EndPoint = polylineSegment.EndPoint;
        }