pub struct Camera<const W: usize, const H: usize> {
pub gamma: f64,
/* private fields */
}Expand description
A camera in 3D space, with an associated viewport.
The const generic parameters W and H represent the width and height of the viewport in
pixels.
Fields§
§gamma: f64Implementations§
Source§impl<const W: usize, const H: usize> Camera<W, H>
impl<const W: usize, const H: usize> Camera<W, H>
Sourcepub unsafe fn new_unchecked(
origin: Vec3,
right: Vec3,
up: Vec3,
focal_length: f64,
gamma: f64,
) -> Self
pub unsafe fn new_unchecked( origin: Vec3, right: Vec3, up: Vec3, focal_length: f64, gamma: f64, ) -> Self
Constructs a camera with the given origin, orientation and focal length.
§Safety
It is the responsibility of the caller to ensure that the right and up vectors are
orthonormal.
pub fn sampling_rays_for_pixel( &self, rng: &mut Box<dyn RngCore>, sampling_strategy: Arc<dyn SamplingStrategy>, x: usize, y: usize, ) -> Vec<Ray<f64, 3>>
Auto Trait Implementations§
impl<const W: usize, const H: usize> Freeze for Camera<W, H>
impl<const W: usize, const H: usize> RefUnwindSafe for Camera<W, H>
impl<const W: usize, const H: usize> Send for Camera<W, H>
impl<const W: usize, const H: usize> Sync for Camera<W, H>
impl<const W: usize, const H: usize> Unpin for Camera<W, H>
impl<const W: usize, const H: usize> UnwindSafe for Camera<W, H>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more