Camera

Struct Camera 

Source
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: f64

Implementations§

Source§

impl<const W: usize, const H: usize> Camera<W, H>

Source

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.

Source

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V