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: Point<f32, U3>,
    look_at: Point<f32, U3>,
    up: Unit<Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>>,
    fov: Deg<f32>,
    aspect_ratio: f32
) -> Result<Camera, Error>
[src]

Create a new camera.

pub fn new_with_frustum(
    eye: Point<f32, U3>,
    look_at: Point<f32, U3>,
    up: Unit<Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>>,
    fov: Deg<f32>,
    aspect_ratio: f32,
    znear: f32,
    zfar: f32
) -> Result<Camera, Error>
[src]

Creates a new camera from frustum values.

pub fn with_pixel_coordinates(
    size: Matrix<i32, U2, U1, <DefaultAllocator as Allocator<i32, U2, U1>>::Buffer>,
    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
) -> Matrix<f32, U4, U4, <DefaultAllocator as Allocator<f32, U4, U4>>::Buffer>
[src]

Projection matrix

pub fn view(
    &self
) -> Matrix<f32, U4, U4, <DefaultAllocator as Allocator<f32, U4, U4>>::Buffer>
[src]

View matrix

pub fn projection_view(
    &self
) -> Matrix<f32, U4, U4, <DefaultAllocator as Allocator<f32, U4, U4>>::Buffer>
[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>(&mut self, near: f32, far: F) where
    F: Into<Option<f32>>, 
[src]

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

pub fn target(&self) -> &Point<f32, U3>[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: Point<f32, U3>)[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>(&mut self, plane: P) where
    P: Into<Option<Matrix<f32, U4, U1, <DefaultAllocator as Allocator<f32, U4, U1>>::Buffer>>>, 
[src]

Changes the projection matrix to set an oblique clip plane

Useful for reflections / refractions

pub fn oblique_clip_plane(
    &self
) -> Option<&Matrix<f32, U4, U1, <DefaultAllocator as Allocator<f32, U4, U1>>::Buffer>>
[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> Downcast for T where
    T: Any
[src]

impl<T> DowncastSync for T where
    T: Any + Send + Sync
[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]