'Project the points according to renderer matrix.'

def do_3d_projection(self, renderer):

    xyslist = [proj3d.proj_trans_points(points, renderer.M) for points in self._segments3d]
    segments_2d = [list(zip(xs, ys)) for (xs, ys, zs) in xyslist]
    LineCollection.set_segments(self, segments_2d)
    minz = 1000000000.0
    for (xs, ys, zs) in xyslist:
        minz = min(minz, min(zs))
    return minz
