def draw_points(vis, vis_prefix, name, points, normals=None, colors=None, size=0.001, normals_length=0.01):
    vis[vis_prefix][name].set_object(g.PointCloud(position=points, color=colors, size=size))
    n_pts = points.shape[1]
    if (normals is not None):
        lines = np.zeros([3, (n_pts * 2)])
        inds = np.array(range(0, (n_pts * 2), 2))
        lines[:, inds] = points[0:3, :]
        lines[:, (inds + 1)] = (points[0:3, :] + (normals * normals_length))
        vis[vis_prefix][('%s_normals' % name)].set_object(meshcat.geometry.LineSegmentsGeometry(lines, None))
def draw_points(vis, vis_prefix, name, points, normals=None, colors=None, size=0.001, normals_length=0.01):
    vis[vis_prefix][name].set_object(g.PointCloud(position=points, color=colors, size=size))
    n_pts = points.shape[1]
    if (normals is not None):
        lines = np.zeros([3, (n_pts * 2)])
        inds = np.array(range(0, (n_pts * 2), 2))
        lines[:, inds] = points[0:3, :]
        lines[:, (inds + 1)] = (points[0:3, :] + (normals * normals_length))
        vis[vis_prefix][('%s_normals' % name)].set_object(meshcat.geometry.LineSegmentsGeometry(lines, None))