use super::*;
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct GeoPoint {
pub lng: f64,
pub lat: f64,
}
#[derive(Clone, Copy, Debug, lombok_macros::Data, PartialEq)]
pub struct GeoBounds {
#[get(type(copy))]
pub min_lng: f64,
#[get(type(copy))]
pub min_lat: f64,
#[get(type(copy))]
pub max_lng: f64,
#[get(type(copy))]
pub max_lat: f64,
}
#[derive(Clone, Debug, Default, PartialEq)]
pub struct RegionPolygon {
pub outer: Vec<GeoPoint>,
pub holes: Vec<Vec<GeoPoint>>,
}
#[derive(Clone, Debug, Default, lombok_macros::Data, PartialEq)]
pub struct MapRegion {
pub name: String,
pub polygons: Vec<RegionPolygon>,
}
#[derive(Clone, Debug, Default, lombok_macros::Data, PartialEq)]
pub struct MapData {
pub name: String,
pub regions: Vec<MapRegion>,
pub bounds: GeoBounds,
}
#[derive(Clone, Debug, Default, lombok_macros::Data, PartialEq)]
pub struct MapRegistry {
pub maps: BTreeMap<String, MapData>,
}
#[derive(Clone, Debug, lombok_macros::Data, PartialEq)]
pub struct GeoRegionLayout {
pub name: String,
pub path: Path,
pub center: Point,
}
#[derive(Clone, Debug, lombok_macros::Data, PartialEq)]
pub struct GeoLayout {
pub name: String,
pub regions: Vec<GeoRegionLayout>,
pub transform: Transform2D,
}