export_obj_single/
export_obj_single.rs

1extern crate obj_exporter as obj;
2
3use obj::{Geometry, ObjSet, Object, Primitive, Shape, TVertex, Vertex};
4
5pub fn main() {
6  let set = ObjSet {
7    material_library: None,
8    objects: vec![
9      Object {
10        name: "Square".to_owned(),
11        vertices: vec![
12          (-1.0, -1.0, 0.0),
13          (1.0, -1.0, 0.0),
14          (1.0, 1.0, 0.0),
15          (-1.0, 1.0, 0.0),
16        ].into_iter()
17          .map(|(x, y, z)| Vertex { x, y, z })
18          .collect(),
19        tex_vertices: vec![(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0)]
20          .into_iter()
21          .map(|(u, v)| TVertex { u, v, w: 0.0 })
22          .collect(),
23        normals: vec![
24          Vertex {
25            x: 0.0,
26            y: 0.0,
27            z: -1.0,
28          },
29        ],
30        geometry: vec![
31          Geometry {
32            material_name: None,
33            shapes: vec![(0, 1, 2), (0, 2, 3)]
34              .into_iter()
35              .map(|(x, y, z)| Shape {
36                primitive: Primitive::Triangle(
37                  (x, Some(x), Some(0)),
38                  (y, Some(y), Some(0)),
39                  (z, Some(z), Some(0)),
40                ),
41                groups: vec![],
42                smoothing_groups: vec![],
43              })
44              .collect(),
45          },
46        ],
47      },
48    ],
49  };
50
51  obj::export_to_file(&set, "output_single.obj").unwrap();
52}