appslib/jsonb/
instance.rs1use serde::{Deserialize, Serialize};
2use uuid::Uuid;
3
4use crate::jsonb::physics::Physics;
5use crate::jsonb::vec3::Vec3;
6use crate::jsonb::vec4::Vec4;
7
8#[derive(Clone, Serialize, Deserialize, Debug)]
9#[serde(rename_all = "camelCase")]
10pub struct Instance {
11 #[serde(default)]
12 pub id: Uuid,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub model: Option<String>,
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub material: Option<String>,
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub position: Option<Vec3>,
19 #[serde(skip_serializing_if = "Option::is_none")]
20 pub quaternion: Option<Vec4>,
21 #[serde(skip_serializing_if = "Option::is_none")]
22 pub euler: Option<Vec3>,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub scale: Option<f32>,
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub physics: Option<Physics>,
27}