Exemplo n.º 1
0
def add_lines(list, geom):
    for line in list:
        prim = core.GeomLinestrips(core.Geom.UHStatic)
        if len(line) > 1:
            for v in line:
                prim.addVertex(v)
            try:
                prim.close_primitive()
                geom.addPrimitive(prim)
            except:
                print(f'DEBUG: exception adding line {line}')
Exemplo n.º 2
0
def test_geom_linestrips_adjacency():
    prim = core.GeomLinestrips(core.GeomEnums.UH_static)
    prim.add_vertex(0)
    prim.add_vertex(1)
    prim.close_primitive()
    prim.add_vertex(1)
    prim.add_vertex(2)
    prim.add_vertex(3)
    prim.close_primitive()
    prim.add_vertex(3)
    prim.add_vertex(4)
    prim.add_vertex(5)
    prim.add_vertex(6)
    prim.close_primitive()

    adj = prim.make_adjacency()
    verts = adj.get_vertex_list()
    cut = adj.get_strip_cut_index()
    assert tuple(verts) == (
        0,
        0,
        1,
        2,
        cut,
        0,
        1,
        2,
        3,
        4,
        cut,
        2,
        3,
        4,
        5,
        6,
        6,
    )

    # Check that it decomposes properly to a lines-adjacency primitive
    prim = adj.decompose()
    assert isinstance(prim, core.GeomLinesAdjacency)
    verts = prim.get_vertex_list()
    assert tuple(verts) == (
        0,
        0,
        1,
        2,
        0,
        1,
        2,
        3,
        1,
        2,
        3,
        4,
        2,
        3,
        4,
        5,
        3,
        4,
        5,
        6,
        4,
        5,
        6,
        6,
    )
def test_geom_linestrips_offset_indexed():
    prim = core.GeomLinestrips(core.GeomEnums.UH_static)
    prim.add_vertex(0)
    prim.add_vertex(1)
    prim.close_primitive()
    prim.add_vertex(1)
    prim.add_vertex(2)
    prim.add_vertex(3)
    prim.close_primitive()
    prim.add_vertex(3)
    prim.add_vertex(4)
    prim.add_vertex(5)
    prim.add_vertex(6)
    prim.close_primitive()

    prim.offset_vertices(100)
    verts = prim.get_vertex_list()
    cut = prim.strip_cut_index
    assert tuple(verts) == (
        100,
        101,
        cut,
        101,
        102,
        103,
        cut,
        103,
        104,
        105,
        106,
    )

    prim.offset_vertices(-100)
    verts = prim.get_vertex_list()
    cut = prim.strip_cut_index
    assert tuple(verts) == (
        0,
        1,
        cut,
        1,
        2,
        3,
        cut,
        3,
        4,
        5,
        6,
    )

    prim.offset_vertices(100, 4, 9)
    verts = prim.get_vertex_list()
    cut = prim.strip_cut_index
    assert tuple(verts) == (
        0,
        1,
        cut,
        1,
        102,
        103,
        cut,
        103,
        104,
        5,
        6,
    )

    # Automatically upgrade to uint32
    prim.offset_vertices(100000)
    assert prim.index_type == core.GeomEnums.NT_uint32
    verts = prim.get_vertex_list()
    cut = prim.strip_cut_index
    assert tuple(verts) == (
        100000,
        100001,
        cut,
        100001,
        100102,
        100103,
        cut,
        100103,
        100104,
        100005,
        100006,
    )