Note
Go to the end to download the full example code.
Boundary Boxes
Demonstrates visualizing object bounding boxes
Note
To run this example, you need a model from the source repo’s example folder. If you are running this example from a local copy of the code (dev install) no further actions are needed. Otherwise, you may have to replace the path below to point to the location of the model.
Once the path is set correctly, you can use the model as follows:
import trimesh
import pygfx as gfx
import pylinalg as la
teapot = trimesh.load(model_dir / "teapot.stl")
scene = gfx.Scene()
scene.add(gfx.AmbientLight(), gfx.DirectionalLight())
mesh = gfx.Mesh(
gfx.geometry_from_trimesh(teapot),
gfx.MeshPhongMaterial(),
)
mesh.local.rotation = la.quat_from_euler((0.71, 0.91), order="XY")
scene.add(mesh)
box_world = gfx.BoxHelper(color="red")
box_world.set_transform_by_object(mesh)
scene.add(box_world)
box_local = gfx.BoxHelper(thickness=2, color="green")
box_local.set_transform_by_object(mesh, space="local")
mesh.add(box_local) # note that the parent is `mesh` here, not `scene`
if __name__ == "__main__":
disp = gfx.Display()
disp.show(scene, up=(0, 0, 1))

Total running time of the script: (0 minutes 1.002 seconds)