From 6bf4059c40144e2532e6947ac65b68d169d34c5f Mon Sep 17 00:00:00 2001 From: Taku Fukada Date: Sat, 6 Jan 2024 17:09:56 +0900 Subject: [PATCH] disable lto --- Cargo.toml | 3 --- nusamai-citygml/src/geometry.rs | 16 +++++++++++++--- nusamai-citygml/src/object.rs | 2 +- nusamai-citygml/src/parser.rs | 5 +++-- nusamai-plateau/examples/parse.rs | 2 +- nusamai-plateau/tests/test_cityfurniture.rs | 6 ++++-- nusamai-plateau/tests/test_relief.rs | 4 ++-- nusamai-plateau/tests/test_transportations.rs | 4 ++-- 8 files changed, 26 insertions(+), 16 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 08a44c98e..35c51b80c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,3 @@ members = [ "nusamai", ] resolver = "2" - -[profile.release] -lto = true \ No newline at end of file diff --git a/nusamai-citygml/src/geometry.rs b/nusamai-citygml/src/geometry.rs index 36318c630..8f6689922 100644 --- a/nusamai-citygml/src/geometry.rs +++ b/nusamai-citygml/src/geometry.rs @@ -35,10 +35,19 @@ pub struct GeometryRefEntry { pub type GeometryRef = Vec; +#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))] +#[derive(Debug, Default)] +pub enum CRS { + #[default] + WGS84, + JGD2011, +} + /// Geometries in a toplevel city object and its children. #[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))] #[derive(Debug, Default)] -pub struct Geometries { +pub struct GeometryStore { + pub crs: CRS, pub vertices: Vec<[f64; 3]>, pub multipolygon: MultiPolygon<'static, 1, u32>, pub multilinestring: MultiLineString<'static, 1, u32>, @@ -75,7 +84,7 @@ impl GeometryCollector { })); } - pub fn into_geometries(self) -> Geometries { + pub fn into_geometries(self) -> GeometryStore { let mut vertices = Vec::with_capacity(self.vertices.len()); for vbits in &self.vertices { vertices.push([ @@ -84,7 +93,8 @@ impl GeometryCollector { f64::from_bits(vbits[2]), ]); } - Geometries { + GeometryStore { + crs: CRS::JGD2011, vertices, multipolygon: self.multipolygon, multilinestring: self.multilinestring, diff --git a/nusamai-citygml/src/object.rs b/nusamai-citygml/src/object.rs index 6561e532c..2dae152f8 100644 --- a/nusamai-citygml/src/object.rs +++ b/nusamai-citygml/src/object.rs @@ -11,7 +11,7 @@ pub type Map = indexmap::IndexMap; #[derive(Debug, Deserialize, Serialize)] pub struct CityObject { pub root: Value, - pub geometries: geometry::Geometries, + pub geometries: geometry::GeometryStore, } #[derive(Debug, Serialize, Deserialize, PartialEq)] diff --git a/nusamai-citygml/src/parser.rs b/nusamai-citygml/src/parser.rs index 042788efb..41687dd0a 100644 --- a/nusamai-citygml/src/parser.rs +++ b/nusamai-citygml/src/parser.rs @@ -10,7 +10,8 @@ use url::Url; use crate::codelist::{self, CodeResolver}; use crate::geometry::{ - Geometries, GeometryCollector, GeometryParseType, GeometryRef, GeometryRefEntry, GeometryType, + GeometryCollector, GeometryParseType, GeometryRef, GeometryRefEntry, GeometryStore, + GeometryType, }; use crate::namespace::{wellknown_prefix_from_nsres, GML31_NS}; @@ -294,7 +295,7 @@ impl SubTreeReader<'_, '_, R> { &self.state.context } - pub fn collect_geometries(&mut self) -> Geometries { + pub fn collect_geometries(&mut self) -> GeometryStore { let collector = std::mem::take(&mut self.state.geometry_collector); collector.into_geometries() } diff --git a/nusamai-plateau/examples/parse.rs b/nusamai-plateau/examples/parse.rs index e78f772aa..7cc58917f 100644 --- a/nusamai-plateau/examples/parse.rs +++ b/nusamai-plateau/examples/parse.rs @@ -8,7 +8,7 @@ use nusamai_citygml::{object::Value, CityGMLElement, CityGMLReader, ParseError, #[derive(Debug, Deserialize, Serialize)] struct TopLevelCityObject { root: Value, - geometries: nusamai_citygml::Geometries, + geometries: nusamai_citygml::GeometryStore, } fn example_toplevel_dispatcher( diff --git a/nusamai-plateau/tests/test_cityfurniture.rs b/nusamai-plateau/tests/test_cityfurniture.rs index add2e7674..2579db103 100644 --- a/nusamai-plateau/tests/test_cityfurniture.rs +++ b/nusamai-plateau/tests/test_cityfurniture.rs @@ -3,14 +3,16 @@ use std::path::Path; use url::Url; -use nusamai_citygml::{CityGMLElement, CityGMLReader, Code, Geometries, ParseError, SubTreeReader}; +use nusamai_citygml::{ + CityGMLElement, CityGMLReader, Code, GeometryStore, ParseError, SubTreeReader, +}; use nusamai_plateau::models::cityfurniture::CityFurniture; use nusamai_plateau::models::TopLevelCityObject; #[derive(Default, Debug)] struct ParsedData { cityfurnitures: Vec, - geometries: Vec, + geometries: Vec, } fn toplevel_dispatcher(st: &mut SubTreeReader) -> Result { diff --git a/nusamai-plateau/tests/test_relief.rs b/nusamai-plateau/tests/test_relief.rs index b9db1ef4d..0d2129ac9 100644 --- a/nusamai-plateau/tests/test_relief.rs +++ b/nusamai-plateau/tests/test_relief.rs @@ -3,13 +3,13 @@ use std::path::Path; use url::Url; -use nusamai_citygml::{CityGMLElement, CityGMLReader, Geometries, ParseError, SubTreeReader}; +use nusamai_citygml::{CityGMLElement, CityGMLReader, GeometryStore, ParseError, SubTreeReader}; use nusamai_plateau::models::{relief, ReliefFeature, TopLevelCityObject}; #[derive(Default, Debug)] struct ParsedData { relief: Vec, - geometries: Vec, + geometries: Vec, } fn toplevel_dispatcher(st: &mut SubTreeReader) -> Result { diff --git a/nusamai-plateau/tests/test_transportations.rs b/nusamai-plateau/tests/test_transportations.rs index a5a5cbbce..12f1f988a 100644 --- a/nusamai-plateau/tests/test_transportations.rs +++ b/nusamai-plateau/tests/test_transportations.rs @@ -4,7 +4,7 @@ use std::path::Path; use url::Url; use nusamai_citygml::{ - CityGMLElement, CityGMLReader, Code, Geometries, Measure, ParseError, SubTreeReader, + CityGMLElement, CityGMLReader, Code, GeometryStore, Measure, ParseError, SubTreeReader, }; use nusamai_plateau::models::Road; use nusamai_plateau::models::TopLevelCityObject; @@ -12,7 +12,7 @@ use nusamai_plateau::models::TopLevelCityObject; #[derive(Default, Debug)] struct ParsedData { roads: Vec, - geometries: Vec, + geometries: Vec, } fn toplevel_dispatcher(st: &mut SubTreeReader) -> Result {