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
# 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. # # ==============================================================================