Beispiel #1
0
HERE = os.path.dirname(__file__)
FILE = os.path.join(HERE, '..', 'data', 'tubemesh.json')

mesh = Mesh.from_json(FILE)

tri = mesh.copy()
mesh_quads_to_triangles(tri)

# ==============================================================================
# Isolines
# ==============================================================================

M = tri.to_vertices_and_faces()
S = mesh.vertices_attribute('z')

vertices, edges = igl.trimesh_isolines(M, S, 50)

levels = groupby(sorted(edges, key=lambda edge: vertices[edge[0]][2]),
                 key=lambda edge: vertices[edge[0]][2])

# ==============================================================================
# Visualisation
# ==============================================================================

smin = min(S)
smax = max(S)

lines = []
for value, edges in levels:
    for i, j in edges:
        lines.append({
Beispiel #2
0
mesh = Mesh.from_json(FILE)
mesh_quads_to_triangles(mesh)

# ==============================================================================
# Isolines
# ==============================================================================

key_index = mesh.key_index()

V = mesh.vertices_attributes('xyz')
F = [[key_index[key] for key in mesh.face_vertices(fkey)] for fkey in mesh.faces()]
S = mesh.vertices_attribute('z')
N = 50

vertices, levels = igl.trimesh_isolines(V, F, S, N)

# ==============================================================================
# Visualisation
# ==============================================================================

smin = min(S)
smax = max(S)

lines = []
for scalar, edges in levels:
    for i, j in edges:
        lines.append({
            'start' : vertices[i],
            'end'   : vertices[j],
            'color' : i_to_rgb((scalar - smin) / (smax - smin))