code: def __init__(self, colmap_results_folder, image_path=None):
      self.folder = colmap_results_folder
      if not self.folder.endswith("/"):
          self.folder += "/"
  
      self.image_path = None
      self.load_colmap_project_file(image_path=image_path)
  
      self.cameras = OrderedDict()
      self.images = OrderedDict()
      self.name_to_image_id = dict()
  
      self.last_camera_id = 0
      self.last_image_id = 0
  
      # Nx3 array of point3D xyz's
      self.points3D = np.zeros((0, 3))
  
      # for each element in points3D, stores the id of the point
      self.point3D_ids = np.empty(0)
  
      # point3D_id => index in self.points3D
      self.point3D_id_to_point3D_idx = dict()
  
      # point3D_id => [(image_id, point2D idx in image)]
      self.point3D_id_to_images = dict()
  
      self.point3D_colors = np.zeros((0, 3), dtype=np.uint8)
      self.point3D_errors = np.zeros(0)
  
imports: from collections import OrderedDict, defaultdict
  from io import StringIO
  from itertools import combinations
  import os
  import struct
  from .camera import Camera
  from .image import Image
  import numpy
  from .rotation import Quaternion
label_desc: Use image node_id 1 to create a new SceneManager object  with example: obj = SceneManager(colmap_results_folder, image_path)