appslib/jsonb/
scene_data.rs1use serde::{Deserialize, Serialize};
2use crate::enums::loading_algorithm::LoadingAlgorithm;
3
4use crate::jsonb::animation::Animation;
5use crate::jsonb::camera::Camera;
6use crate::jsonb::instance::Instance;
7use crate::jsonb::light::Light;
8use crate::jsonb::material::Material;
9use crate::jsonb::matrix3x3::Matrix3x3;
10use crate::jsonb::model::Model;
11
12#[derive(Clone, Serialize, Deserialize, Debug)]
13#[serde(rename_all = "camelCase")]
14pub struct SceneData {
15 pub scene_lib_name: String,
16 #[serde(skip_serializing_if = "Option::is_none")]
17 pub skybox_color: Option<String>,
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub lights: Option<Vec<Light>>,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub camera: Option<Camera>,
22 #[serde(skip_serializing_if = "Option::is_none")]
23 pub materials: Option<Vec<Material>>,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub models: Option<Vec<Model>>,
26 #[serde(skip_serializing_if = "Option::is_none")]
27 pub animations: Option<Vec<Animation>>,
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub instances: Option<Vec<Instance>>,
30 #[serde(skip_serializing_if = "Option::is_none")]
31 pub space_basis: Option<Matrix3x3>,
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub assets_loading_algorithm: Option<LoadingAlgorithm>
34}