trimesh.boolean¶
boolean.py¶
Do boolean operations on meshes using either Blender or Manifold.
- trimesh.boolean.boolean_manifold(meshes: Iterable, operation: str, check_volume: bool = True, **kwargs)¶
Run an operation on a set of meshes using the Manifold engine.
- Parameters:
meshes (list of trimesh.Trimesh) – Meshes to be processed
operation – Which boolean operation to do.
check_volume – Raise an error if not all meshes are watertight positive volumes. Advanced users may want to ignore this check as it is expensive.
kwargs – Passed through to the engine.
- trimesh.boolean.difference(meshes: Iterable, engine: str | None = None, check_volume: bool = True, **kwargs)¶
Compute the boolean difference between a mesh an n other meshes.
- Parameters:
meshes (sequence of trimesh.Trimesh) – Meshes to be processed.
engine – Which backend to use, i.e. ‘blender’ or ‘manifold’
check_volume – Raise an error if not all meshes are watertight positive volumes. Advanced users may want to ignore this check as it is expensive.
kwargs – Passed through to the engine.
- Returns:
A Trimesh that contains meshes[0] - meshes[1:]
- Return type:
difference
- trimesh.boolean.intersection(meshes: Iterable, engine: str | None = None, check_volume: bool = True, **kwargs)¶
Compute the boolean intersection between a mesh and other meshes.
- Parameters:
meshes (list of trimesh.Trimesh) – Meshes to be processed
engine (str) – Which backend to use, i.e. ‘blender’ or ‘manifold’
check_volume – Raise an error if not all meshes are watertight positive volumes. Advanced users may want to ignore this check as it is expensive.
kwargs – Passed through to the engine.
- Returns:
A Trimesh that contains the intersection geometry.
- Return type:
intersection
- trimesh.boolean.reduce_cascade(operation: Callable, items: Iterable)¶
Call a function in a cascaded pairwise way against a flat sequence of items. This should produce the same result as functools.reduce but may be faster for some functions that for example perform only as fast as their largest input.
- For example on a b c d e f g this function would run and return:
a b c d e f ab cd ef g abcd efg
-> abcdefg
- Where functools.reduce would run and return:
a b ab c abc d abcd e abcde f abcdef g
-> abcdefg
- Parameters:
operation – The function to call on pairs of items.
items – The flat list of items to apply operation against.
- trimesh.boolean.union(meshes: Iterable, engine: str | None = None, check_volume: bool = True, **kwargs)¶
Compute the boolean union between a mesh an n other meshes.
- Parameters:
meshes (list of trimesh.Trimesh) – Meshes to be processed
engine (str) – Which backend to use, i.e. ‘blender’ or ‘manifold’
check_volume – Raise an error if not all meshes are watertight positive volumes. Advanced users may want to ignore this check as it is expensive.
kwargs – Passed through to the engine.
- Returns:
A Trimesh that contains the union of all passed meshes.
- Return type:
union