code: def load_ply(file_obj,
               resolver=None,
               fix_texture=True,
               *args,
               **kwargs):
      
  
      # OrderedDict which is populated from the header
      elements, is_ascii, image_name = parse_header(file_obj)
  
      # functions will fill in elements from file_obj
      if is_ascii:
          ply_ascii(elements, file_obj)
      else:
          ply_binary(elements, file_obj)
  
      # try to load the referenced image
      image = None
      if image_name is not None:
          try:
              data = resolver.get(image_name)
              image = PIL.Image.open(util.wrap_as_stream(data))
          except BaseException:
              log.warning('unable to load image!',
                          exc_info=True)
  
      kwargs = elements_to_kwargs(elements,
                                  fix_texture=fix_texture,
                                  image=image)
  
      return kwargs
docs: Load a PLY file from an open file object.
  
      Parameters
      ---------
      file_obj : an open file- like object
        Source data, ASCII or binary PLY
      resolver : trimesh.visual.resolvers.Resolver
        Object which can resolve assets
      fix_texture : bool
        If True, will re- index vertices and faces
        so vertices with different UV coordinates
        are disconnected.
  
      Returns
      ---------
      mesh_kwargs : dict
        Data which can be passed to
        Trimesh constructor, eg: a = Trimesh(**mesh_kwargs)