combined Line, Spline, Blob, and Polygon into a single shape for more flexibility.  converted allPoints property into cacheable getTensionPoints method