ecitygml_core/model/core/
implicit_geometry.rs1use egml::model::geometry::primitives::Point;
2use egml::model::geometry::{DirectPosition, Envelope};
3use nalgebra::Isometry3;
4
5#[derive(Debug, Clone, PartialEq, Default)]
6pub struct ImplicitGeometry {
7 pub reference_point: Point,
8}
9
10impl ImplicitGeometry {
11 pub fn new(reference_point: Point) -> Self {
12 Self { reference_point }
13 }
14
15 pub fn points(&self) -> Vec<&DirectPosition> {
16 vec![&self.reference_point.pos()]
17 }
18
19 pub fn apply_transform(&mut self, m: &Isometry3<f64>) {
20 self.reference_point.apply_transform(m);
21 }
22
23 pub fn compute_envelope(&self) -> Option<Envelope> {
24 Some(self.reference_point.compute_envelope())
26 }
27}