def test_topomesh(): t = Topomesh(3) def dstr(did): return "%d (%d)" % (did, t.degree(did)) dids = [t.add_wisp(d) for d in range(4)] print[dstr(did) for did in t.wisps()] print[dstr(did) for did in t.wisps(1)] for i in range(3): t.link(dids[i], dids[i + 1]) did = dids[1] print "regions", did, [dstr(rid) for rid in t.regions(did)] print "borders", did, [dstr(bid) for bid in t.borders(did)] did = dids[2] print "regions2", did, [dstr(rid) for rid in t.regions(did, 2)] print "borders2", did, [dstr(bid) for bid in t.borders(did, 2)] t.remove_wisp(did) print[dstr(did) for did in t.wisps()] did = dids[1] print "regions", did, [dstr(rid) for rid in t.regions(did)] print "borders", did, [dstr(bid) for bid in t.borders(did)]
def test_topomesh(): t = Topomesh(3) def dstr (did) : return "%d (%d)" % (did, t.degree(did) ) dids = [t.add_wisp(d) for d in range(4)] print [dstr(did) for did in t.wisps()]
def test_algos(): m = Topomesh(3) protected = [1] ########################## # # single triangle # ########################## for i in xrange(3): m.add_wisp(0, i) for i in xrange(3): m.add_wisp(1, i) m.link(1, i, i) m.link(1, i, (i + 1) % 3) m.add_wisp(2, 3) for i in xrange(3): m.link(2, 3, i) m.add_wisp(3, 0) m.link(3, 0, 3) # flip for eid in m.wisps(1): assert not is_flip_topo_allowed(m, eid)
# ########################## for i in xrange(3): m.add_wisp(0, i) for i in xrange(3): m.add_wisp(1, i) m.link(1, i, i) m.link(1, i, (i + 1) % 3) m.add_wisp(2, 3) for i in xrange(3): m.link(2, 3, i) m.add_wisp(3, 0) m.link(3, 0, 3) #flip for eid in m.wisps(1): assert not is_flip_topo_allowed(m, eid) #collapse for eid in m.wisps(1): assert not is_collapse_topo_allowed(m, eid, protected) ########################## # # double triangles # ########################## m.add_wisp(0, 3) m.add_wisp(1, 3) m.link(1, 3, 0) m.link(1, 3, 3)
# ########################## for i in xrange(3): m.add_wisp(0, i) for i in xrange(3): m.add_wisp(1, i) m.link(1, i, i) m.link(1, i, (i + 1) % 3) m.add_wisp(2, 3) for i in xrange(3): m.link(2, 3, i) m.add_wisp(3, 0) m.link(3, 0, 3) # flip for eid in m.wisps(1): assert not is_flip_topo_allowed(m, eid) # collapse for eid in m.wisps(1): assert not is_collapse_topo_allowed(m, eid, protected) ########################## # # double triangles # ########################## m.add_wisp(0, 3) m.add_wisp(1, 3) m.link(1, 3, 0) m.link(1, 3, 3)