code: def change_coordinate_system(
      points3d,
      rotations=(0.0, 0.0, 0.0),
      scale=(1.0, 1.0, 1.0),
      name="change_coordinate_system",
  ):
      """Change coordinate system.
  
      Args:
          points3d: A tensor of shape `[A1, ..., An, M, 3]` containing the
            3D position of M points.
          rotations: A tuple containing the X, Y, Z axis rotation.
          scale: A tuple containing the X, Y, Z axis scale.
          name: A name for this op. Defaults to "change_coordinate_system".
  
      Returns:
          [type]: [description]
      """
      with tf.name_scope(name):
          points3d = tf.convert_to_tensor(points3d)
          rotation = tf.convert_to_tensor(rotations)
          scale = tf.convert_to_tensor(scale)
  
          rotation_matrix = rotation_matrix_3d.from_euler(rotation)
          scaling_matrix = scale * tf.eye(3, 3)
  
          target_shape = [1] * (
              len(points3d.get_shape().as_list()) - 2
          ) + [3, 3]
          transformation = tf.matmul(scaling_matrix, rotation_matrix)
          transformation = tf.reshape(transformation, target_shape)
          return tf.linalg.matrix_transpose(
              tf.matmul(
                  transformation, tf.linalg.matrix_transpose(points3d)
              )
          )
  
file_path: graphics/tensorflow_graphics/projects/radiance_fields/utils.py
imports: import math
  import tensorflow
  from tensorflow_graphics.geometry.transformation import rotation_matrix_3d
  from tensorflow_graphics.util import shape
label_desc: Use image node_id 2 for calling a global function with example usage: change_coordinate_system(points3d, rotations, scale, name) and returns: tf