/// <summary> /// Performs data processing that involves creating or retiring spatial features. /// Newly created features will not have any definition for their geometry - a /// subsequent call to <see cref="CalculateGeometry"/> is needed to to that. /// </summary> /// <param name="ff">The factory class for generating any spatial features</param> internal override void ProcessFeatures(FeatureFactory ff) { PointFeature startPoint = m_From; for (int i = 0; i < m_Legs.Count; i++) { Leg leg = m_Legs[i]; PointFeature lastPoint = (i < (m_Legs.Count - 1) ? null : m_To); leg.CreateFeatures(ff, startPoint, lastPoint); startPoint = leg.PrimaryFace.GetEndPoint(this); } }