def test_triangle_neighbors(): """Test efficient vertex neighboring triangles for surfaces""" this = read_source_spaces(fname)[0] this["neighbor_tri"] = [list() for _ in range(this["np"])] for p in range(this["ntri"]): verts = this["tris"][p] this["neighbor_tri"][verts[0]].append(p) this["neighbor_tri"][verts[1]].append(p) this["neighbor_tri"][verts[2]].append(p) this["neighbor_tri"] = [np.array(nb, int) for nb in this["neighbor_tri"]] neighbor_tri = _triangle_neighbors(this["tris"], this["np"]) assert_true(np.array_equal(nt1, nt2) for nt1, nt2 in zip(neighbor_tri, this["neighbor_tri"]))
def test_triangle_neighbors(): """Test efficient vertex neighboring triangles for surfaces.""" this = read_source_spaces(fname)[0] this['neighbor_tri'] = [list() for _ in range(this['np'])] for p in range(this['ntri']): verts = this['tris'][p] this['neighbor_tri'][verts[0]].append(p) this['neighbor_tri'][verts[1]].append(p) this['neighbor_tri'][verts[2]].append(p) this['neighbor_tri'] = [np.array(nb, int) for nb in this['neighbor_tri']] neighbor_tri = _triangle_neighbors(this['tris'], this['np']) assert all(np.array_equal(nt1, nt2) for nt1, nt2 in zip(neighbor_tri, this['neighbor_tri']))
def get_topological_defects(vertices, faces_): # Find neighboring triangles, accumulate vertex normals, normalize neighbor_tri = _triangle_neighbors(faces_, len(vertices)) # Check for topological defects zero, one, two = list(), list(), list() for ni, n in enumerate(neighbor_tri): if len(n) < 3: if len(n) == 0: zero.append(ni) elif len(n) == 1: one.append(ni) else: two.append(ni) return zero, one, two