1#[cfg(feature = "serde")]
3use serde::{Deserialize, Serialize};
4
5use crate::Named;
6use crate::{ImageIndex, ViewIndex};
7
8#[derive(Debug, Default)]
11#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
12#[cfg_attr(feature = "serde", serde(default))]
13pub struct GltfImage {
14 pub name: String,
16 pub uri: Option<String>,
18 #[cfg_attr(feature = "serde", serde(rename = "mimeType"))]
20 pub mime_type: String,
21 #[cfg_attr(feature = "serde", serde(rename = "bufferView"))]
22 pub buffer_view: ViewIndex,
23}
24
25impl GltfImage {
27 pub fn uri(&self) -> Option<&str> {
29 self.uri.as_deref()
30 }
31
32 pub fn buffer_view(&self) -> ViewIndex {
34 self.buffer_view
35 }
36
37 pub fn mime_type(&self) -> &str {
39 &self.mime_type
40 }
41}
42
43impl Named for GltfImage {
45 type Index = ImageIndex;
46 fn is_name(&self, name: &str) -> bool {
47 self.name == name
48 }
49}