trimesh.bounds
- trimesh.bounds.contains(bounds, points)
Do an axis aligned bounding box check on a list of points.
- Parameters
bounds ((2, dimension) float) – Axis aligned bounding box
points ((n, dimension) float) – Points in space
- Returns
points_inside – True if points are inside the AABB
- Return type
(n,) bool
- trimesh.bounds.corners(bounds)
Given a pair of axis aligned bounds, return all 8 corners of the bounding box.
- Parameters
bounds ((2,3) or (2,2) float) – Axis aligned bounds
- Returns
corners – Corner vertices of the cube
- Return type
(8,3) float
- trimesh.bounds.minimum_cylinder(obj, sample_count=6, angle_tol=0.001)
Find the approximate minimum volume cylinder which contains a mesh or a a list of points.
Samples a hemisphere then uses scipy.optimize to pick the final orientation of the cylinder.
A nice discussion about better ways to implement this is here: https://www.staff.uni-mainz.de/schoemer/publications/ALGO00.pdf
- Parameters
obj (trimesh.Trimesh, or (n, 3) float) – Mesh object or points in space
sample_count (int) – How densely should we sample the hemisphere. Angular spacing is 180 degrees / this number
- Returns
result –
- With keys:
’radius’ : float, radius of cylinder ‘height’ : float, height of cylinder ‘transform’ : (4,4) float, transform from the origin
to centered cylinder
- Return type
dict
- trimesh.bounds.oriented_bounds(obj, angle_digits=1, ordered=True, normal=None)
Find the oriented bounding box for a Trimesh
- Parameters
obj (trimesh.Trimesh, (n, 2) float, or (n, 3) float) – Mesh object or points in 2D or 3D space
angle_digits (int) – How much angular precision do we want on our result. Even with less precision the returned extents will cover the mesh albeit with larger than minimal volume, and may experience substantial speedups.
ordered (bool) – Return a consistent order for bounds
normal (None or (3,) float) – Override search for normal on 3D meshes
- Returns
to_origin ((4,4) float) – Transformation matrix which will move the center of the bounding box of the input mesh to the origin.
extents ((3,) float) – The extents of the mesh once transformed with to_origin
- trimesh.bounds.oriented_bounds_2D(points, qhull_options='QbB')
Find an oriented bounding box for an array of 2D points.
- Parameters
points ((n,2) float) – Points in 2D.
- Returns
transform ((3,3) float) – Homogeneous 2D transformation matrix to move the input points so that the axis aligned bounding box is CENTERED AT THE ORIGIN.
rectangle ((2,) float) – Size of extents once input points are transformed by transform
- trimesh.bounds.to_extents(bounds)
Convert an axis aligned bounding box to extents and transform.
- Parameters
bounds ((2, 3) float) – Axis aligned bounds in space
- Returns
extents ((3,) float) – Extents of the bounding box
transform ((4, 4) float) – Homogeneous transform moving extents to bounds