models_cv/
obj.rs

1extern crate nalgebra as na;
2
3use na::Vector3;
4
5pub fn load(path: &str) -> obj::Obj {
6    obj::Obj::load(path).unwrap()
7}
8
9pub fn load_vertex_positions(models: &obj::Obj) -> Vec<Vec<Vector3<f32>>> {
10    models.data.objects.iter().map(|o| {
11        o.groups.iter().map(|g| {
12            g.polys.iter().map(|p| {
13                let i1 = p.0[0].0;
14                let i2 = p.0[1].0;
15                let i3 = p.0[2].0;
16
17                let p0 = models.data.position[i1];
18                let p1 = models.data.position[i2];
19                let p2 = models.data.position[i3];
20
21                vec!(
22                    Vector3::new(p0[0],p0[1],p0[2]),
23                    Vector3::new(p1[0],p1[1],p1[2]),
24                    Vector3::new(p2[0],p2[1],p2[2]))
25            }).flatten().collect::<Vec<_>>()
26        }).flatten().collect::<Vec<_>>()
27    }).collect::<Vec<_>>()
28
29}