Struct rin_graphics::camera::Camera[][src]

pub struct Camera { /* fields omitted */ }

Perspective camera that can be positioned and oriented in 3d space as a Node

Implementations

impl Camera[src]

pub fn new(
    eye: Pnt3,
    look_at: Pnt3,
    up: Unit<Vec3>,
    fov: Deg<f32>,
    aspect_ratio: f32
) -> Result<Camera>
[src]

Create a new camera.

pub fn new_with_frustum(
    eye: Pnt3,
    look_at: Pnt3,
    up: Unit<Vec3>,
    fov: Deg<f32>,
    aspect_ratio: f32,
    znear: f32,
    zfar: f32
) -> Result<Camera>
[src]

Creates a new camera from frustum values.

pub fn with_pixel_coordinates(
    size: Vec2<i32>,
    fov: Deg<f32>,
    coordinate_origin: CoordinateOrigin
) -> Camera
[src]

Creates an orthographic camera ready to be used in two dimensional applications

The resulting view will have the same coordinates as the passed size and everything drawn at z = 0 within that viewport will be visible at it’s size in pixels

pub fn projection(&self) -> Mat4[src]

Projection matrix

pub fn view(&self) -> Mat4[src]

View matrix

pub fn projection_view(&self) -> Mat4[src]

Projection * View

pub fn fov(&self) -> Deg<f32>[src]

Vertical field of view

pub fn hfov(&self) -> Deg<f32>[src]

Horizontal field of view

pub fn set_fov(&mut self, fov: Deg<f32>)[src]

Set vertical field of view

pub fn focal_length(&self) -> f32[src]

Return the camera focal length in mm

pub fn set_focal_length(&mut self, f: f32)[src]

Set the focal length in mm

Internally changes the field of view of the camera based on the current sensor width

pub fn set_sensor_width(&mut self, w: f32)[src]

Set the camera sensor width in mm

Internally chanages the field of view of the camera based on the current focal length

pub fn near_far_clip(&self) -> (f32, Option<f32>)[src]

Near and far clip planes as a tuple

pub fn near_clip(&self) -> f32[src]

Near clip

pub fn far_clip(&self) -> Option<f32>[src]

Far clip

pub fn set_near(&mut self, near: f32)[src]

pub fn set_far(&mut self, far: f32)[src]

pub fn set_far_at_infinity(&mut self)[src]

pub fn set_reversed_z(&mut self, reversed_z: bool)[src]

pub fn set_near_far<F: Into<Option<f32>>>(&mut self, near: f32, far: F)[src]

pub fn set_aspect_ratio(&mut self, aspect: f32)[src]

pub fn target(&self) -> &Pnt3[src]

Target the camera will look at, the target will change if the camera is moved or re-oriented

pub fn set_target(&mut self, target: Pnt3)[src]

pub fn enable_depth_clamp(&mut self)[src]

Enables depth clamping

Doesn’t really change the projection or view matrices of the camera but can be use as a flag to signal a renderer to do depth clamping.

pub fn disable_depth_clamp(&mut self)[src]

Disables depth clamping

Doesn’t really change the projection or view matrices of the camera but can be use as a flag to signal a renderer to not do depth clamping.

pub fn depth_clamp(&self) -> bool[src]

Returns if depth clamping is enabled

Doesn’t really change the projection or view matrices of the camera but can be use as a flag to signal a renderer to do depth clamping or not.

pub fn far_at_infinity(&self) -> bool[src]

pub fn reversed_z(&self) -> bool[src]

pub fn set_oblique_near_clip_plane<P: Into<Option<Vec4>>>(&mut self, plane: P)[src]

Changes the projection matrix to set an oblique clip plane

Useful for reflections / refractions

pub fn oblique_clip_plane(&self) -> Option<&Vec4>[src]

pub fn update(&mut self) -> bool[src]

Call every frame to update the camera matrices

Returns true if the camera changed since the last udpate

Trait Implementations

impl CameraExt for Camera[src]

impl CameraPerspective for Camera[src]

impl Clone for Camera[src]

impl<'de> Deserialize<'de> for Camera[src]

impl NodeMut for Camera[src]

impl NodeRef for Camera[src]

impl Serialize for Camera[src]

Auto Trait Implementations

impl RefUnwindSafe for Camera

impl Send for Camera

impl Sync for Camera

impl Unpin for Camera

impl UnwindSafe for Camera

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Any for T where
    T: Any
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<V> IntoPnt<V> for V[src]

impl<V> IntoVec<V> for V[src]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> Serialize for T where
    T: Serialize + ?Sized
[src]

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 
[src]

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]