ecitygml_core/model/
solitary_vegetation_object.rs1use crate::model::core::OccupiedSpace;
2use crate::operations::{CityObjectVisitor, FeatureWithGeometry, Visitable};
3use egml::model::geometry::Envelope;
4use nalgebra::Isometry3;
5
6#[derive(Debug, Clone, PartialEq)]
7pub struct SolitaryVegetationObject {
8 pub occupied_space: OccupiedSpace,
9}
10
11impl SolitaryVegetationObject {
12 pub fn new(occupied_space: OccupiedSpace) -> Self {
13 Self { occupied_space }
14 }
15}
16
17impl Visitable for SolitaryVegetationObject {
18 fn accept<V: CityObjectVisitor>(&self, visitor: &mut V) {
19 visitor.visit_solitary_vegetation_object(self);
20 }
21}
22
23impl FeatureWithGeometry for SolitaryVegetationObject {
24 fn envelope(&self) -> Option<Envelope> {
25 self.occupied_space.envelope()
26 }
27
28 fn apply_transform(&mut self, m: &Isometry3<f64>) {
29 self.occupied_space.apply_transform(m);
30 }
31}