ecitygml-core 0.0.2-alpha.5

Core primitives and operations for processing CityGML data.
Documentation
use crate::arena::city_model_arena::CityModelArena;
use crate::arena::convert::appearance::abstract_surface_data_property::flatten_abstract_surface_data_property;
use crate::arena::convert::core::flatten_abstract_appearance;
use crate::model::appearance::Appearance;
use crate::model::common::arena::InternalKey;
use crate::model::core::AsAbstractAppearanceMut;

pub fn flatten_appearance(
    mut appearance: Appearance,
    city_model_arena: &mut CityModelArena,
) -> InternalKey {
    flatten_abstract_appearance(appearance.abstract_appearance_mut(), city_model_arena);

    for prop in appearance.surface_data_mut() {
        flatten_abstract_surface_data_property(prop, city_model_arena);
    }

    city_model_arena.insert_feature(appearance.into()).into()
}