slam-viewer 0.1.2

Simple wgpu based SLAM map viewer.
Documentation
use super::base::Camera;
use super::coord::CoordSystemRh;

use nalgebra::{Point3, Vector3};
use slam_cv::Number;

pub struct CameraFrustum<N>
where
    N: Number,
{
    pub eye: Point3<N>,
    pub at: Point3<N>,

    pub fovy: N,
    pub znear: N,
    pub zfar: N,
}

impl<N> Into<Camera<N>> for CameraFrustum<N>
where
    N: Number,
{
    fn into(self) -> Camera<N> {
        let mut camera = Camera {
            eye: Vector3::zeros().into(),
            yaw: N::zero(),
            pitch: N::zero(),

            fovy: self.fovy,
            znear: self.znear,
            zfar: self.zfar,

            coord_system: CoordSystemRh::from_up_axis(Vector3::y_axis()),
        };

        camera.look_at(Some(self.eye), self.at);

        camera
    }
}