Exemplo n.º 1
0
    def wrapper(*args, **kwargs):
        layer = kwargs.get('layer', None)
        clear = kwargs.get('clear', False)
        redraw = kwargs.get('redraw', True)

        if layer:
            if not rs.IsLayer(layer):
                create_layers_from_path(layer)
            previous = rs.CurrentLayer(layer)

        if clear:
            if not layer:
                clear_current_layer()
            else:
                clear_layer(layer)

        rs.EnableRedraw(False)
        res = f(*args, **kwargs)

        if redraw:
            rs.EnableRedraw(True)

        if layer:
            rs.CurrentLayer(previous)

        return res
Exemplo n.º 2
0
# Python

xfunc.funcname = 'hpc_normals_func.python_normals'
normals, toc1 = xfunc(points, offset=0.5)['data']
print('Python : {0:.6f} ms'.format(toc1 * 1000))

# Numba

xfunc.funcname = 'hpc_normals_func.numba_normals'
normals, toc2 = xfunc(points, offset=0.5)['data']
print('Numba : {0:.6f} ms'.format((toc2 * 1000)))

# Numpy

xfunc.funcname = 'hpc_normals_func.numpy_normals'
normals, toc3 = xfunc(points, offset=0.5)['data']
print('Numpy : {0:.6f} ms'.format(toc3 * 1000))

# Plot

clear_layer(name='Plots')
n = len(points)
plot1 = rs.AddMesh(vertices=points,
                   face_vertices=faces,
                   vertex_colors=[[255, 0, 0]] * n)
plot2 = rs.AddMesh(vertices=normals,
                   face_vertices=faces,
                   vertex_colors=[[0, 0, 255]] * n)
rs.ObjectLayer([plot1, plot2], 'Plots')
    PointArtist.draw_collection(intersections_back,
                                layer=name + "::Intersections_back",
                                clear=True)
    PointArtist.draw_collection(pca_points,
                                layer=name + "::Intersections_front",
                                clear=True)

    # # ==============================================================================
    # # Generate a beam every 3 vertices of the boundary. Compute a local frame for the
    # # selected vertices using a PCA of the vertex locations.
    # # ==============================================================================

    step = 6
    start = 0
    end = step
    clear_layer(name + "::Beams", include_children=True, include_hidden=True)

    while end <= len(pca_points):
        points = pca_points[start:end]

        start = end
        end += (step)

        origin, axes, values = pca_numpy(points)
        frame = Frame(origin, axes[0], axes[1])

        # # ==============================================================================
        # # Transform the local coordinates to world coordinates to make it an axis-aligned
        # # problem.
        # # ==============================================================================