flake-engine 0.1.1

Immediate-mode game framework built on wgpu + winit
use crate::camera::Camera;
use crate::camera::render_target::RenderTarget;

pub struct Camera3D {
    pub eye: cgmath::Point3<f32>,
    pub target: cgmath::Point3<f32>,
    pub up: cgmath::Vector3<f32>,
    pub aspect: f32,
    pub fovy: f32,
    pub znear: f32,
    pub zfar: f32,
    #[allow(unused)]
    pub render_target: Option<RenderTarget>
}

impl Camera for Camera3D {
    fn matrix(&self) -> cgmath::Matrix4<f32> {
        let view = cgmath::Matrix4::look_at_rh(self.eye, self.target, self.up);
        let proj = cgmath::perspective(cgmath::Deg(self.fovy), self.aspect, self.znear, self.zfar);

        proj * view
    }
}