Struct three_d::Camera[][src]

pub struct Camera { /* fields omitted */ }

Used in a render call to define how to view the 3D world.

Implementations

impl Camera[src]

pub fn new_orthographic(
    context: &Context,
    position: Vec3,
    target: Vec3,
    up: Vec3,
    width: f32,
    height: f32,
    depth: f32
) -> Result<Camera, Error>
[src]

New camera which projects the world with an orthographic projection. See also set_view, set_perspective_projection and set_orthographic_projection.

pub fn new_perspective(
    context: &Context,
    position: Vec3,
    target: Vec3,
    up: Vec3,
    field_of_view_y: Degrees,
    aspect: f32,
    z_near: f32,
    z_far: f32
) -> Result<Camera, Error>
[src]

New camera which projects the world with a perspective projection.

pub fn set_perspective_projection(
    &mut self,
    field_of_view_y: Degrees,
    aspect: f32,
    z_near: f32,
    z_far: f32
) -> Result<(), Error>
[src]

Specify the camera to use perspective projection with the given field of view in the y-direction, aspect and near and far plane.

pub fn set_orthographic_projection(
    &mut self,
    width: f32,
    height: f32,
    depth: f32
) -> Result<(), Error>
[src]

Specify the camera to use orthographic projection with the given width, height and depth. The view frustum width is +/- width/2, height is +/- height/2 and depth is 0 to depth.

pub fn set_aspect(&mut self, value: f32) -> Result<bool, Error>[src]

Change the current projection to abide to the given aspect ratio.

pub fn set_view(
    &mut self,
    position: Vec3,
    target: Vec3,
    up: Vec3
) -> Result<(), Error>
[src]

Change the view of the camera. The camera is placed at the given position, looking at the given target and with the given up direction.

pub fn mirror_in_xz_plane(&mut self) -> Result<(), Error>[src]

pub fn in_frustum(&self, aabb: &AxisAlignedBoundingBox) -> bool[src]

Returns whether or not the given bounding box is within the camera frustum. It returns false if it is fully outside and true if it is inside or intersects.

pub fn view_direction_at(&self, screen_coordinates: (f64, f64)) -> Vec3[src]

Returns the view direction at the given screen/image plane coordinates. The coordinates must be between 0 and 1, where (0, 0) indicate the top left corner of the screen and (1, 1) indicate the bottom right corner.

pub fn projection_type(&self) -> &ProjectionType[src]

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

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

pub fn position(&self) -> &Vec3[src]

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

pub fn up(&self) -> &Vec3[src]

pub fn matrix_buffer(&self) -> &UniformBuffer[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> 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<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.