Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bevyengine
GitHub Repository: bevyengine/bevy
Path: blob/main/crates/bevy_gltf/src/loader/gltf_ext/mesh.rs
6598 views
1
use bevy_mesh::PrimitiveTopology;
2
3
use gltf::{
4
mesh::{Mesh, Mode},
5
Material,
6
};
7
8
use crate::GltfError;
9
10
pub(crate) fn primitive_name(mesh: &Mesh<'_>, material: &Material) -> String {
11
let mesh_name = mesh.name().unwrap_or("Mesh");
12
13
if let Some(material_name) = material.name() {
14
format!("{mesh_name}.{material_name}")
15
} else {
16
mesh_name.to_string()
17
}
18
}
19
20
/// Maps the `primitive_topology` from glTF to `wgpu`.
21
#[cfg_attr(
22
not(target_arch = "wasm32"),
23
expect(
24
clippy::result_large_err,
25
reason = "`GltfError` is only barely past the threshold for large errors."
26
)
27
)]
28
pub(crate) fn primitive_topology(mode: Mode) -> Result<PrimitiveTopology, GltfError> {
29
match mode {
30
Mode::Points => Ok(PrimitiveTopology::PointList),
31
Mode::Lines => Ok(PrimitiveTopology::LineList),
32
Mode::LineStrip => Ok(PrimitiveTopology::LineStrip),
33
Mode::Triangles => Ok(PrimitiveTopology::TriangleList),
34
Mode::TriangleStrip => Ok(PrimitiveTopology::TriangleStrip),
35
mode => Err(GltfError::UnsupportedPrimitive { mode }),
36
}
37
}
38
39