Example #1
0
def test_incident_segments():
    mesh = SegmentSoup([(0, 1), (0, 2)])
    incident = mesh.incident_elements()
    print incident.offsets
    print incident.flat
    incident = map(list, mesh.incident_elements())
    assert incident == [[0, 1], [0], [1]]
Example #2
0
def test_incident_segments():
  mesh = SegmentSoup([(0,1),(0,2)])
  incident = mesh.incident_elements()
  print incident.offsets
  print incident.flat
  incident = map(list,mesh.incident_elements())
  assert incident==[[0,1],[0],[1]]
Example #3
0
def test_nonmanifold_segments():
  random.seed(71318)
  map = injection(12)
  mesh = SegmentSoup(map[asarray([(0,0), # degenerate segment
                                  (1,2),(3,4), # open curve
                                  (4,5),(4,6), # two outgoing segments
                                  (8,7),(9,7), # two incoming segments
                                  (10,11),(11,10)],int32)]) # closed loop
  assert all(mesh.nonmanifold_nodes(False)==sort(map[asarray(xrange(10))]))
  assert all(mesh.nonmanifold_nodes(True)==sort(map[asarray([0,4,7])]))
Example #4
0
def test_polygons():
    random.seed(9831)
    segments = array([
        (0, 0),  # degenerate
        (1, 2),
        (2, 3),
        (3, 1),  # closed
        (4, 5),
        (7, 6),
        (6, 4),
        (4, 8),
        (8, 9),
        (9, 10)
    ])  # nonmanifold
    closed = Nested([(0, ), (1, 2, 3)])
    open = Nested([(4, 5), (7, 6, 4), (4, 8, 9, 10)])

    def closed_key(p):
        p = asarray(p)
        i = argmin(p)
        return tuple(hstack([p[i:], p[:i]]))

    for _ in xrange(4):
        inj = injection(11)
        segs = inj[segments]
        random.shuffle(segs)
        closed2, open2 = SegmentSoup(segs).polygons()
        assert sorted(map(closed_key, closed2)) == sorted(
            closed_key(inj[p]) for p in closed)
        assert sorted(map(tuple, open2)) == sorted(tuple(inj[p]) for p in open)
Example #5
0
def test_nonmanifold_segments():
    random.seed(71318)
    map = injection(12)
    mesh = SegmentSoup(map[asarray(
        [
            (0, 0),  # degenerate segment
            (1, 2),
            (3, 4),  # open curve
            (4, 5),
            (4, 6),  # two outgoing segments
            (8, 7),
            (9, 7),  # two incoming segments
            (10, 11),
            (11, 10)
        ],
        int32)])  # closed loop
    assert all(mesh.nonmanifold_nodes(False) == sort(map[asarray(xrange(10))]))
    assert all(mesh.nonmanifold_nodes(True) == sort(map[asarray([0, 4, 7])]))
Example #6
0
def test_adjacent_segments():
  mesh = SegmentSoup([(0,1),(1,2)])
  assert all(mesh.adjacent_elements()==[(-1,1),(0,-1)])
Example #7
0
def test_bending_triples():
  mesh = SegmentSoup([(7,8),(8,9),(8,10)])
  assert all(mesh.bending_tuples()==[(7,8,9),(7,8,10),(9,8,10)])
Example #8
0
def test_neighbors():
  mesh = SegmentSoup([(0,1),(0,2),(0,2)])
  assert all(mesh.neighbors()==[[1,2],[0],[0]])
Example #9
0
def test_adjacent_segments():
    mesh = SegmentSoup([(0, 1), (1, 2)])
    assert all(mesh.adjacent_elements() == [(-1, 1), (0, -1)])
Example #10
0
def test_bending_triples():
    mesh = SegmentSoup([(7, 8), (8, 9), (8, 10)])
    assert all(mesh.bending_tuples() == [(7, 8, 9), (7, 8, 10), (9, 8, 10)])
Example #11
0
def test_neighbors():
    mesh = SegmentSoup([(0, 1), (0, 2), (0, 2)])
    assert all(mesh.neighbors() == [[1, 2], [0], [0]])