Exemplo n.º 1
0
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()
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
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()
Exemplo n.º 4
0
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()
Exemplo n.º 5
0
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()