export_obj_single/
export_obj_single.rs1extern 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}