1extern crate obj_exporter as obj;
2
3use obj::{Geometry, ObjSet, Object, Primitive, Shape, Vertex};
4
5pub fn main() {
6 let set = ObjSet {
7 material_library: None,
8 objects: vec![
9 Object {
10 name: "Square1".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![],
20 normals: vec![],
21 geometry: vec![
22 Geometry {
23 material_name: None,
24 shapes: vec![(0, 1, 2), (0, 2, 3)]
25 .into_iter()
26 .map(|(x, y, z)| Shape {
27 primitive: Primitive::Triangle((x, None, None), (y, None, None), (z, None, None)),
28 groups: vec![],
29 smoothing_groups: vec![],
30 })
31 .collect(),
32 },
33 ],
34 },
35 Object {
36 name: "Square2".to_owned(),
37 vertices: vec![
38 (1.0, -1.0, 0.0),
39 (2.0, -1.0, 0.0),
40 (2.0, 1.0, 0.0),
41 (1.0, 1.0, 0.0),
42 ].into_iter()
43 .map(|(x, y, z)| Vertex { x, y, z })
44 .collect(),
45 tex_vertices: vec![],
46 normals: vec![],
47 geometry: vec![
48 Geometry {
49 material_name: None,
50 shapes: vec![(0, 1, 2), (0, 2, 3)]
51 .into_iter()
52 .map(|(x, y, z)| Shape {
53 primitive: Primitive::Triangle((x, None, None), (y, None, None), (z, None, None)),
54 groups: vec![],
55 smoothing_groups: vec![],
56 })
57 .collect(),
58 },
59 ],
60 },
61 ],
62 };
63
64 obj::export_to_file(&set, "output_multiple.obj").unwrap();
65}