gltf_json/extensions/
mesh.rs1use gltf_derive::Validate;
2use serde_derive::{Deserialize, Serialize};
3#[cfg(feature = "extensions")]
4use serde_json::{Map, Value};
5
6#[derive(Clone, Debug, Default, Deserialize, Serialize, Validate)]
11pub struct Mesh {
12 #[cfg(feature = "extensions")]
13 #[serde(default, flatten)]
14 pub others: Map<String, Value>,
15}
16
17#[derive(Clone, Debug, Default, Deserialize, Serialize, Validate)]
19pub struct Primitive {
20 #[cfg(feature = "KHR_materials_variants")]
21 #[serde(
22 default,
23 rename = "KHR_materials_variants",
24 skip_serializing_if = "Option::is_none"
25 )]
26 pub khr_materials_variants: Option<KhrMaterialsVariants>,
27 #[cfg(feature = "extensions")]
28 #[serde(default, flatten)]
29 pub others: Map<String, Value>,
30}
31
32#[cfg(feature = "KHR_materials_variants")]
33#[derive(Clone, Debug, Default, Deserialize, Serialize, Validate)]
34pub struct KhrMaterialsVariants {
35 pub mappings: Vec<Mapping>,
36}
37
38#[cfg(feature = "KHR_materials_variants")]
39#[derive(Clone, Debug, Default, Deserialize, Serialize, Validate)]
40pub struct Mapping {
41 pub material: u32,
42 pub variants: Vec<u32>,
43}