#![warn(missing_docs)]
#![warn(rustdoc::broken_intra_doc_links)]
use serde::{Deserialize, Serialize};
use super::lightsources::{CircularEmitter, RectangularEmitter};
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Rotation {
#[serde(rename = "X")]
pub x: i32,
#[serde(rename = "Y")]
pub y: i32,
#[serde(rename = "Z")]
pub z: i32,
#[serde(rename = "G0")]
pub g0: i32,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Cuboid {
#[serde(rename = "Width", default)]
pub width: Vec<i32>,
#[serde(rename = "Length", default)]
pub length: Vec<i32>,
#[serde(rename = "Height", default)]
pub height: Vec<i32>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Cylinder {
#[serde(rename = "@plane")]
pub plane: String,
#[serde(rename = "Diameter", default)]
pub diameter: Vec<i32>,
#[serde(rename = "Height", default)]
pub height: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CHeights {
#[serde(rename = "C0", default)]
pub c0: Vec<i32>,
#[serde(rename = "C90", default)]
pub c90: Vec<i32>,
#[serde(rename = "C180", default)]
pub c180: Vec<i32>,
#[serde(rename = "C270", default)]
pub c270: Vec<i32>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SimpleGeometry {
#[serde(rename = "@id")]
pub id: String,
#[serde(rename = "Cuboid", default)]
pub cuboid: Vec<Cuboid>,
#[serde(rename = "Cylinder", default)]
pub cylinder: Vec<Cylinder>,
#[serde(rename = "RectangularEmitter", default)]
pub rectangular_emitter: Vec<RectangularEmitter>,
#[serde(rename = "CircularEmitter", default)]
pub circular_emitter: Vec<CircularEmitter>,
#[serde(rename = "C-Heights", default)]
pub c_heights: Vec<CHeights>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct GeometryFileReference {
#[serde(rename = "@fileId")]
pub file_id: String,
#[serde(rename = "@levelOfDetail", skip_serializing_if = "Option::is_none")]
pub level_of_detail: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ModelGeometry {
#[serde(rename = "@id")]
pub id: String,
#[serde(rename = "GeometryFileReference", default)]
pub geometry_file_reference: Vec<GeometryFileReference>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Geometries {
#[serde(rename = "SimpleGeometry", default)]
pub simple_geometry: Vec<SimpleGeometry>,
#[serde(rename = "ModelGeometry", default)]
pub model_geometry: Vec<ModelGeometry>,
}