ecitygml_core/model/
solitary_vegetation_object.rs

1use 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}