code: def write_test_pcd(self, num_points=10, pcd_type="rgb", seed=42):
      np.random.seed(seed)
  
      # lx, ly, lz
      dimensions = np.random.uniform(1, 3, size=3)
      # centroid: x, y, z
      location = np.random.uniform((-5, -5, 0), (5, 5, 0))
      # rx, ry, rz
      rotation = np.random.uniform(-np.pi, np.pi, size=3)
  
      points = np.random.uniform(
          -dimensions / 2, dimensions / 2, size=(num_points, 3)
      )
  
      # rotate points
      rotation_matrix = o3d.geometry.get_rotation_matrix_from_xyz(
          rotation
      )
      points = (
          points @ rotation_matrix.T
      )  # equivalent to (rotation_matrix @ points.T).T
  
      # translate points
      points = points + location[np.newaxis, :]
  
      pc = o3d.geometry.PointCloud()
      pc.points = o3d.utility.Vector3dVector(points)
  
      if pcd_type == "rgb" or pcd_type == "intensity":
          rgb = np.random.rand(points.shape[0], 3)
          pc.colors = o3d.utility.Vector3dVector(rgb)
  
      o3d.io.write_point_cloud(self.test_pcd_path, pc, write_ascii=True)
  
imports: import os
  import tempfile
  import unittest
  import numpy
  import open3d
  from PIL import Image
  import fiftyone
  import fiftyone.utils.utils3d
  from decorators import drop_datasets
label_desc: Use image node_id 4 for calling the BaseOrthographicProjectionTests obj's underlying member method code with example usage: obj.write_test_pcd(num_points, pcd_type, seed) without return types