(controls: FourPoints, 
                  subdivisions: int = DEFAULT_SUBDIVISIONS,
                  include_last: bool = True)
return points
Returns a list of `subdivisions` (+ 1, if `include_last` is True) points
    on the cubic bezier curve defined by `controls`. The curve passes through 
    controls[0] and controls[3]

    If `include_last` is True, the last point returned will be controls[3]; if
    False, (useful for linking several curves together), controls[3] won't be included

    Ported from William A. Adams' Bezier OpenSCAD code at: 
    https://www.thingiverse.com/thing:8443
Returns a list of `subdivisions` (+ 1, if `include_last` is True) points
    on the cubic bezier curve defined by `controls`. The curve passes through 
    controls[0] and controls[3]
Returns a list of subdivisions ( + 1 if include_last is True ) points on the cubic bezier curve defined by controls . The curve passes through controls [ 0 ] and controls [ 3 ]
def bezier_points(controls: FourPoints, 
                  subdivisions: int = DEFAULT_SUBDIVISIONS,
                  include_last: bool = True) -> List[Point3]:
    """
    Returns a list of `subdivisions` (+ 1, if `include_last` is True) points
    on the cubic bezier curve defined by `controls`. The curve passes through 
    controls[0] and controls[3]

    If `include_last` is True, the last point returned will be controls[3]; if
    False, (useful for linking several curves together), controls[3] won't be included

    Ported from William A. Adams' Bezier OpenSCAD code at: 
    https://www.thingiverse.com/thing:8443
    """
    # TODO: enable a smooth curve through arbitrarily many points, as described at:
    # https://www.algosome.com/articles/continuous-bezier-curve-line.html

    points: List[Point3] = []
    last_elt = 1 if include_last else 0
    for i in range(subdivisions + last_elt):
        u = i/subdivisions
        points.append(_point_along_bez4(*controls, u))
    return points
def bezier_points ( controls : FourPoints , subdivisions : int = DEFAULT_SUBDIVISIONS , include_last : bool = True ) -> List [ Point3 ] : # TODO: enable a smooth curve through arbitrarily many points, as described at: # https://www.algosome.com/articles/continuous-bezier-curve-line.html points : List [ Point3 ] = [ ] last_elt = 1 if include_last else 0 for i in range ( subdivisions + last_elt ) : u = i / subdivisions points . append ( _point_along_bez4 ( * controls , u ) ) return points