slam-viewer 0.1.2

Simple wgpu based SLAM map viewer.
Documentation
use core::fmt::Debug;

use super::camera::Camera;

use nalgebra::Matrix4;
use slam_cv::Number;

#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Uniforms<N>
where
    N: 'static + Number,
{
    view_proj: Matrix4<N>,
}

impl<N> Default for Uniforms<N>
where
    N: 'static + Number,
{
    fn default() -> Self {
        Self {
            view_proj: Matrix4::identity(),
        }
    }
}

impl<N> Uniforms<N>
where
    N: 'static + Number,
{
    pub fn update_view_proj(&mut self, camera: &Camera<N>, aspect: N) {
        self.view_proj = camera.compute_view_proj(aspect);
    }
}

unsafe impl<N> bytemuck::Pod for Uniforms<N> where N: 'static + Number {}
unsafe impl<N> bytemuck::Zeroable for Uniforms<N> where N: 'static + Number {}