appslib/jsonb/
scene_data.rs

1use 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}