code: def register(self, other, **kwargs):
          
          mesh_to_other, cost = registration.mesh_other(mesh=self,
                                                        other=other,
                                                        **kwargs)
          return mesh_to_other, cost
docs: Align a mesh with another mesh or a PointCloud using
          the principal axes of inertia as a starting point which
          is refined by iterative closest point.
  
          Parameters
          ------------
          mesh : trimesh.Trimesh object
            Mesh to align with other
          other : trimesh.Trimesh or (n, 3) float
            Mesh or points in space
          samples : int
            Number of samples from mesh surface to align
          icp_first : int
            How many ICP iterations for the 9 possible
            combinations of
          icp_final : int
            How many ICP itertations for the closest
            candidate from the wider search
  
          Returns
          -----------
          mesh_to_other : (4, 4) float
            Transform to align mesh to the other object
          cost : float
            Average square distance per point