1use serde::{Deserialize, Serialize};
2use uuid::Uuid;
3
4use crate::jsonb::vec3::Vec3;
5
6#[derive(Clone, Serialize, Deserialize, Debug)]
7#[serde(rename_all = "camelCase")]
8pub struct Light {
9 #[serde(default)]
10 pub id: Uuid,
11 pub l_type: String,
12 #[serde(skip_serializing_if = "Option::is_none")]
13 pub color: Option<String>,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub intensity: Option<f32>,
16 #[serde(skip_serializing_if = "Option::is_none")]
17 pub position: Option<Vec3>,
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub target: Option<Vec3>,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub shadow_bias: Option<f32>,
22}