/// <summary>
        /// Removes all collinear points on the polygon.
        /// </summary>
        /// <param name="vertices">The polygon that needs simplification.</param>
        /// <param name="collinearityTolerance">The collinearity tolerance.</param>
        /// <returns>A simplified polygon.</returns>
        // TS - public static Vertices CollinearSimplify(Vertices vertices, FP collinearityTolerance = 0)
        public static Vertices CollinearSimplify(Vertices vertices, FP collinearityTolerance)
        {
            if (vertices.Count <= 3)
            {
                return(vertices);
            }

            Vertices simplified = new Vertices(vertices.Count);

            for (int i = 0; i < vertices.Count; i++)
            {
                FPVector2 prev    = vertices.PreviousVertex(i);
                FPVector2 current = vertices[i];
                FPVector2 next    = vertices.NextVertex(i);

                //If they collinear, continue
                if (MathUtils.IsCollinear(ref prev, ref current, ref next, collinearityTolerance))
                {
                    continue;
                }

                simplified.Add(current);
            }

            return(simplified);
        }