code: def op(
      name,
      vertices,
      faces=None,
      colors=None,
      display_name=None,
      description=None,
      collections=None,
      config_dict=None,
  ):
      """Creates a TensorFlow summary op for mesh rendering.
  
      DEPRECATED: see `summary_v2.py` instead.
  
      Args:
        name: A name for this summary operation.
        vertices: Tensor of shape `[dim_1, ..., dim_n, 3]` representing the 3D
          coordinates of vertices.
        faces: Tensor of shape `[dim_1, ..., dim_n, 3]` containing indices of
          vertices within each triangle.
        colors: Tensor of shape `[dim_1, ..., dim_n, 3]` containing colors for each
          vertex.
        display_name: If set, will be used as the display name in TensorBoard.
          Defaults to `name`.
        description: A longform readable description of the summary data. Markdown
          is supported.
        collections: Which TensorFlow graph collections to add the summary op to.
          Defaults to `['summaries']`. Can usually be ignored.
        config_dict: Dictionary with ThreeJS classes names and configuration.
  
      Returns:
        Merged summary for mesh/point cloud representation.
      """
      display_name = _get_display_name(name, display_name)
      json_config = _get_json_config(config_dict)
  
      # All tensors representing a single mesh will be represented as separate
      # summaries internally. Those summaries will be regrouped on the client before
      # rendering.
      summaries = []
      tensors = [
          metadata.MeshTensor(
              vertices,
              plugin_data_pb2.MeshPluginData.VERTEX,
              tf.float32,
          ),
          metadata.MeshTensor(
              faces, plugin_data_pb2.MeshPluginData.FACE, tf.int32
          ),
          metadata.MeshTensor(
              colors, plugin_data_pb2.MeshPluginData.COLOR, tf.uint8
          ),
      ]
      tensors = [
          tensor for tensor in tensors if tensor.data is not None
      ]
  
      components = metadata.get_components_bitmask(
          [tensor.content_type for tensor in tensors]
      )
  
      for tensor in tensors:
          summaries.append(
              _get_tensor_summary(
                  name,
                  display_name,
                  description,
                  tensor.data,
                  tensor.content_type,
                  components,
                  json_config,
                  collections,
              )
          )
  
      all_summaries = tf.compat.v1.summary.merge(
          summaries, collections=collections, name=name
      )
      return all_summaries
  
file_path: tensorboard/tensorboard/plugins/mesh/summary.py
imports: import json
  import tensorflow
  from tensorboard.plugins.mesh import metadata
  from tensorboard.plugins.mesh import plugin_data_pb2
  from tensorboard.plugins.mesh import summary_v2
label_desc: Use image node_id 4 for calling a global function with example usage: op(name, vertices, faces, colors, display_name, description, collections, config_dict) and returns: all_summaries