def display_points(pts, labels): occ_display.EraseAll() print('number of points:', len(pts)) feats = [None] * 14 if len(labels) > 0: for i in range(len(pts)): feat_id = labels[i] if feats[feat_id] is None: feats[feat_id] = [pts[i]] else: feats[feat_id].append(pts[i]) else: feats[0] = pts for i in range(len(feats)): feat = feats[i] if feat is None: continue print('number of feature ' + str(i) + ' points:', len(feat)) n_points = len(feat) points_3d = Graphic3d_ArrayOfPoints(n_points) for pt in feat: points_3d.AddVertex(pt[0], pt[1], pt[2]) point_cloud = AIS_PointCloud() point_cloud.SetPoints(points_3d) point_cloud.SetColor(colors[i]) ais_context.Display(point_cloud) # occ_display.View_Iso() occ_display.FitAll()
def __init__(self, points, occ_display): n_points = len(points) points_3d = Graphic3d_ArrayOfPoints(n_points) for pt in points: points_3d.AddVertex(pt[0], pt[1], pt[2]) point_cloud = AIS_PointCloud() point_cloud.SetPoints(points_3d) ais_context = occ_display.GetContext() ais_context.Display(point_cloud)
def bunny(event=None): pcd_file = open(os.path.join('models', 'bunny.pcd'), 'r').readlines()[10:] # create the point_cloud pc = Graphic3d_ArrayOfPoints(len(pcd_file)) for line in pcd_file: x, y, z = map(float, line.split()) pc.AddVertex(x, y, z) point_cloud = AIS_PointCloud() point_cloud.SetPoints(pc.GetHandle()) ais_context = display.GetContext().GetObject() ais_context.Display(point_cloud.GetHandle()) display.View_Iso() display.FitAll()
def random_points(event=None): n_points = 500000 # first, create a set of 1000 points points_3d = Graphic3d_ArrayOfPoints(n_points) for idx in range(n_points): x = random.uniform(-50, 50) y = random.uniform(-50, 50) z = random.uniform(-50, 50) points_3d.AddVertex(x, y, z) # then build the point cloud point_cloud = AIS_PointCloud() point_cloud.SetPoints(points_3d.GetHandle()) # display ais_context = display.GetContext().GetObject() ais_context.Display(point_cloud.GetHandle()) display.View_Iso() display.FitAll()
def tabletop(event=None): pcd_file = open(os.path.join('assets', 'models', 'tabletop.pcd'), 'r').readlines()[11:] #create the point_cloud pc = Graphic3d_ArrayOfPoints(len(pcd_file), True) for idx, line in enumerate(pcd_file): x, y, z, rgb = map(float, line.split()) rgb = float2int(rgb) r = (rgb >> 16 & 0x0000ff) / float(255) g = (rgb >> 8 & 0x0000ff) / float(255) b = (rgb & 0x0000ff) / float(255) color = Quantity_Color(r, g, b, Quantity_TOC_RGB) pc.AddVertex(gp_Pnt(x, y, z), color) point_cloud = AIS_PointCloud() point_cloud.SetPoints(pc.GetHandle()) ais_context = display.GetContext().GetObject() ais_context.Display(point_cloud.GetHandle()) display.DisableAntiAliasing() display.View_Iso() display.FitAll()