static List<Section> BreakIntoSections(DragState state)
{
var list = new List<Section>();
var pts = state.MousePoints;
int i = 1, j;
for (; i < pts.Count; i = j)
{
int angleMod8 = pts[i].AngleMod8;
float length = pts[i - 1].Point.To(pts[i].Point).Length();
for (j = i + 1; j < pts.Count; j++)
{
if (pts[j].AngleMod8 != angleMod8)
break;
length += pts[j - 1].Point.To(pts[j].Point).Length();
}
var startPt = pts[i - 1].Point;
var endPt = pts[j - 1].Point;
list.Add(new Section
{
AngleMod8 = angleMod8,
StartSS = state._inputTransform.Transform(startPt),
EndSS = state._inputTransform.Transform(endPt),
iStart = i - 1,
iEnd = j - 1,
LengthPx = length
});
}
return list;
}
static void EliminateTinySections(List<Section> list, int minLineLengthPx)