code: def download_scan(scan_id, out_dir, file_types, use_v1_sens):
      # log.info("Downloading ScanNet " + RELEASE_NAME + " scan " + scan_id + " ...")
      if not os.path.isdir(out_dir):
          os.makedirs(out_dir)
      for ft in file_types:
          v1_sens = use_v1_sens and ft == ".sens"
          url = (
              BASE_URL + RELEASE + "/" + scan_id + "/" + scan_id + ft
              if not v1_sens
              else BASE_URL
              + RELEASES[V1_IDX]
              + "/"
              + scan_id
              + "/"
              + scan_id
              + ft
          )
          out_file = out_dir + "/" + scan_id + ft
          download_file(url, out_file)
  
imports: import os
  import os.path
  import shutil
  import json
  import torch
  from glob import glob
  import sys
  import csv
  import logging
  import numpy
  from plyfile import PlyData, PlyElement
  from torch_geometric.data import Data, InMemoryDataset, download_url, extract_zip
  import torch_geometric.transforms
  import multiprocessing
  import pandas
  import tempfile
  import urllib
  from urllib.request import urlopen
  from torch_points3d.datasets.base_dataset import BaseDataset
  import torch_points3d.core.data_transform
  from .None import IGNORE_LABEL
label_desc: Use image node_id 4 for calling a global function with example usage: download_scan(scan_id, out_dir, file_types, use_v1_sens) without return types