extends RefCounted

## Utility to store all members of a camera relevant to rendering.

const MEMBERS := ["keep_aspect", "transform", "h_offset", "v_offset", "size",
		"fov", "near", "far", "projection"]

var _state : Dictionary

func _init(camera : Camera3D):
	for member in MEMBERS:
		_state[member] = camera[member]


## Replicate all stored members to the given camera.
func apply(camera : Camera3D) -> void:
	for member in MEMBERS:
		camera[member] = _state[member]