use crate::vector::Vec3; pub trait Camera { /// Returns the current camera position. fn position(&self) -> Vec3; /// Returns the position of the camera target. fn target(&self) -> Vec3; /// Returns the global direction upwards. /// /// The default implementation which returns [`Vec3::UP`] should be fine in most /// cases. fn up(&self) -> Vec3 { Vec3::UP } }