"""Glyphs: at each vertex of a mesh, another mesh is shown with various orientation options""" from vedo import Sphere, Ellipsoid, Mesh, dataurl, Glyph, show import numpy as np # Create a sphere with resolution 12, set its color and show as wireframe sph = Sphere(res=12).c("white", 0.1).wireframe() randvs = np.random.rand(sph.npoints, 3) # random orientation vectors ####################################### # Create an ellipsoid glyph and scale it down gly1 = Ellipsoid().scale(0.04) # create a Glyph object that will show an ellipsoid at each vertex gsphere1 = Glyph( sph, gly1, orientation_array=randvs, scale_by_vector_size=True, color_by_vector_size=True, c="jet", ) ####################################### # Create a mesh glyph and scale it down gly2 = Mesh(dataurl + "shuttle.obj").rotate_y(180).scale(0.02) # Create a Glyph object that will show a shuttle at each vertex gsphere2 = Glyph( sph, gly2, orientation_array="normals", c="lightblue", ) # Show two groups of objects on N=2 renderers: show([ (sph, gsphere1, __doc__), (sph, gsphere2) ], N=2, bg="bb", zoom=1.4, ).close()