Esempio n. 1
0
def ang_convert(span, steps):

    obj, desc = mesh_pop("ang_convert")
    #TODO Sliceing an object is overkill, just add more points
    result = None
    step = 1.0 * span / steps
    for i in range(steps):
        mask = CSG.generate_box_mesh([step * i, -100, -100],
                                     [step * (i + 1), 100, 100])  # TODO fix
        slice = CSG.boolean(obj, mask, "intersection")  # TODO fix

        vertices = np.empty([len(slice.vertices), 3], dtype=float)
        for i in range(len(slice.vertices)):
            ang = slice.vertices[i][0]
            r = slice.vertices[i][1]
            vertices[i][0] = -r * math.cos(ang)
            vertices[i][1] = r * math.sin(ang)
            vertices[i][2] = slice.vertices[i][2]
        tmp = CSG.form_mesh(vertices, slice.faces)  # TODO fix
        if result is None:
            result = tmp
        else:
            result = CSG.boolean(result, tmp, "union")  # TODO fix
        mesh_push(result, "TODO")