Praeclarum.Graphics.Stroke.GetDirectionSegments C# (CSharp) Метод

GetDirectionSegments() публичный Метод

public GetDirectionSegments ( int startIndex, int resolution = 20 ) : Praeclarum.Graphics.StrokeSegment[]
startIndex int
resolution int
Результат Praeclarum.Graphics.StrokeSegment[]
		public StrokeSegment[] GetDirectionSegments (int startIndex, int resolution = 20)
		{
			var segments = GetResolutionSimplifiedSegments (startIndex, resolution);

			//
			// Merge like-directions
			//
			/*			using (var w = new System.IO.StreamWriter ("/Users/fak/Desktop/simplified.svg")) {
				var points = stroke.Points;
				var svg = new CrossGraphics.Svg.SvgGraphics (w, stroke.BoundingBox);
				svg.BeginDrawing ();
				foreach (var s in segments) {
					svg.DrawLine (points [s.StartIndex], points [s.LastIndex], 3);
				}
				svg.EndDrawing ();
			}*/

			var merged = new List<StrokeSegment> ();

			for (var i = 0; i < segments.Length;) {

				var dir = segments [i].Direction;
				var j = i + 1;
				for (; j < segments.Length && segments [j].Direction == dir; j++) {
				}

				segments [i].EndIndex = j-1 < segments.Length ? segments [j-1].EndIndex : segments [segments.Length-1].EndIndex;
				merged.Add (segments [i]);

				i = j;
			}

			/*			using (var w = new System.IO.StreamWriter ("/Users/fak/Desktop/am.svg")) {
				var svg = new CrossGraphics.Svg.SvgGraphics (w, bb);
				svg.BeginDrawing ();
				foreach (var s in merged) {
					svg.DrawLine (points [s.StartIndex], points [s.LastIndex], 3);
				}
				svg.EndDrawing ();
			}*/

			return merged.ToArray ();
		}