trimesh.collision¶
Classes:
A mesh-mesh collision manager. |
|
|
Data structure for holding information about a collision contact. |
|
Data structure for holding information about a distance query. |
Functions:
|
Create a BVHModel object from a Trimesh object |
|
Create collision objects from a trimesh.Scene object. |
-
class
trimesh.collision.
CollisionManager
¶ Bases:
object
A mesh-mesh collision manager.
Methods:
add_object
(name, mesh[, transform])Add an object to the collision manager.
in_collision_internal
([return_names, …])Check if any pair of objects in the manager collide with one another.
in_collision_other
(other_manager[, …])Check if any object from this manager collides with any object from another manager.
in_collision_single
(mesh[, transform, …])Check a single object for collisions against all objects in the manager.
min_distance_internal
([return_names, …])Get the minimum distance between any pair of objects in the manager.
min_distance_other
(other_manager[, …])Get the minimum distance between any pair of objects, one in each manager.
min_distance_single
(mesh[, transform, …])Get the minimum distance between a single object and any object in the manager.
remove_object
(name)Delete an object from the collision manager.
set_transform
(name, transform)Set the transform for one of the manager’s objects.
-
add_object
(name, mesh, transform=None)¶ Add an object to the collision manager.
If an object with the given name is already in the manager, replace it.
- Parameters
name (str) – An identifier for the object
mesh (Trimesh object) – The geometry of the collision object
transform ((4,4) float) – Homogeneous transform matrix for the object
-
in_collision_internal
(return_names=False, return_data=False)¶ Check if any pair of objects in the manager collide with one another.
- Parameters
return_names (bool) – If true, a set is returned containing the names of all pairs of objects in collision.
return_data (bool) – If true, a list of ContactData is returned as well
- Returns
is_collision (bool) – True if a collision occurred between any pair of objects and False otherwise
names (set of 2-tup) – The set of pairwise collisions. Each tuple contains two names in alphabetical order indicating that the two corresponding objects are in collision.
contacts (list of ContactData) – All contacts detected
-
in_collision_other
(other_manager, return_names=False, return_data=False)¶ Check if any object from this manager collides with any object from another manager.
- Parameters
other_manager (CollisionManager) – Another collision manager object
return_names (bool) – If true, a set is returned containing the names of all pairs of objects in collision.
return_data (bool) – If true, a list of ContactData is returned as well
- Returns
is_collision (bool) – True if a collision occurred between any pair of objects and False otherwise
names (set of 2-tup) – The set of pairwise collisions. Each tuple contains two names (first from this manager, second from the other_manager) indicating that the two corresponding objects are in collision.
contacts (list of ContactData) – All contacts detected
-
in_collision_single
(mesh, transform=None, return_names=False, return_data=False)¶ Check a single object for collisions against all objects in the manager.
- Parameters
mesh (Trimesh object) – The geometry of the collision object
transform ((4,4) float) – Homogeneous transform matrix
return_names (bool) – If true, a set is returned containing the names of all objects in collision with the object
return_data (bool) – If true, a list of ContactData is returned as well
- Returns
is_collision (bool) – True if a collision occurs and False otherwise
names (set of str) – [OPTIONAL] The set of names of objects that collided with the provided one
contacts (list of ContactData) – [OPTIONAL] All contacts detected
-
min_distance_internal
(return_names=False, return_data=False)¶ Get the minimum distance between any pair of objects in the manager.
- Parameters
return_names (bool) – If true, a 2-tuple is returned containing the names of the closest objects.
return_data (bool) – If true, a DistanceData object is returned as well
- Returns
distance (float) – Min distance between any two managed objects
names ((2,) str) – The names of the closest objects
data (DistanceData) – Extra data about the distance query
-
min_distance_other
(other_manager, return_names=False, return_data=False)¶ Get the minimum distance between any pair of objects, one in each manager.
- Parameters
other_manager (CollisionManager) – Another collision manager object
return_names (bool) – If true, a 2-tuple is returned containing the names of the closest objects.
return_data (bool) – If true, a DistanceData object is returned as well
- Returns
distance (float) – The min distance between a pair of objects, one from each manager.
names (2-tup of str) – A 2-tuple containing two names (first from this manager, second from the other_manager) indicating the two closest objects.
data (DistanceData) – Extra data about the distance query
-
min_distance_single
(mesh, transform=None, return_name=False, return_data=False)¶ Get the minimum distance between a single object and any object in the manager.
- Parameters
mesh (Trimesh object) – The geometry of the collision object
transform ((4,4) float) – Homogeneous transform matrix for the object
return_names (bool) – If true, return name of the closest object
return_data (bool) – If true, a DistanceData object is returned as well
- Returns
distance (float) – Min distance between mesh and any object in the manager
name (str) – The name of the object in the manager that was closest
data (DistanceData) – Extra data about the distance query
-
remove_object
(name)¶ Delete an object from the collision manager.
- Parameters
name (str) – The identifier for the object
-
set_transform
(name, transform)¶ Set the transform for one of the manager’s objects. This replaces the prior transform.
- Parameters
name (str) – An identifier for the object already in the manager
transform ((4,4) float) – A new homogeneous transform matrix for the object
-
-
class
trimesh.collision.
ContactData
(names, contact)¶ Bases:
object
Data structure for holding information about a collision contact.
Attributes:
The penetration depth of the 3D point of intersection for this contact.
The 3D point of intersection for this contact.
Methods:
index
(name)Returns the index of the face in contact for the mesh with the given name.
-
property
depth
¶ The penetration depth of the 3D point of intersection for this contact.
- Returns
depth – The penetration depth.
- Return type
float
-
index
(name)¶ Returns the index of the face in contact for the mesh with the given name.
- Parameters
name (str) – The name of the target object.
- Returns
index – The index of the face in collision
- Return type
int
-
property
point
¶ The 3D point of intersection for this contact.
- Returns
point – The intersection point.
- Return type
(3,) float
-
property
-
class
trimesh.collision.
DistanceData
(names, result)¶ Bases:
object
Data structure for holding information about a distance query.
Attributes:
Returns the distance between the two objects.
Methods:
index
(name)Returns the index of the closest face for the mesh with the given name.
point
(name)The 3D point of closest distance on the mesh with the given name.
-
property
distance
¶ Returns the distance between the two objects.
- Returns
distance – The euclidean distance between the objects.
- Return type
float
-
index
(name)¶ Returns the index of the closest face for the mesh with the given name.
- Parameters
name (str) – The name of the target object.
- Returns
index – The index of the face in collisoin.
- Return type
int
-
point
(name)¶ The 3D point of closest distance on the mesh with the given name.
- Parameters
name (str) – The name of the target object.
- Returns
point – The closest point.
- Return type
(3,) float
-
property
-
trimesh.collision.
mesh_to_BVH
(mesh)¶ Create a BVHModel object from a Trimesh object
- Parameters
mesh (Trimesh) – Input geometry
- Returns
bvh – BVH of input geometry
- Return type
fcl.BVHModel
-
trimesh.collision.
scene_to_collision
(scene)¶ Create collision objects from a trimesh.Scene object.
- Parameters
scene (trimesh.Scene) – Scene to create collision objects for
- Returns
manager (CollisionManager) – CollisionManager for objects in scene
objects ({node name: CollisionObject}) – Collision objects for nodes in scene