#[cfg(feature = "serde")]
use serde::Serialize;
use crate::raw::drawing::scene::scene_3d_type::XlsxScene3DType;
use super::backdrop::BackDrop;
use super::camera::Camera;
use super::light_rig::LightRig;
#[cfg_attr(feature = "serde", derive(Serialize))]
#[derive(Debug, PartialEq, Clone)]
pub struct Scene3DProperties {
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub backdrop: Option<BackDrop>,
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub camera: Option<Camera>,
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub light_rig: Option<LightRig>,
}
impl Scene3DProperties {
pub(crate) fn from_raw(raw: Option<XlsxScene3DType>) -> Option<Self> {
let Some(raw) = raw else { return None };
return Some(Self {
backdrop: BackDrop::from_raw(raw.clone().backdrop),
camera: Camera::from_raw(raw.clone().camera),
light_rig: LightRig::from_raw(raw.clone().light_rig),
});
}
}