1#[cfg(feature = "serde")]
3use serde::{Deserialize, Serialize};
4
5use crate::Named;
6use crate::{ImageIndex, SamplerIndex, TextureIndex};
7
8#[derive(Debug, Default)]
14#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
15#[cfg_attr(feature = "serde", serde(default))]
16pub struct GltfTextureInfo {
17 pub index: TextureIndex,
19 #[cfg_attr(feature = "serde", serde(rename = "texCoord"))]
21 pub tex_coord: usize,
22 pub scale: f32,
24 pub strength: f32,
26}
27
28impl GltfTextureInfo {
29 pub fn index(&self) -> TextureIndex {
30 self.index
31 }
32}
33
34#[derive(Debug, Default)]
38#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
39#[cfg_attr(feature = "serde", serde(default))]
40pub struct GltfTexture {
41 pub name: String,
43 #[cfg_attr(feature = "serde", serde(rename = "source"))]
45 pub image: ImageIndex,
46 pub sampler: SamplerIndex,
48}
49
50impl GltfTexture {
51 pub fn image(&self) -> ImageIndex {
52 self.image
53 }
54 pub fn sampler(&self) -> SamplerIndex {
55 self.sampler
56 }
57}
58
59impl Named for GltfTexture {
61 type Index = TextureIndex;
62 fn is_name(&self, name: &str) -> bool {
63 self.name == name
64 }
65}