1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#![feature(div_duration)]

pub mod edge;
pub mod error;
mod input;
mod interface;
mod mesh;
pub mod node;
mod state;
mod texture;
mod windowing;

use error::BoxContext;
pub use interface::*;
use mesh::StdMeshes;
pub use state::*;
pub use windowing::*;
use xias::Xias;

fn vec(v: traffloat_types::space::Vector) -> three_d::Vec3 {
    three_d::Vec3::new(v.x.lossy_float(), v.y.lossy_float(), v.z.lossy_float())
}

fn mat(m: traffloat_types::space::Matrix) -> three_d::Mat4 {
    three_d::Mat4::new(
        m[(0, 0)].lossy_float(),
        m[(1, 0)].lossy_float(),
        m[(2, 0)].lossy_float(),
        m[(3, 0)].lossy_float(),
        m[(0, 1)].lossy_float(),
        m[(1, 1)].lossy_float(),
        m[(2, 1)].lossy_float(),
        m[(3, 1)].lossy_float(),
        m[(0, 2)].lossy_float(),
        m[(1, 2)].lossy_float(),
        m[(2, 2)].lossy_float(),
        m[(3, 2)].lossy_float(),
        m[(0, 3)].lossy_float(),
        m[(1, 3)].lossy_float(),
        m[(2, 3)].lossy_float(),
        m[(3, 3)].lossy_float(),
    )
}