trimesh.repair

repair.py

Fill holes and fix winding and normals of meshes.

trimesh.repair.broken_faces(mesh, color=None)

Return the index of faces in the mesh which break the watertight status of the mesh.

Parameters
  • mesh (trimesh.Trimesh) – Mesh to check broken faces on

  • color ((4,) uint8 or None) – Will set broken faces to this color if not None

Returns

broken – Indexes of mesh.faces

Return type

(n, ) int

trimesh.repair.fill_holes(mesh)

Fill single- triangle holes on triangular meshes by adding new triangles to fill the holes. New triangles will have proper winding and normals, and if face colors exist the color of the last face will be assigned to the new triangles.

Parameters

mesh (trimesh.Trimesh) – Mesh will be repaired in- place

trimesh.repair.fix_inversion(mesh, multibody=False)

Check to see if a mesh has normals pointing “out.”

Parameters
  • mesh (trimesh.Trimesh) – Mesh to fix.

  • multibody (bool) – If True will try to fix normals on every body

Notes

mesh.face : may reverse faces

trimesh.repair.fix_normals(mesh, multibody=False)

Fix the winding and direction of a mesh face and face normals in-place.

Really only meaningful on watertight meshes but will orient all faces and winding in a uniform way for non-watertight face patches as well.

Parameters
  • mesh (trimesh.Trimesh) – Mesh to fix normals on

  • multibody (bool) – if True try to correct normals direction on every body rather than just one

Notes

mesh.faces : will flip columns on inverted faces

trimesh.repair.fix_winding(mesh)

Traverse and change mesh faces in-place to make sure winding is correct, with edges on adjacent faces in opposite directions.

Parameters

mesh (Trimesh object) –

Notes

mesh.face : will reverse columns of certain faces