List<int> FindReversals(List<PointT> points, int stopAfter)
{
var reversals = new List<int>();
for (int i = 1, c = points.Count; i < c - 1; i++)
{
PointT p0 = points[i - 1], p1 = points[i], p2 = points[i + 1];
VectorT v1 = p1.Sub(p0), v2 = p2.Sub(p1);
if (v1.Dot(v2) < 0 && MathEx.Mod(v1.AngleDeg() - v2.AngleDeg(), 360).IsInRange(150, 210))
{
reversals.Add(i);
if (reversals.Count >= stopAfter)
break;
}
}
return reversals;
}
private static int[] FindTimeStamps(IListSource<DragPoint> original, List<PointT> simplified)