use threemf2::core::{
OptionalResourceId,
build::{Build, Item},
mesh::{Mesh, Triangle, Triangles, Vertex, Vertices},
metadata::Metadata,
model::{Model, Unit},
object::{Object, ObjectKind, ObjectType},
resources::Resources,
types::OptionalResourceIndex,
};
use std::vec;
fn main() {
let model = Model {
unit: Some(Unit::Inch),
requiredextensions: None,
recommendedextensions: None,
metadata: vec![Metadata {
name: "Test metadata".to_string(),
preserve: None,
value: None,
}],
resources: Resources {
object: vec![Object {
id: 1,
objecttype: Some(ObjectType::Model),
thumbnail: None,
partnumber: None,
name: None,
pid: OptionalResourceId::none(),
pindex: OptionalResourceIndex::none(),
uuid: None,
kind: Some(ObjectKind::Mesh(Mesh {
vertices: Vertices {
vertex: vec![
Vertex::new(0.0, 0.0, 0.0),
Vertex::new(-1.0, 0.0, 0.0),
Vertex::new(-1.0, 1.0, 0.0),
],
},
triangles: Triangles {
triangle: vec![Triangle {
v1: 0,
v2: 2,
v3: 3,
p1: OptionalResourceIndex::none(),
p2: OptionalResourceIndex::none(),
p3: OptionalResourceIndex::none(),
pid: OptionalResourceId::none(),
}],
},
trianglesets: None,
beamlattice: None,
})),
}],
basematerials: vec![],
},
build: Build {
uuid: None,
item: vec![Item {
objectid: 1,
transform: None,
partnumber: None,
path: None,
uuid: None,
}],
},
};
println!("Number of build items: {}", model.build.item.len());
}