pub enum MaterialValues {
Surfaces(Vec<Option<usize>>),
Shells(Vec<Option<MaterialShell>>),
Solids(Vec<Option<MaterialSolid>>),
}Expand description
The values array of a MaterialReference: one index into the
document’s materials palette per surface, so it is nested exactly two
levels less deeply than that geometry’s boundaries (CityJSON 2.0,
section 6.1).
null is permitted at every level, not only at the leaf: a surface, a
whole shell, or a whole solid may have no material. Every one of those
Nones must serialize back as null and never as [] — that is
finding #7, and it is pinned by test at each level.
The variants are ordered shallowest-first; serde tries them in declaration order, so a value only reaches a deeper variant when the shallower ones cannot describe it.
Variants§
Surfaces(Vec<Option<usize>>)
MultiSurface, CompositeSurface: one index per surface.
Shells(Vec<Option<MaterialShell>>)
Solid: one index per surface, per shell.
Solids(Vec<Option<MaterialSolid>>)
MultiSolid, CompositeSolid: one index per surface, per shell, per
solid.
Trait Implementations§
Source§impl Clone for MaterialValues
impl Clone for MaterialValues
Source§fn clone(&self) -> MaterialValues
fn clone(&self) -> MaterialValues
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more