@add_object.register(core.PerspectiveCamera)
def _add_object(obj: core.PerspectiveCamera):
    camera = bpy.data.cameras.new(obj.uid)
    camera.type = 'PERSP'
    camera_obj = bpy.data.objects.new(obj.uid, camera)
    setters = {'position': core.AttributeSetter(camera_obj, 'location'), 'quaternion': core.AttributeSetter(camera_obj, 'rotation_quaternion'), 'scale': core.AttributeSetter(camera_obj, 'scale'), 'focal_length': core.AttributeSetter(camera, 'lens'), 'sensor_width': core.AttributeSetter(camera, 'sensor_width')}
    return (camera_obj, setters)
@add_object.register(core.PerspectiveCamera)
def _add_object(obj: core.PerspectiveCamera):
    camera = bpy.data.cameras.new(obj.uid)
    camera.type = 'PERSP'
    camera_obj = bpy.data.objects.new(obj.uid, camera)
    setters = {'position': core.AttributeSetter(camera_obj, 'location'), 'quaternion': core.AttributeSetter(camera_obj, 'rotation_quaternion'), 'scale': core.AttributeSetter(camera_obj, 'scale'), 'focal_length': core.AttributeSetter(camera, 'lens'), 'sensor_width': core.AttributeSetter(camera, 'sensor_width')}
    return (camera_obj, setters)