From 7e4fb098fe14de28d08ab1140e858c2dff39f4bd Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 12:40:04 +0200 Subject: [PATCH 01/24] Rust 2021, deps bump for step/ --- step/Cargo.toml | 12 ++++++------ step/examples/step_to_dot.rs | 3 +-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/step/Cargo.toml b/step/Cargo.toml index 02cd5fc..42b1b55 100644 --- a/step/Cargo.toml +++ b/step/Cargo.toml @@ -2,18 +2,18 @@ name = "step" version = "0.1.0" authors = ["Matt Keeter "] -edition = "2018" +edition = "2021" [dependencies] -arrayvec = "0.7.1" +arrayvec = "0.7" fast-float = "0.2" -log = "0.4.14" -memchr = "2.4.0" -nom = "6.0" +log = "0.4" +memchr = "2.7" +nom = "7" rayon = {version = "1.5", optional = true } [features] parallel = ["rayon"] [dev-dependencies] -clap = "2.33" +clap = "3" diff --git a/step/examples/step_to_dot.rs b/step/examples/step_to_dot.rs index b16f3c2..a96a298 100644 --- a/step/examples/step_to_dot.rs +++ b/step/examples/step_to_dot.rs @@ -21,7 +21,7 @@ fn main() -> Result<(), Box> { .author("Matt Keeter ") .about("Converts a STEP file to a dot file") .arg(Arg::with_name("output") - .short("o") + .short('o') .long("out") .help("dot file to target") .takes_value(true)) @@ -49,4 +49,3 @@ fn main() -> Result<(), Box> { } Ok(()) } - From 8216aeed10a60d68ec53a0c1f453998ee13f1361 Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 12:42:51 +0200 Subject: [PATCH 02/24] Clippy for step/ --- step/src/ap214.rs | 5 +---- step/src/id.rs | 2 +- step/src/parse.rs | 11 +++++------ step/src/step_file.rs | 6 +++--- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/step/src/ap214.rs b/step/src/ap214.rs index d55f36f..8f7a41c 100644 --- a/step/src/ap214.rs +++ b/step/src/ap214.rs @@ -30878,10 +30878,7 @@ impl<'a> Parse<'a> for SourceItem<'a> { } impl<'a> HasId for SourceItem<'a> { fn append_ids(&self, _v: &mut Vec) { - match self { - SourceItem::Identifier(c) => c.append_ids(_v), - _ => (), - } + if let SourceItem::Identifier(c) = self { c.append_ids(_v) } } } #[derive(Debug)] diff --git a/step/src/id.rs b/step/src/id.rs index 526948a..14b3f6f 100644 --- a/step/src/id.rs +++ b/step/src/id.rs @@ -19,7 +19,7 @@ unsafe impl Sync for Id {} unsafe impl Send for Id {} impl Clone for Id { fn clone(&self) -> Self { - Self::new(self.0) + *self } } impl Copy for Id {} diff --git a/step/src/parse.rs b/step/src/parse.rs index 2e30e11..3e7d2cd 100644 --- a/step/src/parse.rs +++ b/step/src/parse.rs @@ -18,12 +18,12 @@ use crate::{id::{Id, HasId}, ap214::{Entity, superclasses_of}}; pub type IResult<'a, U> = nom::IResult<&'a str, U, Error<&'a str>>; /// Helper function to generate a `nom` error result -fn nom_err<'a, U>(s: &'a str, kind: nom::error::ErrorKind) -> IResult<'a, U> { +fn nom_err(s: &str, kind: nom::error::ErrorKind) -> IResult<'_, U> { Err(nom::Err::Error(Error::new(s, kind))) } /// Helper function to generate a `nom` error result with the `Alt` tag -pub fn nom_alt_err<'a, U>(s: &'a str) -> IResult<'a, U> { +pub fn nom_alt_err(s: &str) -> IResult<'_, U> { nom_err(s, ErrorKind::Alt) } @@ -275,8 +275,7 @@ pub(crate) fn parse_complex_mapping(s: &str) -> IResult { } // Filter out the list of subclasses to those which aren't a parent of // another item in the set; these are our potential leafs. - let mut potential_leafs: HashSet<&str> = subentities.keys() - .map(|i| *i) + let mut potential_leafs: HashSet<&str> = subentities.keys().copied() .collect(); for k in subentities.keys() { for sup in superclasses_of(k) { @@ -285,7 +284,7 @@ pub(crate) fn parse_complex_mapping(s: &str) -> IResult { } // Eliminate any leaf with no arguments, since they're just addding // bonus constraints (which we don't handle anyways) - potential_leafs.retain(|k| subentities[k] != ""); + potential_leafs.retain(|k| !subentities[k].is_empty()); // Sort potential leafs so that ComplexEntity is deterministic and we can // match against it later @@ -310,7 +309,7 @@ pub(crate) fn parse_complex_mapping(s: &str) -> IResult { for c in chain.iter().rev() { if !subentities[c].is_empty() { new_decl.push(subentities[c]); - new_decl.push(if *c == leaf { &")" } else { &"," }); + new_decl.push(if *c == leaf { ")" } else { "," }); } } leaf_entities.push(Entity::parse_chunks(&new_decl)?.1) diff --git a/step/src/step_file.rs b/step/src/step_file.rs index 404dfcc..ab3f60b 100644 --- a/step/src/step_file.rs +++ b/step/src/step_file.rs @@ -16,7 +16,7 @@ impl<'a> StepFile<'a> { /// Parses a STEP file from a raw array of bytes /// `data` must be preprocessed by [`strip_flatten`] first pub fn parse(data: &'a [u8]) -> Self { - let blocks = Self::into_blocks(&data); + let blocks = Self::into_blocks(data); let data_start = blocks.iter() .position(|b| b == b"DATA;") .unwrap_or(0) + 1; @@ -37,12 +37,12 @@ impl<'a> StepFile<'a> { }; let parsed: Vec<(usize, Entity)> = block_iter - .filter_map(|b| parse_entity_decl(*b) + .filter_map(|b| parse_entity_decl(b) .or_else(|e| { warn!("Failed to parse {}: {:?}", std::str::from_utf8(b).unwrap_or("[INVALID UTF-8]"), e); - parse_entity_fallback(*b) + parse_entity_fallback(b) }) .ok()) .map(|b| b.1) From 9ed5eb960cba0c409f0e59e33a6c6703bfe71654 Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 14:13:48 +0200 Subject: [PATCH 03/24] Rust 2021, deps bump for triangulate/ --- triangulate/Cargo.toml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/triangulate/Cargo.toml b/triangulate/Cargo.toml index 4574d38..800f149 100644 --- a/triangulate/Cargo.toml +++ b/triangulate/Cargo.toml @@ -2,21 +2,21 @@ name = "triangulate" version = "0.1.0" authors = ["Matt Keeter "] -edition = "2018" +edition = "2021" [dependencies] cdt = { path = "../cdt" } nurbs = { path = "../nurbs" } step = { path = "../step" } -log = "0.4.14" -nalgebra-glm = "0.13.0" -rayon = { version = "1.5", optional = true } +log = "0.4" +nalgebra-glm = "0.18" +rayon = { version = "1.10", optional = true } thiserror = "1.0" [features] parallel = ["rayon", "step/parallel"] [dev-dependencies] -clap = "2.33" -env_logger = "0.8" +clap = "3" +env_logger = "0.11" From e3960d178d7cbf2ee5a9ea27cf95d5d2eb1077b6 Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 14:22:50 +0200 Subject: [PATCH 04/24] Clippy for triangulate/ --- triangulate/examples/step_to_stl.rs | 31 +- triangulate/src/curve.rs | 64 ++-- triangulate/src/lib.rs | 2 +- triangulate/src/mesh.rs | 16 +- triangulate/src/surface.rs | 200 +++++----- triangulate/src/triangulate.rs | 546 +++++++++++++++------------- 6 files changed, 479 insertions(+), 380 deletions(-) diff --git a/triangulate/examples/step_to_stl.rs b/triangulate/examples/step_to_stl.rs index ee6c52d..a25e964 100644 --- a/triangulate/examples/step_to_stl.rs +++ b/triangulate/examples/step_to_stl.rs @@ -1,7 +1,7 @@ -use clap::{Arg, App}; +use clap::{App, Arg}; -use triangulate::triangulate::triangulate; use step::step_file::StepFile; +use triangulate::triangulate::triangulate; fn main() -> Result<(), Box> { env_logger::init(); @@ -9,33 +9,30 @@ fn main() -> Result<(), Box> { let matches = App::new("step_to_stl2") .author("Matt Keeter ") .about("Converts a STEP file to a stl file") - .arg(Arg::with_name("output") - .short("o") - .long("out") - .help("stl file to target") - .takes_value(true) - .required(true)) - .arg(Arg::with_name("input") - .takes_value(true) - .required(true)) + .arg( + Arg::with_name("output") + .short('o') + .long("out") + .help("stl file to target") + .takes_value(true) + .required(true), + ) + .arg(Arg::with_name("input").takes_value(true).required(true)) .get_matches(); - let input = matches.value_of("input") - .expect("Could not get input file"); + let input = matches.value_of("input").expect("Could not get input file"); let start = std::time::SystemTime::now(); let data = std::fs::read(input)?; let flat = StepFile::strip_flatten(&data); let entities = StepFile::parse(&flat); let end = std::time::SystemTime::now(); - let since_the_epoch = end.duration_since(start) - .expect("Time went backwards"); + let since_the_epoch = end.duration_since(start).expect("Time went backwards"); println!("Loaded + parsed in {:?}", since_the_epoch); let start = std::time::SystemTime::now(); let tri = triangulate(&entities); let end = std::time::SystemTime::now(); - let since_the_epoch = end.duration_since(start) - .expect("Time went backwards"); + let since_the_epoch = end.duration_since(start).expect("Time went backwards"); println!("Triangulated in {:?}", since_the_epoch); if let Some(o) = matches.value_of("output") { diff --git a/triangulate/src/curve.rs b/triangulate/src/curve.rs index c98f807..06c8be4 100644 --- a/triangulate/src/curve.rs +++ b/triangulate/src/curve.rs @@ -1,8 +1,8 @@ +use glm::{DMat4, DVec3, DVec4}; use nalgebra_glm as glm; -use glm::{DVec3, DVec4, DMat4}; -use nurbs::{AbstractCurve, NDBSplineCurve, SampledCurve}; use crate::surface::Surface; +use nurbs::{AbstractCurve, NDBSplineCurve, SampledCurve}; #[derive(Debug)] pub enum Curve { @@ -11,7 +11,7 @@ pub enum Curve { eplane_from_world: DMat4, world_from_eplane: DMat4, closed: bool, - dir: bool + dir: bool, }, Line, BSplineCurveWithKnots(SampledCurve<3>), @@ -19,29 +19,40 @@ pub enum Curve { } impl Curve { - pub fn new_ellipse(location: DVec3, axis: DVec3, ref_direction: DVec3, - radius1: f64, radius2: f64, closed: bool, dir: bool) - -> Self - { + pub fn new_ellipse( + location: DVec3, + axis: DVec3, + ref_direction: DVec3, + radius1: f64, + radius2: f64, + closed: bool, + dir: bool, + ) -> Self { // Build a rotation matrix to go from flat (XY) to 3D space - let world_from_eplane = Surface::make_affine_transform(axis, + let world_from_eplane = Surface::make_affine_transform( + axis, radius1 * ref_direction, radius2 * axis.cross(&ref_direction), - location); - let eplane_from_world = world_from_eplane - .try_inverse() - .expect("Could not invert"); + location, + ); + let eplane_from_world = world_from_eplane.try_inverse().expect("Could not invert"); Self::Ellipse { world_from_eplane, eplane_from_world, - closed, dir + closed, + dir, } } - pub fn new_circle(location: DVec3, axis: DVec3, ref_direction: DVec3, - radius: f64, closed: bool, dir: bool) -> Self { - Self::new_ellipse(location, axis, ref_direction, - radius, radius, closed, dir) + pub fn new_circle( + location: DVec3, + axis: DVec3, + ref_direction: DVec3, + radius: f64, + closed: bool, + dir: bool, + ) -> Self { + Self::new_ellipse(location, axis, ref_direction, radius, radius, closed, dir) } pub fn new_line() -> Self { @@ -49,7 +60,8 @@ impl Curve { } fn curve_points(u: DVec3, v: DVec3, curve: &SampledCurve) -> Vec - where NDBSplineCurve: AbstractCurve + where + NDBSplineCurve: AbstractCurve, { let t_start = curve.u_from_point(u); let t_end = curve.u_from_point(v); @@ -65,14 +77,15 @@ impl Curve { Self::BSplineCurveWithKnots(curve) => Self::curve_points(u, v, curve), Self::NURBSCurve(curve) => Self::curve_points(u, v, curve), Self::Ellipse { - eplane_from_world, world_from_eplane, closed, dir + eplane_from_world, + world_from_eplane, + closed, + dir, } => { // Project from 3D into the "ellipse plane". In the "eplane", // the ellipse lies on the unit circle. - let u_eplane = eplane_from_world * - DVec4::new(u.x, u.y, u.z, 1.0); - let v_eplane = eplane_from_world * - DVec4::new(v.x, v.y, v.z, 1.0); + let u_eplane = eplane_from_world * DVec4::new(u.x, u.y, u.z, 1.0); + let v_eplane = eplane_from_world * DVec4::new(v.x, v.y, v.z, 1.0); // Pick the starting angle in the circle's flat plane let u_ang = u_eplane.y.atan2(u_eplane.x); @@ -92,8 +105,9 @@ impl Curve { const N: usize = 64; let count = 4.max( - (N as f64 * (u_ang - v_ang).abs() / - (2.0 * std::f64::consts::PI)).round() as usize); + (N as f64 * (u_ang - v_ang).abs() / (2.0 * std::f64::consts::PI)).round() + as usize, + ); let mut out_world = vec![u]; // Walk around the circle, using the true positions for start diff --git a/triangulate/src/lib.rs b/triangulate/src/lib.rs index 03c5c88..54582e8 100644 --- a/triangulate/src/lib.rs +++ b/triangulate/src/lib.rs @@ -1,8 +1,8 @@ +pub mod curve; pub mod mesh; pub mod stats; pub mod surface; pub mod triangulate; -pub mod curve; #[derive(thiserror::Error, Debug, Eq, PartialEq)] pub enum Error { diff --git a/triangulate/src/mesh.rs b/triangulate/src/mesh.rs index d83e3d0..dadfdaf 100644 --- a/triangulate/src/mesh.rs +++ b/triangulate/src/mesh.rs @@ -1,5 +1,5 @@ -use std::convert::TryInto; use nalgebra_glm::{DVec3, U32Vec3}; +use std::convert::TryInto; #[derive(Copy, Clone, Debug)] pub struct Vertex { @@ -24,19 +24,17 @@ impl Mesh { pub fn combine(mut a: Self, b: Self) -> Self { let dv = a.verts.len().try_into().expect("too many triangles"); a.verts.extend(b.verts); - a.triangles.extend(b.triangles.into_iter() - .map(|t| Triangle { verts: t.verts.add_scalar(dv) })); + a.triangles + .extend(b.triangles.into_iter().map(|t| Triangle { + verts: t.verts.add_scalar(dv), + })); a } /// Writes the triangulation to a STL, for debugging pub fn save_stl(&self, filename: &str) -> std::io::Result<()> { - let mut out: Vec = Vec::new(); - for _ in 0..80 { // header - out.push('x' as u8); - } - let u: u32 = self.triangles.len().try_into() - .expect("Too many triangles"); + let mut out: Vec = vec![b'x'; 80]; + let u: u32 = self.triangles.len().try_into().expect("Too many triangles"); out.extend(&u.to_le_bytes()); for t in self.triangles.iter() { out.extend(std::iter::repeat(0).take(12)); // normal diff --git a/triangulate/src/surface.rs b/triangulate/src/surface.rs index 7e00a09..70dd635 100644 --- a/triangulate/src/surface.rs +++ b/triangulate/src/surface.rs @@ -1,10 +1,10 @@ -use std::f64::{EPSILON, consts::PI}; +use std::f64::consts::PI; +use glm::{DMat4, DVec2, DVec3, DVec4}; use nalgebra_glm as glm; -use glm::{DVec2, DVec3, DVec4, DMat4}; +use crate::{mesh::Vertex, Error}; use nurbs::{AbstractSurface, NDBSplineSurface, SampledSurface}; -use crate::{Error, mesh::Vertex}; // Represents a surface in 3D space, with a function to project a 3D point // on the surface down to a 2D space. @@ -32,8 +32,8 @@ pub enum Surface { NURBS(SampledSurface<4>), Sphere { location: DVec3, - mat: DMat4, // uv to world - mat_i: DMat4, // world to uv + mat: DMat4, // uv to world + mat_i: DMat4, // world to uv radius: f64, }, Torus { @@ -52,7 +52,8 @@ impl Surface { // mat and mat_i are built in prepare() mat: DMat4::identity(), mat_i: DMat4::identity(), - location, radius, + location, + radius, } } pub fn new_cylinder(axis: DVec3, ref_direction: DVec3, location: DVec3, radius: f64) -> Self { @@ -60,20 +61,23 @@ impl Surface { Surface::Cylinder { mat, mat_i: mat.try_inverse().expect("Could not invert"), - axis, radius, location, + axis, + radius, + location, z_min: 0.0, z_max: 0.0, } } - pub fn new_torus(location: DVec3, axis: DVec3, - major_radius: f64, minor_radius: f64) -> Self - { + pub fn new_torus(location: DVec3, axis: DVec3, major_radius: f64, minor_radius: f64) -> Self { Surface::Torus { // mat and mat_i are built in prepare() mat: DMat4::identity(), mat_i: DMat4::identity(), - location, axis, major_radius, minor_radius + location, + axis, + major_radius, + minor_radius, } } @@ -95,13 +99,18 @@ impl Surface { } } - pub fn make_affine_transform(z_world: DVec3, x_world: DVec3, y_world: DVec3, origin_world: DVec3) -> DMat4 { + pub fn make_affine_transform( + z_world: DVec3, + x_world: DVec3, + y_world: DVec3, + origin_world: DVec3, + ) -> DMat4 { let mut mat = DMat4::identity(); mat.set_column(0, &glm::vec3_to_vec4(&x_world)); mat.set_column(1, &glm::vec3_to_vec4(&y_world)); mat.set_column(2, &glm::vec3_to_vec4(&z_world)); mat.set_column(3, &glm::vec3_to_vec4(&origin_world)); - *mat.get_mut((3, 3)).unwrap() = 1.0; + *mat.get_mut((3, 3)).unwrap() = 1.0; mat } @@ -111,12 +120,13 @@ impl Surface { mat.set_column(1, &glm::vec3_to_vec4(&z_world.cross(&x_world))); mat.set_column(2, &glm::vec3_to_vec4(&z_world)); mat.set_column(3, &glm::vec3_to_vec4(&origin_world)); - *mat.get_mut((3, 3)).unwrap() = 1.0; + *mat.get_mut((3, 3)).unwrap() = 1.0; mat } fn surf_lower(p: DVec3, surf: &SampledSurface) -> Result - where NDBSplineSurface: AbstractSurface + where + NDBSplineSurface: AbstractSurface, { surf.uv_from_point(p).ok_or(Error::CouldNotLower) } @@ -127,15 +137,18 @@ impl Surface { fn lower(&self, p: DVec3) -> Result { let p_ = DVec4::new(p.x, p.y, p.z, 1.0); match self { - Surface::Plane { mat_i, .. } => { - Ok(glm::vec4_to_vec2(&(mat_i * p_))) - }, + Surface::Plane { mat_i, .. } => Ok(glm::vec4_to_vec2(&(mat_i * p_))), Surface::Cone { mat_i, .. } => { let xy = glm::vec4_to_vec2(&(mat_i * p_)); Ok(DVec2::new(-xy.x, xy.y)) - }, + } - Surface::Cylinder { mat_i, z_min, z_max, .. } => { + Surface::Cylinder { + mat_i, + z_min, + z_max, + .. + } => { let p = mat_i * p_; // We convert the Z coordinates to either add or subtract from // the radius, so that we maintain the right topology (instead @@ -146,8 +159,13 @@ impl Surface { let z = (p.z - z_min) / (z_max - z_min); let scale = 1.0 / (1.0 + z); Ok(DVec2::new(p.x * scale, p.y * scale)) - }, - Surface::Torus { mat_i, major_radius, minor_radius, .. } => { + } + Surface::Torus { + mat_i, + major_radius, + minor_radius, + .. + } => { let p = mat_i * p_; /* ^ Y @@ -167,18 +185,16 @@ impl Surface { // Rotate the point so that it's got Y = 0, so we can calculate // the minor angle let z = DVec3::new(0.0, major_angle.sin(), major_angle.cos()); - let new_mat = Self::make_rigid_transform( - z, DVec3::new(1.0, 0.0, 0.0), z * *major_radius); - let new_mat_i = new_mat.try_inverse() - .expect("Could not invert"); + let new_mat = + Self::make_rigid_transform(z, DVec3::new(1.0, 0.0, 0.0), z * *major_radius); + let new_mat_i = new_mat.try_inverse().expect("Could not invert"); let new_p = new_mat_i * DVec4::new(p.x, p.y, p.z, 1.0); let minor_angle = new_p.x.atan2(new_p.z); // Construct nested circles with a scale based on the ratio // of radiuses (to make an _attempt_ to match 3D distance) - let scale = 1.0 + (major_radius / minor_radius) * - (major_angle + PI) / (2.0 * PI); + let scale = 1.0 + (major_radius / minor_radius) * (major_angle + PI) / (2.0 * PI); let x = if *major_radius > 0.0 { -minor_angle.cos() @@ -186,7 +202,7 @@ impl Surface { minor_angle.cos() }; Ok(scale * DVec2::new(x, minor_angle.sin())) - }, + } Surface::BSpline(surf) => Self::surf_lower(p, surf), Surface::NURBS(surf) => Self::surf_lower(p, surf), Surface::Sphere { mat_i, radius, .. } => { @@ -197,20 +213,25 @@ impl Surface { // Angle from 0 to PI let angle = r.atan2(p.x); let yz = p.yz(); - Ok(if yz.norm() < EPSILON { + Ok(if yz.norm() < f64::EPSILON { yz } else { yz * angle / yz.norm() }) - }, + } } } fn prepare(&mut self, verts: &[Vertex]) { match self { - Surface::Cylinder { mat_i, z_min, z_max, .. } => { - *z_min = std::f64::INFINITY; - *z_max = -std::f64::INFINITY; + Surface::Cylinder { + mat_i, + z_min, + z_max, + .. + } => { + *z_min = f64::INFINITY; + *z_max = -f64::INFINITY; for v in verts { let p = (*mat_i) * DVec4::new(v.pos.x, v.pos.y, v.pos.z, 1.0); if p.z < *z_min { @@ -220,37 +241,41 @@ impl Surface { *z_max = p.z; } } - }, - Surface::Sphere { mat, mat_i, location, .. } => { + } + Surface::Sphere { + mat, + mat_i, + location, + .. + } => { let ref_direction = (verts[0].pos - *location).normalize(); let d1 = (verts.last().unwrap().pos - *location).normalize(); let axis = ref_direction.cross(&d1).normalize(); - *mat = Self::make_rigid_transform( - axis, ref_direction, *location); - *mat_i = mat - .try_inverse() - .expect("Could not invert"); - }, - Surface::Torus { axis, mat, mat_i, location, .. } => { - let mean_dir = verts.iter() + *mat = Self::make_rigid_transform(axis, ref_direction, *location); + *mat_i = mat.try_inverse().expect("Could not invert"); + } + Surface::Torus { + axis, + mat, + mat_i, + location, + .. + } => { + let mean_dir = verts + .iter() .map(|v| v.pos - *location) .sum::() .normalize(); let mean_perp_dir = (mean_dir - *axis * mean_dir.dot(axis)).normalize(); - *mat = Self::make_rigid_transform( - mean_perp_dir, *axis, *location); - *mat_i = mat - .try_inverse() - .expect("Could not invert"); - }, + *mat = Self::make_rigid_transform(mean_perp_dir, *axis, *location); + *mat_i = mat.try_inverse().expect("Could not invert"); + } _ => (), } } - pub fn lower_verts(&mut self, verts: &mut [Vertex]) - -> Result, Error> - { + pub fn lower_verts(&mut self, verts: &mut [Vertex]) -> Result, Error> { self.prepare(verts); let mut pts = Vec::with_capacity(verts.len()); for v in verts { @@ -287,43 +312,47 @@ impl Surface { let x = angle.cos(); // Calculate pre-transformed position - let pos = (*radius) * if uv.norm() < EPSILON { - DVec3::new(x, 0.0, 0.0) - } else { - let yz = uv.normalize() * angle.sin(); - DVec3::new(x, yz.x, yz.y) - }; + let pos = (*radius) + * if uv.norm() < f64::EPSILON { + DVec3::new(x, 0.0, 0.0) + } else { + let yz = uv.normalize() * angle.sin(); + DVec3::new(x, yz.x, yz.y) + }; // Transform into world space - let pos = (mat * DVec4::new(pos.x, pos.y, pos.z, 1.0)) - .xyz(); + let pos = (mat * DVec4::new(pos.x, pos.y, pos.z, 1.0)).xyz(); Some(pos) - }, + } Surface::BSpline(s) => Some(s.surf.point(uv)), Surface::NURBS(s) => Some(s.surf.point(uv)), - Surface::Torus { mat, minor_radius, major_radius, .. } => { + Surface::Torus { + mat, + minor_radius, + major_radius, + .. + } => { let mut uv = uv; if *major_radius > 0.0 { uv.x *= -1.0; } let minor_angle = uv.y.atan2(uv.x); - let major_angle = (uv.norm() - 1.0) / - (major_radius / minor_radius) * 2.0 * PI - PI; + let major_angle = (uv.norm() - 1.0) / (major_radius / minor_radius) * 2.0 * PI - PI; let new_p = DVec3::new(minor_angle.sin(), 0.0, minor_angle.cos()) * *minor_radius; let z = DVec3::new(0.0, major_angle.sin(), major_angle.cos()); - let new_mat = Self::make_rigid_transform( - z, DVec3::new(1.0, 0.0, 0.0), z * *major_radius); + let new_mat = + Self::make_rigid_transform(z, DVec3::new(1.0, 0.0, 0.0), z * *major_radius); let p = new_mat * DVec4::new(new_p.x, new_p.y, new_p.z, 1.0); Some((mat * p).xyz()) - }, + } _ => unimplemented!(), } } fn bbox(pts: &[(f64, f64)]) -> (f64, f64, f64, f64) { - let (mut xmin, mut xmax) = (std::f64::INFINITY, -std::f64::INFINITY); - let (mut ymin, mut ymax) = (std::f64::INFINITY, -std::f64::INFINITY); + let (mut xmin, mut xmax) = (f64::INFINITY, -f64::INFINITY); + let (mut ymin, mut ymax) = (f64::INFINITY, -f64::INFINITY); for (px, py) in pts { xmin = px.min(xmin); ymin = py.min(ymin); @@ -333,12 +362,10 @@ impl Surface { (xmin, xmax, ymin, ymax) } - pub fn add_steiner_points(&self, pts: &mut Vec<(f64, f64)>, - verts: &mut Vec) - { - let (xmin, xmax, ymin, ymax) = Self::bbox(&pts); + pub fn add_steiner_points(&self, pts: &mut Vec<(f64, f64)>, verts: &mut Vec) { + let (xmin, xmax, ymin, ymax) = Self::bbox(pts); let num_pts = match self { - Surface::Sphere { .. } => 6, + Surface::Sphere { .. } => 6, Surface::Torus { .. } => 32, _ => 0, }; @@ -364,7 +391,8 @@ impl Surface { } fn surf_normal(uv: DVec2, surf: &SampledSurface) -> DVec3 - where NDBSplineSurface: AbstractSurface + where + NDBSplineSurface: AbstractSurface, { // Calculate first order derivs, then cross them to get normal let derivs = surf.surf.derivs::<1>(uv); @@ -376,16 +404,17 @@ impl Surface { pub fn normal(&self, p: DVec3, uv: DVec2) -> DVec3 { match self { Surface::Plane { normal, .. } => *normal, - Surface::Cone { mat, mat_i, angle, .. } => { + Surface::Cone { + mat, mat_i, angle, .. + } => { // Project into CONE SPACE let pos = mat_i * DVec4::new(p.x, p.y, p.z, 1.0); - let xy = if pos.xy().norm() > std::f64::EPSILON { + let xy = if pos.xy().norm() > f64::EPSILON { pos.xy().normalize() } else { return DVec3::zeros(); }; - let normal = DVec4::new(xy.x * angle.cos(), - xy.y * angle.cos(), -angle.sin(), 0.0); + let normal = DVec4::new(xy.x * angle.cos(), xy.y * angle.cos(), -angle.sin(), 0.0); // Deproject back into world space (mat * normal).xyz() } @@ -398,10 +427,15 @@ impl Surface { // (same hack as below) let norm = DVec3::new(proj.x, proj.y, 0.0).normalize(); (mat * norm.to_homogeneous()).xyz() - }, + } Surface::BSpline(surf) => Self::surf_normal(uv, surf), Surface::NURBS(surf) => Self::surf_normal(uv, surf), - Surface::Torus { mat, mat_i, major_radius, .. } => { + Surface::Torus { + mat, + mat_i, + major_radius, + .. + } => { let p = (*mat_i * DVec4::new(p.x, p.y, p.z, 1.0)).xyz(); let major_angle = p.y.atan2(p.z); @@ -409,7 +443,7 @@ impl Surface { let norm = (p - z).normalize(); (mat * norm.to_homogeneous()).xyz() - }, + } } } } diff --git a/triangulate/src/triangulate.rs b/triangulate/src/triangulate.rs index ad4ba6e..88432e4 100644 --- a/triangulate/src/triangulate.rs +++ b/triangulate/src/triangulate.rs @@ -1,37 +1,41 @@ use std::collections::{HashMap, HashSet}; use std::convert::TryInto; +use glm::{DMat4, DVec3, DVec4, U32Vec3}; +use log::{error, info, warn}; use nalgebra_glm as glm; -use glm::{DVec3, DVec4, DMat4, U32Vec3}; -use log::{info, warn, error}; #[cfg(feature = "rayon")] use rayon::prelude::*; -use step::{ - ap214, ap214::*, step_file::{FromEntity, StepFile}, id::Id, ap214::Entity, -}; use crate::{ - Error, curve::Curve, - mesh, mesh::{Mesh, Triangle}, + mesh, + mesh::{Mesh, Triangle}, stats::Stats, - surface::Surface + surface::Surface, + Error, +}; +use nurbs::{BSplineSurface, KnotVector, NURBSSurface, SampledCurve, SampledSurface}; +use step::{ + ap214, + ap214::Entity, + ap214::*, + id::Id, + step_file::{FromEntity, StepFile}, }; -use nurbs::{BSplineSurface, SampledCurve, SampledSurface, NURBSSurface, KnotVector}; const SAVE_DEBUG_SVGS: bool = false; const SAVE_PANIC_SVGS: bool = false; /// `TransformStack` is a mapping of representations to transformed children. -type TransformStack<'a> = - HashMap, Vec<(Representation<'a>, DMat4)>>; +type TransformStack<'a> = HashMap, Vec<(Representation<'a>, DMat4)>>; fn build_transform_stack<'a>(s: &'a StepFile, flip: bool) -> TransformStack<'a> { // Store a map of parent -> (child, transform) let mut transform_stack: HashMap<_, Vec<_>> = HashMap::new(); - for r in s.0.iter() - .filter_map(|e| - RepresentationRelationshipWithTransformation_::try_from_entity(e)) + for r in + s.0.iter() + .filter_map(RepresentationRelationshipWithTransformation_::try_from_entity) { let (a, b) = if flip { (r.rep_2, r.rep_1) @@ -40,12 +44,12 @@ fn build_transform_stack<'a>(s: &'a StepFile, flip: bool) -> TransformStack<'a> }; let mut mat = item_defined_transformation(s, r.transformation_operator.cast()); if flip { - mat = mat.try_inverse().expect("Could not invert transform matrix"); + mat = mat + .try_inverse() + .expect("Could not invert transform matrix"); } - transform_stack.entry(b) - .or_default() - .push((a, mat)); + transform_stack.entry(b).or_default().push((a, mat)); } transform_stack } @@ -64,19 +68,21 @@ fn transform_stack_roots<'a>(transform_stack: &TransformStack<'a>) -> Vec (Mesh, Stats) { - let styled_items: Vec<_> = s.0.iter() - .filter_map(|e| MechanicalDesignGeometricPresentationRepresentation_::try_from_entity(e)) - .flat_map(|m| m.items.iter()) - .filter_map(|item| s.entity(item.cast::())) - .collect(); - let brep_colors: HashMap<_, DVec3> = styled_items.iter() - .filter_map(|styled| + let styled_items: Vec<_> = + s.0.iter() + .filter_map(MechanicalDesignGeometricPresentationRepresentation_::try_from_entity) + .flat_map(|m| m.items.iter()) + .filter_map(|item| s.entity(item.cast::())) + .collect(); + let brep_colors: HashMap<_, DVec3> = styled_items + .iter() + .filter_map(|styled| { if styled.styles.len() != 1 { None } else { - presentation_style_color(s, styled.styles[0]) - .map(|c| (styled.item, c)) - }) + presentation_style_color(s, styled.styles[0]).map(|c| (styled.item, c)) + } + }) .collect(); // Store a map of parent -> (child, transform) @@ -91,9 +97,7 @@ pub fn triangulate(s: &StepFile) -> (Mesh, Stats) { transform_stack = build_transform_stack(s, true); roots = transform_stack_roots(&transform_stack); } - let mut todo: Vec<_> = roots.into_iter() - .map(|v| (v, DMat4::identity())) - .collect(); + let mut todo: Vec<_> = roots.into_iter().map(|v| (v, DMat4::identity())).collect(); if todo.len() > 1 { warn!("Transformation stack has more than one root!"); } @@ -101,9 +105,10 @@ pub fn triangulate(s: &StepFile) -> (Mesh, Stats) { // Store a map of ShapeRepresentationRelationships, which some models // use to map from axes to specific instances let mut shape_rep_relationship: HashMap, Vec>> = HashMap::new(); - for (r1, r2) in s.0.iter() - .filter_map(|e| ShapeRepresentationRelationship_::try_from_entity(e)) - .map(|e| (e.rep_1, e.rep_2)) + for (r1, r2) in + s.0.iter() + .filter_map(ShapeRepresentationRelationship_::try_from_entity) + .map(|e| (e.rep_1, e.rep_2)) { shape_rep_relationship.entry(r1).or_default().push(r2); } @@ -131,8 +136,7 @@ pub fn triangulate(s: &StepFile) -> (Mesh, Stats) { match &s[*m] { Entity::ManifoldSolidBrep(_) | Entity::BrepWithVoids(_) - | Entity::ShellBasedSurfaceModel(_) => - to_mesh.entry(*m).or_default().push(mat), + | Entity::ShellBasedSurfaceModel(_) => to_mesh.entry(*m).or_default().push(mat), Entity::Axis2Placement3d(_) => (), e => warn!("Skipping {:?}", e), } @@ -144,97 +148,106 @@ pub fn triangulate(s: &StepFile) -> (Mesh, Stats) { if to_mesh.is_empty() { s.0.iter() .enumerate() - .filter(|(_i, e)| - match e { + .filter(|(_i, e)| { + matches!( + e, Entity::ManifoldSolidBrep(_) - | Entity::BrepWithVoids(_) - | Entity::ShellBasedSurfaceModel(_) => true, - _ => false, - } - ) + | Entity::BrepWithVoids(_) + | Entity::ShellBasedSurfaceModel(_) + ) + }) .map(|(i, _e)| Id::new(i)) .for_each(|i| to_mesh.entry(i).or_default().push(DMat4::identity())); } let (to_mesh_iter, empty) = { #[cfg(feature = "rayon")] - { (to_mesh.par_iter(), || (Mesh::default(), Stats::default())) } + { + (to_mesh.par_iter(), || (Mesh::default(), Stats::default())) + } #[cfg(not(feature = "rayon"))] - { (to_mesh.iter(), (Mesh::default(), Stats::default())) } + { + (to_mesh.iter(), (Mesh::default(), Stats::default())) + } }; - let mesh_fold = to_mesh_iter - .fold( - // Empty constructor - empty, - - // Fold operation - |(mut mesh, mut stats), (id, mats)| { - let v_start = mesh.verts.len(); - let t_start = mesh.triangles.len(); - match &s[*id] { - Entity::ManifoldSolidBrep(b) => - closed_shell(s, b.outer, &mut mesh, &mut stats), - Entity::ShellBasedSurfaceModel(b) => - for v in &b.sbsm_boundary { - shell(s, *v, &mut mesh, &mut stats); - }, - Entity::BrepWithVoids(b) => - // TODO: handle voids - closed_shell(s, b.outer, &mut mesh, &mut stats), - _ => { - warn!("Skipping {:?} (not a known solid)", s[*id]); - return (mesh, stats); - }, - }; - - // Pick out a color from the color map and apply it to each - // newly-created vertex - let color = brep_colors.get(id) - .map(|c| *c) - .unwrap_or(DVec3::new(0.5, 0.5, 0.5)); - - // Build copies of the mesh by copying and applying transforms - let v_end = mesh.verts.len(); - let t_end = mesh.triangles.len(); - for mat in &mats[1..] { - for v in v_start..v_end { - let p = mesh.verts[v].pos; - let p_h = DVec4::new(p.x, p.y, p.z, 1.0); - let pos = (mat * p_h).xyz(); - - let n = mesh.verts[v].norm; - let norm = (mat * glm::vec3_to_vec4(&n)).xyz(); - - mesh.verts.push(mesh::Vertex { pos, norm, color }); - } - let offset = mesh.verts.len() - v_end; - for t in t_start..t_end { - let mut tri = mesh.triangles[t]; - tri.verts.add_scalar_mut(offset as u32); - mesh.triangles.push(tri); + let mesh_fold = to_mesh_iter.fold( + // Empty constructor + empty, + // Fold operation + |(mut mesh, mut stats), (id, mats)| { + let v_start = mesh.verts.len(); + let t_start = mesh.triangles.len(); + match &s[*id] { + Entity::ManifoldSolidBrep(b) => closed_shell(s, b.outer, &mut mesh, &mut stats), + Entity::ShellBasedSurfaceModel(b) => { + for v in &b.sbsm_boundary { + shell(s, *v, &mut mesh, &mut stats); } } + Entity::BrepWithVoids(b) => + // TODO: handle voids + { + closed_shell(s, b.outer, &mut mesh, &mut stats) + } + _ => { + warn!("Skipping {:?} (not a known solid)", s[*id]); + return (mesh, stats); + } + }; - // Now that we've built all of the other copies of the mesh, - // re-use the original mesh and apply the first transform - let mat = mats[0]; + // Pick out a color from the color map and apply it to each + // newly-created vertex + let color = brep_colors + .get(id) + .copied() + .unwrap_or(DVec3::new(0.5, 0.5, 0.5)); + + // Build copies of the mesh by copying and applying transforms + let v_end = mesh.verts.len(); + let t_end = mesh.triangles.len(); + for mat in &mats[1..] { for v in v_start..v_end { let p = mesh.verts[v].pos; let p_h = DVec4::new(p.x, p.y, p.z, 1.0); - mesh.verts[v].pos = (mat * p_h).xyz(); + let pos = (mat * p_h).xyz(); let n = mesh.verts[v].norm; - mesh.verts[v].norm = (mat * glm::vec3_to_vec4(&n)).xyz(); + let norm = (mat * glm::vec3_to_vec4(&n)).xyz(); - mesh.verts[v].color = color; + mesh.verts.push(mesh::Vertex { pos, norm, color }); } - (mesh, stats) - }); + let offset = mesh.verts.len() - v_end; + for t in t_start..t_end { + let mut tri = mesh.triangles[t]; + tri.verts.add_scalar_mut(offset as u32); + mesh.triangles.push(tri); + } + } + + // Now that we've built all of the other copies of the mesh, + // re-use the original mesh and apply the first transform + let mat = mats[0]; + for v in v_start..v_end { + let p = mesh.verts[v].pos; + let p_h = DVec4::new(p.x, p.y, p.z, 1.0); + mesh.verts[v].pos = (mat * p_h).xyz(); + + let n = mesh.verts[v].norm; + mesh.verts[v].norm = (mat * glm::vec3_to_vec4(&n)).xyz(); + + mesh.verts[v].color = color; + } + (mesh, stats) + }, + ); let (mesh, stats) = { #[cfg(feature = "rayon")] - { mesh_fold.reduce(empty, - |a, b| (Mesh::combine(a.0, b.0), Stats::combine(a.1, b.1))) } + { + mesh_fold.reduce(empty, |a, b| { + (Mesh::combine(a.0, b.0), Stats::combine(a.1, b.1)) + }) + } #[cfg(not(feature = "rayon"))] { mesh_fold @@ -251,57 +264,53 @@ pub fn triangulate(s: &StepFile) -> (Mesh, Stats) { fn item_defined_transformation(s: &StepFile, t: Id) -> DMat4 { let i = s.entity(t).expect("Could not get ItemDefinedTransform"); - let (location, axis, ref_direction) = axis2_placement_3d(s, - i.transform_item_1.cast()); - let t1 = Surface::make_affine_transform(axis, - ref_direction, - axis.cross(&ref_direction), - location); + let (location, axis, ref_direction) = axis2_placement_3d(s, i.transform_item_1.cast()); + let t1 = + Surface::make_affine_transform(axis, ref_direction, axis.cross(&ref_direction), location); - let (location, axis, ref_direction) = axis2_placement_3d(s, - i.transform_item_2.cast()); - let t2 = Surface::make_affine_transform(axis, - ref_direction, - axis.cross(&ref_direction), - location); + let (location, axis, ref_direction) = axis2_placement_3d(s, i.transform_item_2.cast()); + let t2 = + Surface::make_affine_transform(axis, ref_direction, axis.cross(&ref_direction), location); t2 * t1.try_inverse().expect("Could not invert transform matrix") } -fn presentation_style_color(s: &StepFile, p: PresentationStyleAssignment) - -> Option -{ +fn presentation_style_color(s: &StepFile, p: PresentationStyleAssignment) -> Option { // AAAAAHHHHH s.entity(p) .and_then(|p: &PresentationStyleAssignment_| { - let mut surf = p.styles.iter().filter_map(|y| { - // This is an ambiguous parse, so we hard-code the first - // Entity item in the enum - use PresentationStyleSelect::PreDefinedPresentationStyle; - if let PreDefinedPresentationStyle(u) = y { - s.entity(u.cast::()) - } else { - None - }}); - let out = surf.next(); - out - }) - .and_then(|surf: &SurfaceStyleUsage_| - s.entity(surf.style.cast::())) - .and_then(|surf: &SurfaceSideStyle_| if surf.styles.len() != 1 { + let mut surf = p.styles.iter().filter_map(|y| { + // This is an ambiguous parse, so we hard-code the first + // Entity item in the enum + use PresentationStyleSelect::PreDefinedPresentationStyle; + if let PreDefinedPresentationStyle(u) = y { + s.entity(u.cast::()) + } else { + None + } + }); + + surf.next() + }) + .and_then(|surf: &SurfaceStyleUsage_| s.entity(surf.style.cast::())) + .and_then(|surf: &SurfaceSideStyle_| { + if surf.styles.len() != 1 { None } else { s.entity(surf.styles[0].cast::()) - }) - .map(|surf: &SurfaceStyleFillArea_| - s.entity(surf.fill_area).expect("Could not get fill_area")) - .and_then(|fill: &FillAreaStyle_| if fill.fill_styles.len() != 1 { + } + }) + .map(|surf: &SurfaceStyleFillArea_| { + s.entity(surf.fill_area).expect("Could not get fill_area") + }) + .and_then(|fill: &FillAreaStyle_| { + if fill.fill_styles.len() != 1 { None } else { s.entity(fill.fill_styles[0].cast::()) - }) - .and_then(|f: &FillAreaStyleColour_| - s.entity(f.fill_colour.cast::())) + } + }) + .and_then(|f: &FillAreaStyleColour_| s.entity(f.fill_colour.cast::())) .map(|c| DVec3::new(c.red, c.green, c.blue)) } @@ -312,9 +321,11 @@ fn cartesian_point(s: &StepFile, a: Id) -> DVec3 { fn direction(s: &StepFile, a: Direction) -> DVec3 { let p = s.entity(a).expect("Could not get cartesian point"); - DVec3::new(p.direction_ratios[0], - p.direction_ratios[1], - p.direction_ratios[2]) + DVec3::new( + p.direction_ratios[0], + p.direction_ratios[1], + p.direction_ratios[2], + ) } fn axis2_placement_3d(s: &StepFile, t: Id) -> (DVec3, DVec3, DVec3) { @@ -357,9 +368,12 @@ fn closed_shell(s: &StepFile, c: ClosedShell, mesh: &mut Mesh, stats: &mut Stats stats.num_shells += 1; } -fn advanced_face(s: &StepFile, f: AdvancedFace, mesh: &mut Mesh, - stats: &mut Stats) -> Result<(), Error> -{ +fn advanced_face( + s: &StepFile, + f: AdvancedFace, + mesh: &mut Mesh, + stats: &mut Stats, +) -> Result<(), Error> { let face = s.entity(f).expect("Could not get AdvancedFace"); stats.num_faces += 1; @@ -391,7 +405,7 @@ fn advanced_face(s: &StepFile, f: AdvancedFace, mesh: &mut Mesh, norm: DVec3::zeros(), color: DVec3::new(0.0, 0.0, 0.0), }); - }, + } // Default for lists of contour points _ => { @@ -448,15 +462,15 @@ fn advanced_face(s: &StepFile, f: AdvancedFace, mesh: &mut Mesh, Err(cdt::Error::PointOnFixedEdge(p)) if p >= bonus_points => { pts[p] = pts[0]; continue; - }, + } Err(e) => { if SAVE_DEBUG_SVGS { let filename = format!("err{}.svg", face.face_geometry.0); t.save_debug_svg(&filename) .expect("Could not save debug SVG"); } - break Err(e) - }, + break Err(e); + } } } }); @@ -466,27 +480,30 @@ fn advanced_face(s: &StepFile, f: AdvancedFace, mesh: &mut Mesh, let a = (a + offset) as u32; let b = (b + offset) as u32; let c = (c + offset) as u32; - mesh.triangles.push(Triangle { verts: - if face.same_sense { + mesh.triangles.push(Triangle { + verts: if face.same_sense { U32Vec3::new(a, b, c) } else { U32Vec3::new(a, c, b) - } + }, }); } - }, + } Ok(Err(e)) => { - error!("Got error while triangulating {}: {:?}", - face.face_geometry.0, e); + error!( + "Got error while triangulating {}: {:?}", + face.face_geometry.0, e + ); stats.num_errors += 1; - }, + } Err(e) => { - error!("Got panic while triangulating {}: {:?}", - face.face_geometry.0, e); + error!( + "Got panic while triangulating {}: {:?}", + face.face_geometry.0, e + ); if SAVE_PANIC_SVGS { let filename = format!("panic{}.svg", face.face_geometry.0); - cdt::save_debug_panic(&pts, &edges, &filename) - .expect("Could not save debug SVG"); + cdt::save_debug_panic(&pts, &edges, &filename).expect("Could not save debug SVG"); } stats.num_panics += 1; } @@ -504,126 +521,153 @@ fn get_surface(s: &StepFile, surf: ap214::Surface) -> Result { match &s[surf] { Entity::CylindricalSurface(c) => { let (location, axis, ref_direction) = axis2_placement_3d(s, c.position); - Ok(Surface::new_cylinder(axis, ref_direction, location, c.radius.0.0.0)) - }, + Ok(Surface::new_cylinder( + axis, + ref_direction, + location, + c.radius.0 .0 .0, + )) + } Entity::ToroidalSurface(c) => { let (location, axis, _ref_direction) = axis2_placement_3d(s, c.position); - Ok(Surface::new_torus(location, axis, c.major_radius.0.0.0, c.minor_radius.0.0.0)) - }, + Ok(Surface::new_torus( + location, + axis, + c.major_radius.0 .0 .0, + c.minor_radius.0 .0 .0, + )) + } Entity::Plane(p) => { // We'll ignore axis and ref_direction in favor of building an // orthonormal basis later on let (location, axis, ref_direction) = axis2_placement_3d(s, p.position); Ok(Surface::new_plane(axis, ref_direction, location)) - }, + } // We treat cones like planes, since that's a valid mapping into 2D Entity::ConicalSurface(c) => { let (location, axis, ref_direction) = axis2_placement_3d(s, c.position); - Ok(Surface::new_cone(axis, ref_direction, location, c.semi_angle.0)) - }, + Ok(Surface::new_cone( + axis, + ref_direction, + location, + c.semi_angle.0, + )) + } Entity::SphericalSurface(c) => { // We'll ignore axis and ref_direction in favor of building an // orthonormal basis later on let (location, _axis, _ref_direction) = axis2_placement_3d(s, c.position); - Ok(Surface::new_sphere(location, c.radius.0.0.0)) - }, - Entity::BSplineSurfaceWithKnots(b) => - { + Ok(Surface::new_sphere(location, c.radius.0 .0 .0)) + } + Entity::BSplineSurfaceWithKnots(b) => { // TODO: make KnotVector::from_multiplicies accept iterators? let u_knots: Vec = b.u_knots.iter().map(|k| k.0).collect(); - let u_multiplicities: Vec = b.u_multiplicities.iter() + let u_multiplicities: Vec = b + .u_multiplicities + .iter() .map(|&k| k.try_into().expect("Got negative multiplicity")) .collect(); let u_knot_vec = KnotVector::from_multiplicities( b.u_degree.try_into().expect("Got negative degree"), - &u_knots, &u_multiplicities); + &u_knots, + &u_multiplicities, + ); let v_knots: Vec = b.v_knots.iter().map(|k| k.0).collect(); - let v_multiplicities: Vec = b.v_multiplicities.iter() + let v_multiplicities: Vec = b + .v_multiplicities + .iter() .map(|&k| k.try_into().expect("Got negative multiplicity")) .collect(); let v_knot_vec = KnotVector::from_multiplicities( b.v_degree.try_into().expect("Got negative degree"), - &v_knots, &v_multiplicities); + &v_knots, + &v_multiplicities, + ); let control_points_list = control_points_2d(s, &b.control_points_list); let surf = BSplineSurface::new( - b.u_closed.0.unwrap() == false, - b.v_closed.0.unwrap() == false, + !b.u_closed.0.unwrap(), + !b.v_closed.0.unwrap(), u_knot_vec, v_knot_vec, control_points_list, ); Ok(Surface::BSpline(SampledSurface::new(surf))) - }, + } Entity::ComplexEntity(v) if v.len() == 2 => { let bspline = if let Entity::BSplineSurfaceWithKnots(b) = &v[0] { b } else { warn!("Could not get BSplineCurveWithKnots from {:?}", v[0]); - return Err(Error::UnknownCurveType) + return Err(Error::UnknownCurveType); }; let rational = if let Entity::RationalBSplineSurface(b) = &v[1] { b } else { warn!("Could not get RationalBSplineCurve from {:?}", v[1]); - return Err(Error::UnknownCurveType) + return Err(Error::UnknownCurveType); }; // TODO: make KnotVector::from_multiplicies accept iterators? let u_knots: Vec = bspline.u_knots.iter().map(|k| k.0).collect(); - let u_multiplicities: Vec = bspline.u_multiplicities.iter() + let u_multiplicities: Vec = bspline + .u_multiplicities + .iter() .map(|&k| k.try_into().expect("Got negative multiplicity")) .collect(); let u_knot_vec = KnotVector::from_multiplicities( bspline.u_degree.try_into().expect("Got negative degree"), - &u_knots, &u_multiplicities); + &u_knots, + &u_multiplicities, + ); let v_knots: Vec = bspline.v_knots.iter().map(|k| k.0).collect(); - let v_multiplicities: Vec = bspline.v_multiplicities.iter() + let v_multiplicities: Vec = bspline + .v_multiplicities + .iter() .map(|&k| k.try_into().expect("Got negative multiplicity")) .collect(); let v_knot_vec = KnotVector::from_multiplicities( bspline.v_degree.try_into().expect("Got negative degree"), - &v_knots, &v_multiplicities); + &v_knots, + &v_multiplicities, + ); - let control_points_list = control_points_2d( - s, &bspline.control_points_list) + let control_points_list = control_points_2d(s, &bspline.control_points_list) .into_iter() .zip(rational.weights_data.iter()) - .map(|(ctrl, weight)| + .map(|(ctrl, weight)| { ctrl.into_iter() - .zip(weight.into_iter()) + .zip(weight) .map(|(p, w)| DVec4::new(p.x * w, p.y * w, p.z * w, *w)) - .collect()) + .collect() + }) .collect(); let surf = NURBSSurface::new( - bspline.u_closed.0.unwrap() == false, - bspline.v_closed.0.unwrap() == false, + !bspline.u_closed.0.unwrap(), + !bspline.v_closed.0.unwrap(), u_knot_vec, v_knot_vec, control_points_list, ); Ok(Surface::NURBS(SampledSurface::new(surf))) - - }, + } e => { warn!("Could not get surface from {:?}", e); Err(Error::UnknownSurfaceType) - }, + } } } -fn control_points_1d(s: &StepFile, row: &Vec) -> Vec { +fn control_points_1d(s: &StepFile, row: &[CartesianPoint]) -> Vec { row.iter().map(|p| cartesian_point(s, *p)).collect() } -fn control_points_2d(s: &StepFile, rows: &Vec>) -> Vec> { - rows.iter() - .map(|row| control_points_1d(s, row)) - .collect() +fn control_points_2d(s: &StepFile, rows: &[Vec]) -> Vec> { + rows.iter().map(|row| control_points_1d(s, row)).collect() } fn face_bound(s: &StepFile, b: FaceBound) -> Result, Error> { @@ -639,7 +683,7 @@ fn face_bound(s: &StepFile, b: FaceBound) -> Result, Error> { d.reverse() } Ok(d) - }, + } Entity::VertexLoop(v) => { // This is an "edge loop" with a single vertex, which is // used for cones and not really anything else. @@ -649,9 +693,7 @@ fn face_bound(s: &StepFile, b: FaceBound) -> Result, Error> { } } -fn edge_loop(s: &StepFile, edge_list: &[OrientedEdge]) - -> Result, Error> -{ +fn edge_loop(s: &StepFile, edge_list: &[OrientedEdge]) -> Result, Error> { let mut out = Vec::new(); for (i, e) in edge_list.iter().enumerate() { // Remove the last item from the list, since it's the beginning @@ -680,23 +722,36 @@ fn edge_curve(s: &StepFile, e: EdgeCurve, orientation: bool) -> Result Result -{ +fn curve( + s: &StepFile, + edge_curve: &ap214::EdgeCurve_, + curve_id: ap214::Curve, + orientation: bool, +) -> Result { Ok(match &s[curve_id] { Entity::Circle(c) => { let (location, axis, ref_direction) = axis2_placement_3d(s, c.position.cast()); - Curve::new_circle(location, axis, ref_direction, c.radius.0.0.0, - edge_curve.edge_start == edge_curve.edge_end, - edge_curve.same_sense ^ !orientation) - }, + Curve::new_circle( + location, + axis, + ref_direction, + c.radius.0 .0 .0, + edge_curve.edge_start == edge_curve.edge_end, + edge_curve.same_sense ^ !orientation, + ) + } Entity::Ellipse(c) => { let (location, axis, ref_direction) = axis2_placement_3d(s, c.position.cast()); - Curve::new_ellipse(location, axis, ref_direction, - c.semi_axis_1.0.0.0, c.semi_axis_2.0.0.0, - edge_curve.edge_start == edge_curve.edge_end, - edge_curve.same_sense ^ !orientation) - }, + Curve::new_ellipse( + location, + axis, + ref_direction, + c.semi_axis_1.0 .0 .0, + c.semi_axis_2.0 .0 .0, + edge_curve.edge_start == edge_curve.edge_end, + edge_curve.same_sense ^ !orientation, + ) + } Entity::BSplineCurveWithKnots(c) => { if c.closed_curve.0 != Some(false) { return Err(Error::ClosedCurve); @@ -704,78 +759,79 @@ fn curve(s: &StepFile, edge_curve: &ap214::EdgeCurve_, return Err(Error::SelfIntersectingCurve); } - let control_points_list = control_points_1d( - s, &c.control_points_list); + let control_points_list = control_points_1d(s, &c.control_points_list); let knots: Vec = c.knots.iter().map(|k| k.0).collect(); - let multiplicities: Vec = c.knot_multiplicities.iter() + let multiplicities: Vec = c + .knot_multiplicities + .iter() .map(|&k| k.try_into().expect("Got negative multiplicity")) .collect(); let knot_vec = KnotVector::from_multiplicities( c.degree.try_into().expect("Got negative degree"), - &knots, &multiplicities); - - let curve = nurbs::BSplineCurve::new( - c.closed_curve.0.unwrap() == false, - knot_vec, - control_points_list, + &knots, + &multiplicities, ); + + let curve = + nurbs::BSplineCurve::new(!c.closed_curve.0.unwrap(), knot_vec, control_points_list); Curve::BSplineCurveWithKnots(SampledCurve::new(curve)) - }, + } Entity::ComplexEntity(v) if v.len() == 2 => { let bspline = if let Entity::BSplineCurveWithKnots(b) = &v[0] { b } else { warn!("Could not get BSplineCurveWithKnots from {:?}", v[0]); - return Err(Error::UnknownCurveType) + return Err(Error::UnknownCurveType); }; let rational = if let Entity::RationalBSplineCurve(b) = &v[1] { b } else { warn!("Could not get RationalBSplineCurve from {:?}", v[1]); - return Err(Error::UnknownCurveType) + return Err(Error::UnknownCurveType); }; let knots: Vec = bspline.knots.iter().map(|k| k.0).collect(); - let multiplicities: Vec = bspline.knot_multiplicities.iter() + let multiplicities: Vec = bspline + .knot_multiplicities + .iter() .map(|&k| k.try_into().expect("Got negative multiplicity")) .collect(); let knot_vec = KnotVector::from_multiplicities( bspline.degree.try_into().expect("Got negative degree"), - &knots, &multiplicities); + &knots, + &multiplicities, + ); - let control_points_list = control_points_1d( - s, &bspline.control_points_list) + let control_points_list = control_points_1d(s, &bspline.control_points_list) .into_iter() .zip(rational.weights_data.iter()) .map(|(p, w)| DVec4::new(p.x * w, p.y * w, p.z * w, *w)) .collect(); let curve = nurbs::NURBSCurve::new( - bspline.closed_curve.0.unwrap() == false, + !bspline.closed_curve.0.unwrap(), knot_vec, control_points_list, ); Curve::NURBSCurve(SampledCurve::new(curve)) - }, - Entity::SurfaceCurve(v) => { - curve(s, edge_curve, v.curve_3d, orientation)? - }, - Entity::SeamCurve(v) => { - curve(s, edge_curve, v.curve_3d, orientation)? - }, + } + Entity::SurfaceCurve(v) => curve(s, edge_curve, v.curve_3d, orientation)?, + Entity::SeamCurve(v) => curve(s, edge_curve, v.curve_3d, orientation)?, // The Line type ignores pnt / dir and just uses u and v Entity::Line(_) => Curve::new_line(), e => { warn!("Could not get edge from {:?}", e); return Err(Error::UnknownCurveType); - }, + } }) } fn vertex_point(s: &StepFile, v: Vertex) -> DVec3 { - cartesian_point(s, + cartesian_point( + s, s.entity(v.cast::()) .expect("Could not get VertexPoint") .vertex_geometry - .cast()) + .cast(), + ) } From 9237100e7e6cfd4a72f3ab2dd7d28f3f5aa7a28b Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 14:23:20 +0200 Subject: [PATCH 05/24] Workspace resolver v2. --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index 9ffdbde..1472c85 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,7 @@ debug = true codegen-units = 1 [workspace] +resolver = "2" members = [ "cdt", "express", From 94bab3d29e52fea332e9df08dbeaf6c9013f6c4c Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 15:19:35 +0200 Subject: [PATCH 06/24] Rust 2021, deps bump for gui/ --- gui/Cargo.toml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/gui/Cargo.toml b/gui/Cargo.toml index 49c030e..e4160b3 100644 --- a/gui/Cargo.toml +++ b/gui/Cargo.toml @@ -2,20 +2,21 @@ name = "gui" version = "0.1.0" authors = ["Matt Keeter "] -edition = "2018" +edition = "2021" [features] +default = [ "bundle-shaders" ] bundle-shaders = [] [dependencies] step = { path = "../step", features = ["parallel"] } triangulate = { path = "../triangulate", features = ["parallel"] } -bytemuck = { version = "1.5.1", features = ["derive"] } -clap = "2.33" -env_logger = "0.8.3" -itertools = "0.10.0" -nalgebra-glm = "0.13.0" -pollster = "0.2.4" -wgpu = "0.8.1" -winit = "0.24.0" +bytemuck = { version = "1", features = ["derive"] } +clap = "3" +env_logger = "0.11" +itertools = "0.13" +nalgebra-glm = "0.18.0" +pollster = "0.3" +wgpu = "0.9" +winit = "0.26.0" From 5cc55745fd7a62ea3b4e7b5cd32af551d4a8192c Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 15:34:59 +0200 Subject: [PATCH 07/24] Clippy & rustfmt for gui/ --- gui/src/app.rs | 104 +++++++++++++++----------- gui/src/backdrop.rs | 118 ++++++++++++++--------------- gui/src/camera.rs | 73 +++++++++++------- gui/src/main.rs | 38 ++++++---- gui/src/model.rs | 176 ++++++++++++++++++++++---------------------- 5 files changed, 274 insertions(+), 235 deletions(-) diff --git a/gui/src/app.rs b/gui/src/app.rs index 5f22100..15b9af7 100644 --- a/gui/src/app.rs +++ b/gui/src/app.rs @@ -1,12 +1,14 @@ -use nalgebra_glm as glm; use glm::Vec2; +use nalgebra_glm as glm; use winit::{ - dpi::{PhysicalSize}, - event::{ElementState, ModifiersState, WindowEvent, DeviceEvent, VirtualKeyCode, MouseScrollDelta}, + dpi::PhysicalSize, + event::{ + DeviceEvent, ElementState, ModifiersState, MouseScrollDelta, VirtualKeyCode, WindowEvent, + }, }; -use triangulate::mesh::Mesh; use crate::{backdrop::Backdrop, camera::Camera, model::Model}; +use triangulate::mesh::Mesh; pub struct App { start_time: std::time::SystemTime, @@ -36,16 +38,19 @@ pub enum Reply { } impl App { - pub fn new(start_time: std::time::SystemTime, size: PhysicalSize, - adapter: wgpu::Adapter, surface: wgpu::Surface, - device: wgpu::Device, loader: std::thread::JoinHandle) - -> Self - { - let swapchain_format = adapter.get_swap_chain_preferred_format(&surface) + pub fn new( + start_time: std::time::SystemTime, + size: PhysicalSize, + adapter: wgpu::Adapter, + surface: wgpu::Surface, + device: wgpu::Device, + loader: std::thread::JoinHandle, + ) -> Self { + let swapchain_format = adapter + .get_swap_chain_preferred_format(&surface) .expect("Could not get swapchain format"); - let swapchain = Self::rebuild_swapchain_( - size, swapchain_format, &surface, &device); + let swapchain = Self::rebuild_swapchain_(size, swapchain_format, &surface, &device); let depth = Self::rebuild_depth_(size, &device); let backdrop = Backdrop::new(&device, swapchain_format); @@ -70,10 +75,11 @@ impl App { } pub fn device_event(&mut self, e: DeviceEvent) { - if let DeviceEvent::MouseWheel { delta } = e { - if let MouseScrollDelta::PixelDelta(p) = delta { - self.camera.mouse_scroll(p.y as f32); - } + if let DeviceEvent::MouseWheel { + delta: MouseScrollDelta::PixelDelta(p), + } = e + { + self.camera.mouse_scroll(p.y as f32); } } @@ -82,23 +88,23 @@ impl App { WindowEvent::Resized(size) => { self.resize(size); Reply::Redraw - }, + } WindowEvent::ScaleFactorChanged { new_inner_size, .. } => { self.resize(*new_inner_size); Reply::Redraw - }, + } WindowEvent::CloseRequested => Reply::Quit, WindowEvent::ModifiersChanged(m) => { self.modifiers = m; Reply::Continue - }, + } WindowEvent::KeyboardInput { input, .. } => { if self.modifiers.logo() && input.virtual_keycode == Some(VirtualKeyCode::Q) { Reply::Quit } else { Reply::Continue } - }, + } WindowEvent::MouseInput { button, state, .. } => { use ElementState::*; match state { @@ -108,31 +114,32 @@ impl App { Reply::Continue } WindowEvent::CursorMoved { position, .. } => { - self.camera.mouse_move(Vec2::new(position.x as f32, position.y as f32)); + self.camera + .mouse_move(Vec2::new(position.x as f32, position.y as f32)); Reply::Redraw - }, - WindowEvent::MouseWheel { delta, ..} => { + } + WindowEvent::MouseWheel { delta, .. } => { if let MouseScrollDelta::LineDelta(_, verti) = delta { self.camera.mouse_scroll(verti * 10.0); } Reply::Redraw - }, + } _ => Reply::Continue, } } fn resize(&mut self, size: PhysicalSize) { self.size = size; - self.swapchain = Self::rebuild_swapchain_( - size, self.swapchain_format, - &self.surface, &self.device); + self.swapchain = + Self::rebuild_swapchain_(size, self.swapchain_format, &self.surface, &self.device); self.depth = Self::rebuild_depth_(size, &self.device); self.camera.set_size(size.width as f32, size.height as f32); } - fn rebuild_depth_(size: PhysicalSize, device: &wgpu::Device) - -> (wgpu::Texture, wgpu::TextureView) - { + fn rebuild_depth_( + size: PhysicalSize, + device: &wgpu::Device, + ) -> (wgpu::Texture, wgpu::TextureView) { let size = wgpu::Extent3d { width: size.width, height: size.height, @@ -145,21 +152,22 @@ impl App { sample_count: 1, dimension: wgpu::TextureDimension::D2, format: wgpu::TextureFormat::Depth32Float, - usage: wgpu::TextureUsage::RENDER_ATTACHMENT | - wgpu::TextureUsage::SAMPLED, + usage: wgpu::TextureUsage::RENDER_ATTACHMENT | wgpu::TextureUsage::SAMPLED, }; let tex = device.create_texture(&desc); let view = tex.create_view(&wgpu::TextureViewDescriptor::default()); (tex, view) } - fn rebuild_swapchain_(size: PhysicalSize, format: wgpu::TextureFormat, - surface: &wgpu::Surface, device: &wgpu::Device) - -> wgpu::SwapChain - { + fn rebuild_swapchain_( + size: PhysicalSize, + format: wgpu::TextureFormat, + surface: &wgpu::Surface, + device: &wgpu::Device, + ) -> wgpu::SwapChain { let sc_desc = wgpu::SwapChainDescriptor { usage: wgpu::TextureUsage::RENDER_ATTACHMENT, - format: format, + format, width: size.width, height: size.height, present_mode: wgpu::PresentMode::Mailbox, @@ -170,16 +178,18 @@ impl App { // Redraw the GUI, returning true if the model was not drawn (which means // that the parent loop should keep calling redraw to force model load) pub fn redraw(&mut self, queue: &wgpu::Queue) -> bool { - let frame = self.swapchain + let frame = self + .swapchain .get_current_frame() .expect("Failed to acquire next swap chain texture") .output; - let mut encoder = self.device.create_command_encoder( - &wgpu::CommandEncoderDescriptor { label: None }); + let mut encoder = self + .device + .create_command_encoder(&wgpu::CommandEncoderDescriptor { label: None }); self.backdrop.draw(&frame, &self.depth.1, &mut encoder); if let Some(model) = &self.model { - model.draw(&self.camera, &queue, &frame, &self.depth.1, &mut encoder); + model.draw(&self.camera, queue, &frame, &self.depth.1, &mut encoder); } let drew_model = self.model.is_some(); queue.submit(Some(encoder.finish())); @@ -196,12 +206,18 @@ impl App { // the model until the _second_ frame. if !self.first_frame && self.model.is_none() { println!("Waiting for mesh"); - let mesh = self.loader.take() + let mesh = self + .loader + .take() .unwrap() .join() .expect("Failed to load mesh"); - let model = Model::new(&self.device, self.swapchain_format, - &mesh.verts, &mesh.triangles); + let model = Model::new( + &self.device, + self.swapchain_format, + &mesh.verts, + &mesh.triangles, + ); self.model = Some(model); self.camera.fit_verts(&mesh.verts); self.first_frame = true; diff --git a/gui/src/backdrop.rs b/gui/src/backdrop.rs index 26fa442..e5a920d 100644 --- a/gui/src/backdrop.rs +++ b/gui/src/backdrop.rs @@ -13,9 +13,10 @@ impl Backdrop { #[cfg(not(feature = "bundle-shaders"))] let backdrop_src = Cow::Owned( String::from_utf8( - std::fs::read("gui/src/backdrop.wgsl") - .expect("Could not read shader")) - .expect("Shader is invalid UTF-8")); + std::fs::read("gui/src/backdrop.wgsl").expect("Could not read shader"), + ) + .expect("Shader is invalid UTF-8"), + ); let shader = device.create_shader_module(&wgpu::ShaderModuleDescriptor { label: None, @@ -23,70 +24,65 @@ impl Backdrop { flags: wgpu::ShaderFlags::all(), }); - let pipeline_layout = device.create_pipeline_layout( - &wgpu::PipelineLayoutDescriptor { - label: None, - bind_group_layouts: &[], - push_constant_ranges: &[], - }); + let pipeline_layout = device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { + label: None, + bind_group_layouts: &[], + push_constant_ranges: &[], + }); - let render_pipeline = device.create_render_pipeline( - &wgpu::RenderPipelineDescriptor { - label: None, - layout: Some(&pipeline_layout), - vertex: wgpu::VertexState { - module: &shader, - entry_point: "vs_main", - buffers: &[], - }, - fragment: Some(wgpu::FragmentState { - module: &shader, - entry_point: "fs_main", - targets: &[swapchain_format.into()], - }), - primitive: wgpu::PrimitiveState::default(), - depth_stencil: Some(wgpu::DepthStencilState { - format: wgpu::TextureFormat::Depth32Float, - depth_write_enabled: true, - depth_compare: wgpu::CompareFunction::Always, - stencil: wgpu::StencilState::default(), - bias: wgpu::DepthBiasState::default(), - }), - multisample: wgpu::MultisampleState::default(), + let render_pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: None, + layout: Some(&pipeline_layout), + vertex: wgpu::VertexState { + module: &shader, + entry_point: "vs_main", + buffers: &[], + }, + fragment: Some(wgpu::FragmentState { + module: &shader, + entry_point: "fs_main", + targets: &[swapchain_format.into()], + }), + primitive: wgpu::PrimitiveState::default(), + depth_stencil: Some(wgpu::DepthStencilState { + format: wgpu::TextureFormat::Depth32Float, + depth_write_enabled: true, + depth_compare: wgpu::CompareFunction::Always, + stencil: wgpu::StencilState::default(), + bias: wgpu::DepthBiasState::default(), + }), + multisample: wgpu::MultisampleState::default(), }); - Backdrop { - render_pipeline, - } + Backdrop { render_pipeline } } - pub fn draw(&self, frame: &wgpu::SwapChainTexture, - depth_view: &wgpu::TextureView, - encoder: &mut wgpu::CommandEncoder) - { - let mut rpass = encoder.begin_render_pass( - &wgpu::RenderPassDescriptor { - label: None, - color_attachments: &[wgpu::RenderPassColorAttachment { - view: &frame.view, - resolve_target: None, - ops: wgpu::Operations { - load: wgpu::LoadOp::Clear(wgpu::Color::GREEN), - store: true, - }, - }], - depth_stencil_attachment: Some( - wgpu::RenderPassDepthStencilAttachment { - view: &depth_view, - depth_ops: Some(wgpu::Operations { - load: wgpu::LoadOp::Clear(0.0), - store: true, - }), - stencil_ops: None, - }), - }); + pub fn draw( + &self, + frame: &wgpu::SwapChainTexture, + depth_view: &wgpu::TextureView, + encoder: &mut wgpu::CommandEncoder, + ) { + let mut rpass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { + label: None, + color_attachments: &[wgpu::RenderPassColorAttachment { + view: &frame.view, + resolve_target: None, + ops: wgpu::Operations { + load: wgpu::LoadOp::Clear(wgpu::Color::GREEN), + store: true, + }, + }], + depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachment { + view: depth_view, + depth_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Clear(0.0), + store: true, + }), + stencil_ops: None, + }), + }); rpass.set_pipeline(&self.render_pipeline); rpass.draw(0..6, 0..1); } } - diff --git a/gui/src/camera.rs b/gui/src/camera.rs index b83cb4d..ce37212 100644 --- a/gui/src/camera.rs +++ b/gui/src/camera.rs @@ -1,6 +1,6 @@ +use glm::{Mat4, Vec2, Vec3, Vec4}; use itertools::Itertools; use nalgebra_glm as glm; -use glm::{Vec2, Vec3, Vec4, Mat4}; use winit::event::MouseButton; use triangulate::mesh::Vertex; @@ -33,11 +33,11 @@ pub struct Camera { mouse: MouseState, } - impl Camera { pub fn new(width: f32, height: f32) -> Self { Camera { - width, height, + width, + height, pitch: 0.0, yaw: 0.0, scale: 1.0, @@ -49,21 +49,26 @@ impl Camera { pub fn mouse_pressed(&mut self, button: MouseButton) { // If we were previously free, then switch to panning or rotating if let MouseState::Free(pos) = &self.mouse { - match button { + if let Some(m) = match button { MouseButton::Left => Some(MouseState::Rotate(*pos)), MouseButton::Right => Some(MouseState::Pan(*pos, self.mouse_pos(*pos))), _ => None, - }.map(|m| self.mouse = m); + } { + self.mouse = m + } } } + pub fn mouse_released(&mut self, button: MouseButton) { - match &self.mouse { - MouseState::Rotate(pos) if button == MouseButton::Left => - Some(MouseState::Free(*pos)), - MouseState::Pan(pos, ..) if button == MouseButton::Right => - Some(MouseState::Free(*pos)), + if let Some(m) = match &self.mouse { + MouseState::Rotate(pos) if button == MouseButton::Left => Some(MouseState::Free(*pos)), + MouseState::Pan(pos, ..) if button == MouseButton::Right => { + Some(MouseState::Free(*pos)) + } _ => None, - }.map(|m| self.mouse = m); + } { + self.mouse = m + } } pub fn mat(&self) -> Mat4 { @@ -82,7 +87,7 @@ impl Camera { } pub fn mouse_move(&mut self, new_pos: Vec2) { - let x_norm = 2.0 * (new_pos.x / self.width - 0.5); + let x_norm = 2.0 * (new_pos.x / self.width - 0.5); let y_norm = -2.0 * (new_pos.y / self.height - 0.5); let new_pos = Vec2::new(x_norm, y_norm); @@ -92,20 +97,19 @@ impl Camera { let current_pos = self.mouse_pos(new_pos); let delta_pos = orig - current_pos; self.center += delta_pos; - }, + } MouseState::Rotate(pos) => { let delta = new_pos - *pos; - self.spin(delta.x * 3.0, - -delta.y * 3.0 * self.height / self.width); - }, + self.spin(delta.x * 3.0, -delta.y * 3.0 * self.height / self.width); + } _ => (), } // Store new mouse position match &mut self.mouse { - MouseState::Free(pos) - | MouseState::Pan(pos, ..) - | MouseState::Rotate(pos) => *pos = new_pos, + MouseState::Free(pos) | MouseState::Pan(pos, ..) | MouseState::Rotate(pos) => { + *pos = new_pos + } MouseState::Unknown => self.mouse = MouseState::Free(new_pos), } } @@ -117,16 +121,33 @@ impl Camera { } pub fn fit_verts(&mut self, verts: &[Vertex]) { - let xb = verts.iter().map(|v| v.pos.x).minmax().into_option().unwrap(); - let yb = verts.iter().map(|v| v.pos.y).minmax().into_option().unwrap(); - let zb = verts.iter().map(|v| v.pos.z).minmax().into_option().unwrap(); + let xb = verts + .iter() + .map(|v| v.pos.x) + .minmax() + .into_option() + .unwrap(); + let yb = verts + .iter() + .map(|v| v.pos.y) + .minmax() + .into_option() + .unwrap(); + let zb = verts + .iter() + .map(|v| v.pos.z) + .minmax() + .into_option() + .unwrap(); let dx = xb.1 - xb.0; let dy = yb.1 - yb.0; let dz = zb.1 - zb.0; self.scale = (1.0 / dx.max(dy).max(dz)) as f32; - self.center = Vec3::new((xb.0 + xb.1) as f32 / 2.0, - (yb.0 + yb.1) as f32 / 2.0, - (zb.0 + zb.1) as f32 / 2.0); + self.center = Vec3::new( + (xb.0 + xb.1) as f32 / 2.0, + (yb.0 + yb.1) as f32 / 2.0, + (zb.0 + zb.1) as f32 / 2.0, + ); } pub fn set_size(&mut self, width: f32, height: f32) { @@ -166,7 +187,7 @@ impl Camera { self.yaw += dy; } - pub fn scale(&mut self, value: f32, pos: Vec2){ + pub fn scale(&mut self, value: f32, pos: Vec2) { let start_pos = self.mouse_pos(pos); self.scale *= value; let end_pos = self.mouse_pos(pos); diff --git a/gui/src/main.rs b/gui/src/main.rs index 18c0a29..2d039d6 100644 --- a/gui/src/main.rs +++ b/gui/src/main.rs @@ -1,6 +1,6 @@ use std::time::SystemTime; use winit::{ - event::{Event}, + event::Event, event_loop::{ControlFlow, EventLoop}, window::Window, }; @@ -13,9 +13,12 @@ pub(crate) mod model; use crate::app::App; use triangulate::mesh::Mesh; -async fn run(start: SystemTime, event_loop: EventLoop<()>, window: Window, - loader: std::thread::JoinHandle) -{ +async fn run( + start: SystemTime, + event_loop: EventLoop<()>, + window: Window, + loader: std::thread::JoinHandle, +) { let size = window.inner_size(); let (surface, adapter) = { let instance = wgpu::Instance::new(wgpu::BackendBit::all()); @@ -53,13 +56,17 @@ async fn run(start: SystemTime, event_loop: EventLoop<()>, window: Window, Event::WindowEvent { event, .. } => match app.window_event(event) { Reply::Continue => (), Reply::Quit => *control_flow = ControlFlow::Exit, - Reply::Redraw => if app.redraw(&queue) { - window.request_redraw(); - }, - }, - Event::RedrawRequested(_) => if app.redraw(&queue) { - window.request_redraw(); + Reply::Redraw => { + if app.redraw(&queue) { + window.request_redraw(); + } + } }, + Event::RedrawRequested(_) => { + if app.redraw(&queue) { + window.request_redraw(); + } + } Event::DeviceEvent { event, .. } => app.device_event(event), _ => (), } @@ -73,11 +80,14 @@ fn main() { let matches = clap::App::new("gui") .author("Matt Keeter ") .about("Renders a STEP file") - .arg(clap::Arg::with_name("input") - .takes_value(true) - .required(true)) + .arg( + clap::Arg::with_name("input") + .takes_value(true) + .required(true), + ) .get_matches(); - let input = matches.value_of("input") + let input = matches + .value_of("input") .expect("Could not get input file") .to_owned(); diff --git a/gui/src/model.rs b/gui/src/model.rs index 5c2d2da..7a14f5e 100644 --- a/gui/src/model.rs +++ b/gui/src/model.rs @@ -1,11 +1,11 @@ use std::borrow::Cow; use bytemuck::{Pod, Zeroable}; +use glm::{Mat4, Vec4}; use nalgebra_glm as glm; -use glm::{Vec4, Mat4}; use wgpu::util::DeviceExt; -use triangulate::mesh::{Vertex, Triangle}; +use triangulate::mesh::{Triangle, Vertex}; use crate::camera::Camera; @@ -37,16 +37,14 @@ pub struct Model { } impl Model { - pub fn new(device: &wgpu::Device, swapchain_format: wgpu::TextureFormat, - verts: &[Vertex], tris: &[Triangle]) -> Self { - - let vertex_data: Vec = verts.into_iter() - .map(GPUVertex::from_vertex) - .collect(); - let index_data: Vec = tris.into_iter() - .flat_map(|t| t.verts.iter()) - .copied() - .collect(); + pub fn new( + device: &wgpu::Device, + swapchain_format: wgpu::TextureFormat, + verts: &[Vertex], + tris: &[Triangle], + ) -> Self { + let vertex_data: Vec = verts.iter().map(GPUVertex::from_vertex).collect(); + let index_data: Vec = tris.iter().flat_map(|t| t.verts.iter()).copied().collect(); let vertex_buf = device.create_buffer_init(&wgpu::util::BufferInitDescriptor { label: Some("Vertex buffer"), @@ -69,19 +67,16 @@ impl Model { let bind_group_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { label: None, - entries: &[ - wgpu::BindGroupLayoutEntry { - binding: 0, - visibility: wgpu::ShaderStage::VERTEX, - ty: wgpu::BindingType::Buffer { - ty: wgpu::BufferBindingType::Uniform, - has_dynamic_offset: false, - min_binding_size: wgpu::BufferSize::new( - std::mem::size_of::() as u64 * 2), - }, - count: None, + entries: &[wgpu::BindGroupLayoutEntry { + binding: 0, + visibility: wgpu::ShaderStage::VERTEX, + ty: wgpu::BindingType::Buffer { + ty: wgpu::BufferBindingType::Uniform, + has_dynamic_offset: false, + min_binding_size: wgpu::BufferSize::new(std::mem::size_of::() as u64 * 2), }, - ], + count: None, + }], }); // Create pipeline layout @@ -110,7 +105,7 @@ impl Model { // Colors wgpu::VertexAttribute { format: wgpu::VertexFormat::Float32x4, - offset: 2*std::mem::size_of::() as wgpu::BufferAddress, + offset: 2 * std::mem::size_of::() as wgpu::BufferAddress, shader_location: 2, }, ], @@ -119,12 +114,10 @@ impl Model { // Create bind group let bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor { layout: &bind_group_layout, - entries: &[ - wgpu::BindGroupEntry { - binding: 0, - resource: uniform_buf.as_entire_binding(), - }, - ], + entries: &[wgpu::BindGroupEntry { + binding: 0, + resource: uniform_buf.as_entire_binding(), + }], label: None, }); @@ -134,10 +127,9 @@ impl Model { #[cfg(not(feature = "bundle-shaders"))] let model_src = Cow::Owned( - String::from_utf8( - std::fs::read("gui/src/model.wgsl") - .expect("Could not read shader")) - .expect("Shader is invalid UTF-8")); + String::from_utf8(std::fs::read("gui/src/model.wgsl").expect("Could not read shader")) + .expect("Shader is invalid UTF-8"), + ); let shader = device.create_shader_module(&wgpu::ShaderModuleDescriptor { label: None, @@ -145,29 +137,28 @@ impl Model { flags: wgpu::ShaderFlags::all(), }); - let render_pipeline = device.create_render_pipeline( - &wgpu::RenderPipelineDescriptor { - label: None, - layout: Some(&pipeline_layout), - vertex: wgpu::VertexState { - module: &shader, - entry_point: "vs_main", - buffers: &[vertex_buf_layout], - }, - fragment: Some(wgpu::FragmentState { - module: &shader, - entry_point: "fs_main", - targets: &[swapchain_format.into()], - }), - primitive: wgpu::PrimitiveState::default(), - depth_stencil: Some(wgpu::DepthStencilState { - format: wgpu::TextureFormat::Depth32Float, - depth_write_enabled: true, - depth_compare: wgpu::CompareFunction::Greater, - stencil: wgpu::StencilState::default(), - bias: wgpu::DepthBiasState::default(), - }), - multisample: wgpu::MultisampleState::default(), + let render_pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { + label: None, + layout: Some(&pipeline_layout), + vertex: wgpu::VertexState { + module: &shader, + entry_point: "vs_main", + buffers: &[vertex_buf_layout], + }, + fragment: Some(wgpu::FragmentState { + module: &shader, + entry_point: "fs_main", + targets: &[swapchain_format.into()], + }), + primitive: wgpu::PrimitiveState::default(), + depth_stencil: Some(wgpu::DepthStencilState { + format: wgpu::TextureFormat::Depth32Float, + depth_write_enabled: true, + depth_compare: wgpu::CompareFunction::Greater, + stencil: wgpu::StencilState::default(), + bias: wgpu::DepthBiasState::default(), + }), + multisample: wgpu::MultisampleState::default(), }); Model { @@ -180,42 +171,47 @@ impl Model { } } - pub fn draw(&self, camera: &Camera, - queue: &wgpu::Queue, - frame: &wgpu::SwapChainTexture, - depth_view: &wgpu::TextureView, - encoder: &mut wgpu::CommandEncoder) - { + pub fn draw( + &self, + camera: &Camera, + queue: &wgpu::Queue, + frame: &wgpu::SwapChainTexture, + depth_view: &wgpu::TextureView, + encoder: &mut wgpu::CommandEncoder, + ) { // Update the uniform buffer with our new matrix let view_mat = camera.view_matrix(); let model_mat = camera.model_matrix(); - queue.write_buffer(&self.uniform_buf, 0, - bytemuck::cast_slice(view_mat.as_slice())); - queue.write_buffer(&self.uniform_buf, + queue.write_buffer( + &self.uniform_buf, + 0, + bytemuck::cast_slice(view_mat.as_slice()), + ); + queue.write_buffer( + &self.uniform_buf, std::mem::size_of::() as wgpu::BufferAddress, - bytemuck::cast_slice(model_mat.as_slice())); - - let mut rpass = encoder.begin_render_pass( - &wgpu::RenderPassDescriptor { - label: None, - color_attachments: &[wgpu::RenderPassColorAttachment { - view: &frame.view, - resolve_target: None, - ops: wgpu::Operations { - load: wgpu::LoadOp::Load, - store: true, - }, - }], - depth_stencil_attachment: Some( - wgpu::RenderPassDepthStencilAttachment { - view: &depth_view, - depth_ops: Some(wgpu::Operations { - load: wgpu::LoadOp::Load, - store: true, - }), - stencil_ops: None, - }), - }); + bytemuck::cast_slice(model_mat.as_slice()), + ); + + let mut rpass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { + label: None, + color_attachments: &[wgpu::RenderPassColorAttachment { + view: &frame.view, + resolve_target: None, + ops: wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }, + }], + depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachment { + view: depth_view, + depth_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }), + stencil_ops: None, + }), + }); rpass.set_pipeline(&self.render_pipeline); rpass.set_index_buffer(self.index_buf.slice(..), wgpu::IndexFormat::Uint32); rpass.set_vertex_buffer(0, self.vertex_buf.slice(..)); From a7efac603c9bb5838ae2f88dae28ebbc07e2f499 Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 15:38:02 +0200 Subject: [PATCH 08/24] Rust 2021, deps bump for nurbs/ --- nurbs/Cargo.toml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/nurbs/Cargo.toml b/nurbs/Cargo.toml index 57437e4..5620e89 100644 --- a/nurbs/Cargo.toml +++ b/nurbs/Cargo.toml @@ -2,13 +2,11 @@ name = "nurbs" version = "0.1.0" authors = ["Matt Keeter "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +edition = "2021" [dependencies] -log = "0.4.14" -nalgebra-glm = "0.13.0" +log = "0.4" +nalgebra-glm = "0.18" num-integer = "0.1" -ordered-float = "2.0" +ordered-float = "4" smallvec = "1.6" From 240d510007a5cef39dabca76033260cf965cd72e Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 15:38:20 +0200 Subject: [PATCH 09/24] Clippy & rustfmt for nurbs/ --- nurbs/src/abstract_curve.rs | 8 +++++--- nurbs/src/abstract_surface.rs | 14 +++++++------- nurbs/src/bspline_curve.rs | 4 ++-- nurbs/src/bspline_surface.rs | 6 ++---- nurbs/src/knot_vector.rs | 32 ++++++++++++++++++-------------- nurbs/src/lib.rs | 3 ++- nurbs/src/nd_curve.rs | 17 +++++++++-------- nurbs/src/nd_surface.rs | 21 +++++++++++---------- nurbs/src/nurbs_curve.rs | 5 ++--- nurbs/src/nurbs_surface.rs | 7 ++----- nurbs/src/sampled_curve.rs | 12 ++++++++---- nurbs/src/sampled_surface.rs | 15 +++++++++------ 12 files changed, 77 insertions(+), 67 deletions(-) diff --git a/nurbs/src/abstract_curve.rs b/nurbs/src/abstract_curve.rs index 6d71723..d3b5995 100644 --- a/nurbs/src/abstract_curve.rs +++ b/nurbs/src/abstract_curve.rs @@ -1,8 +1,10 @@ use nalgebra_glm::DVec3; -/// Trait for a curve which maps from 1D to 3D -/// This trait is implement for both Bezier and NURBS curves, and abstracts -/// over them in the [`SampledCurve`] `struct`. +/// Trait for a curve which maps from 1D to 3D. +/// +/// This trait is implemented for both Bezier and NURBS curves, and abstracts +/// over them in the [`SampledCurve`](crate::sampled_curve::SampledCurve) +/// `struct`. pub trait AbstractCurve { fn point(&self, u: f64) -> DVec3; fn derivs(&self, u: f64) -> Vec; diff --git a/nurbs/src/abstract_surface.rs b/nurbs/src/abstract_surface.rs index 64a853e..a8210f6 100644 --- a/nurbs/src/abstract_surface.rs +++ b/nurbs/src/abstract_surface.rs @@ -1,17 +1,17 @@ -use nalgebra_glm::{DVec2, DVec3}; use crate::VecF; +use nalgebra_glm::{DVec2, DVec3}; -/// Trait for a curve which maps from 2D (uv) to 3D +/// Trait for a curve which maps from 2D (uv) to 3D. +/// /// This trait is implement for both Bezier and NURBS surfaces, and abstracts -/// over them in the [`SampledSurface`] `struct` +/// over them in the [`SampledSurface`](crate::sampled_surface::SampledSurface) +/// `struct`. pub trait AbstractSurface { fn point(&self, uv: DVec2) -> DVec3; /// Low-level function to calculate a point with a basis function hint - /// (used as an optimization when we're re-using basis functions) - fn point_from_basis(&self, uspan: usize, Nu: &VecF, - vspan: usize, Nv: &VecF) -> DVec3; + /// (used as an optimization when we're re-using basis functions). + fn point_from_basis(&self, uspan: usize, Nu: &VecF, vspan: usize, Nv: &VecF) -> DVec3; fn derivs(&self, uv: DVec2) -> Vec>; } - diff --git a/nurbs/src/bspline_curve.rs b/nurbs/src/bspline_curve.rs index a2f5dc9..25bc0ec 100644 --- a/nurbs/src/bspline_curve.rs +++ b/nurbs/src/bspline_curve.rs @@ -1,5 +1,5 @@ -use nalgebra_glm::{DVec3}; -use crate::{nd_curve::NDBSplineCurve, abstract_curve::AbstractCurve}; +use crate::{abstract_curve::AbstractCurve, nd_curve::NDBSplineCurve}; +use nalgebra_glm::DVec3; pub type BSplineCurve = NDBSplineCurve<3>; diff --git a/nurbs/src/bspline_surface.rs b/nurbs/src/bspline_surface.rs index f4633df..f19d3e9 100644 --- a/nurbs/src/bspline_surface.rs +++ b/nurbs/src/bspline_surface.rs @@ -1,5 +1,5 @@ +use crate::{abstract_surface::AbstractSurface, nd_surface::NDBSplineSurface, VecF}; use nalgebra_glm::{DVec2, DVec3}; -use crate::{nd_surface::NDBSplineSurface, abstract_surface::AbstractSurface, VecF}; pub type BSplineSurface = NDBSplineSurface<3>; @@ -8,9 +8,7 @@ impl AbstractSurface for BSplineSurface { self.surface_point(uv) } - fn point_from_basis(&self, uspan: usize, Nu: &VecF, - vspan: usize, Nv: &VecF) -> DVec3 - { + fn point_from_basis(&self, uspan: usize, Nu: &VecF, vspan: usize, Nv: &VecF) -> DVec3 { self.surface_point_from_basis(uspan, Nu, vspan, Nv) } diff --git a/nurbs/src/knot_vector.rs b/nurbs/src/knot_vector.rs index 650a6d6..307b500 100644 --- a/nurbs/src/knot_vector.rs +++ b/nurbs/src/knot_vector.rs @@ -7,18 +7,20 @@ use crate::VecF; #[derive(Debug, Clone)] pub struct KnotVector { - /// Knot positions + /// Knot positions. U: VecF, - /// Degree of the knot vector + /// Degree of the knot vector. p: usize, } impl KnotVector { - /// Constructs a new knot vector of over + /// Constructs a new knot vector. pub fn from_multiplicities(p: usize, knots: &[f64], multiplicities: &[usize]) -> Self { assert!(knots.len() == multiplicities.len()); - let U = knots.iter().zip(multiplicities.iter()) + let U = knots + .iter() + .zip(multiplicities.iter()) .flat_map(|(k, m)| std::iter::repeat(*k).take(*m)) .collect(); Self { U, p } @@ -27,7 +29,7 @@ impl KnotVector { /// For basis functions of order `p + 1`, finds the span in the knot vector /// that is relevant for position `u`. /// - /// ALGORITHM A2.1 + /// Algorithm A2.1 pub fn find_span(&self, u: f64) -> usize { // U is [u_0, u_1, ... u_m] let m = self.len() - 1; @@ -58,6 +60,9 @@ impl KnotVector { pub fn len(&self) -> usize { self.U.len() } + pub fn is_empty(&self) -> bool { + self.U.is_empty() + } pub fn min_t(&self) -> f64 { self[self.p] } @@ -67,7 +72,7 @@ impl KnotVector { /// Computes non-vanishing basis functions of order `p + 1` at point `u`. /// - /// ALGORITHM A2.2 + /// Algorithm A2.2 pub fn basis_funs(&self, u: f64) -> VecF { let i = self.find_span(u); self.basis_funs_for_span(i, u) @@ -97,9 +102,10 @@ impl KnotVector { /// Computes the derivatives (up to and including the `nth` derivative) of non-vanishing /// basis functions of order `p + 1` at point `u`. /// - /// ALGORITHM A2.3 - /// if ders = basis_funs_derivs_(), then ders[k][j] is the `kth` derivative - /// of the function `N_{i-p+j, p}` at `u` + /// Algorithm A2.3 + /// + /// If `ders = basis_funs_derivs_()`, `then ders[k][j]` is the `kth` derivative + /// of the function `N_{i-p+j, p}` at `u`. pub fn basis_funs_derivs(&self, u: f64, n: usize) -> Vec> { let i = self.find_span(u); self.basis_funs_derivs_for_span(i, u, n) @@ -135,9 +141,7 @@ impl KnotVector { let mut s2 = 1; a[0][0] = 1.0; for k in 1..=n { - let aus = |i: i32| -> usize { - i.try_into().expect("Could not convert to usize") - }; + let aus = |i: i32| -> usize { i.try_into().expect("Could not convert to usize") }; let mut d = 0.0; let rk = (r as i32) - (k as i32); let pk = (self.p as i32) - (k as i32); @@ -146,7 +150,7 @@ impl KnotVector { d = a[s2][0] * ndu[aus(rk)][aus(pk)]; } let j1 = aus(if rk >= -1 { 1 } else { -rk }); - let j2 = aus(if r as i32 - 1 <= pk as i32 { + let j2 = aus(if r as i32 - 1 <= pk { k as i32 - 1 } else { self.p as i32 - r as i32 @@ -187,7 +191,7 @@ impl std::ops::Index for KnotVector { #[cfg(test)] mod tests { - use super::*; + /* #[test] fn test_find_span() { diff --git a/nurbs/src/lib.rs b/nurbs/src/lib.rs index 5817ae0..f8b87b2 100644 --- a/nurbs/src/lib.rs +++ b/nurbs/src/lib.rs @@ -1,4 +1,5 @@ #![allow(non_snake_case)] +#![allow(clippy::needless_range_loop)] // This crate is translations of algorithms from the 70s, which use awkward // single-character names everywhere, so we're matching their convention. @@ -14,7 +15,7 @@ mod nurbs_surface; mod sampled_curve; mod sampled_surface; -use smallvec::{SmallVec}; +use smallvec::SmallVec; type VecF = SmallVec<[f64; 8]>; pub use crate::abstract_curve::AbstractCurve; diff --git a/nurbs/src/nd_curve.rs b/nurbs/src/nd_curve.rs index 86ec848..b0f165c 100644 --- a/nurbs/src/nd_curve.rs +++ b/nurbs/src/nd_curve.rs @@ -1,6 +1,6 @@ -use std::cmp::min; -use nalgebra_glm::TVec; use crate::KnotVector; +use nalgebra_glm::TVec; +use std::cmp::min; #[derive(Debug, Clone)] pub struct NDBSplineCurve { @@ -11,11 +11,7 @@ pub struct NDBSplineCurve { /// Abstract b-spline curve with N-dimensional control points impl NDBSplineCurve { - pub fn new( - open: bool, - knots: KnotVector, - control_points: Vec>, - ) -> Self { + pub fn new(open: bool, knots: KnotVector, control_points: Vec>) -> Self { Self { open, knots, @@ -68,7 +64,12 @@ impl NDBSplineCurve { CK } - pub fn as_polyline(&self, u_start: f64, u_end: f64, num_points_per_knot: usize) -> Vec> { + pub fn as_polyline( + &self, + u_start: f64, + u_end: f64, + num_points_per_knot: usize, + ) -> Vec> { let (u_min, u_max) = if u_start < u_end { (u_start, u_end) } else { diff --git a/nurbs/src/nd_surface.rs b/nurbs/src/nd_surface.rs index d8c0fc6..5172165 100644 --- a/nurbs/src/nd_surface.rs +++ b/nurbs/src/nd_surface.rs @@ -1,6 +1,6 @@ -use std::cmp::min; -use nalgebra_glm::{DVec2, DVec3, TVec}; use crate::{KnotVector, VecF}; +use nalgebra_glm::{DVec2, DVec3, TVec}; +use std::cmp::min; #[derive(Debug, Clone)] pub struct NDBSplineSurface { @@ -56,10 +56,13 @@ impl NDBSplineSurface { self.surface_point_from_basis(uspan, &Nu, vspan, &Nv) } - pub fn surface_point_from_basis(&self, - uspan: usize, Nu: &VecF, - vspan: usize, Nv: &VecF) -> TVec - { + pub fn surface_point_from_basis( + &self, + uspan: usize, + Nu: &VecF, + vspan: usize, + Nv: &VecF, + ) -> TVec { let p = self.u_knots.degree(); let q = self.v_knots.degree(); @@ -132,12 +135,10 @@ impl NDBSplineSurface { for i in 0..self.control_points.len() { for j in 0..self.control_points[i].len() { if i > 0 { - v_sum += distance(self.control_points[i - 1][j], - self.control_points[i][j]); + v_sum += distance(self.control_points[i - 1][j], self.control_points[i][j]); } if j > 0 { - u_sum += distance(self.control_points[i][j - 1], - self.control_points[i][j]); + u_sum += distance(self.control_points[i][j - 1], self.control_points[i][j]); } } } diff --git a/nurbs/src/nurbs_curve.rs b/nurbs/src/nurbs_curve.rs index 011d52c..0a6522f 100644 --- a/nurbs/src/nurbs_curve.rs +++ b/nurbs/src/nurbs_curve.rs @@ -1,5 +1,5 @@ -use nalgebra_glm::{DVec3}; -use crate::{nd_curve::NDBSplineCurve, abstract_curve::AbstractCurve}; +use crate::{abstract_curve::AbstractCurve, nd_curve::NDBSplineCurve}; +use nalgebra_glm::DVec3; pub type NURBSCurve = NDBSplineCurve<4>; @@ -31,4 +31,3 @@ impl AbstractCurve for NURBSCurve { CK } } - diff --git a/nurbs/src/nurbs_surface.rs b/nurbs/src/nurbs_surface.rs index bffc0b8..32f6907 100644 --- a/nurbs/src/nurbs_surface.rs +++ b/nurbs/src/nurbs_surface.rs @@ -1,5 +1,5 @@ -use nalgebra_glm::{DVec2, DVec3}; use crate::{abstract_surface::AbstractSurface, nd_surface::NDBSplineSurface, VecF}; +use nalgebra_glm::{DVec2, DVec3}; pub type NURBSSurface = NDBSplineSurface<4>; @@ -8,9 +8,7 @@ impl AbstractSurface for NURBSSurface { let p = self.surface_point(uv); p.xyz() / p.w } - fn point_from_basis(&self, uspan: usize, Nu: &VecF, - vspan: usize, Nv: &VecF) -> DVec3 - { + fn point_from_basis(&self, uspan: usize, Nu: &VecF, vspan: usize, Nv: &VecF) -> DVec3 { let p = self.surface_point_from_basis(uspan, Nu, vspan, Nv); p.xyz() / p.w } @@ -39,4 +37,3 @@ impl AbstractSurface for NURBSSurface { SKL } } - diff --git a/nurbs/src/sampled_curve.rs b/nurbs/src/sampled_curve.rs index 8b1583e..e964bc3 100644 --- a/nurbs/src/sampled_curve.rs +++ b/nurbs/src/sampled_curve.rs @@ -1,5 +1,5 @@ -use nalgebra_glm::{dot, length, length2, DVec3}; use crate::{abstract_curve::AbstractCurve, nd_curve::NDBSplineCurve}; +use nalgebra_glm::{dot, length, length2, DVec3}; #[derive(Debug)] pub struct SampledCurve { @@ -8,7 +8,8 @@ pub struct SampledCurve { } impl SampledCurve - where NDBSplineCurve: AbstractCurve +where + NDBSplineCurve: AbstractCurve, { pub fn new(curve: NDBSplineCurve) -> Self { const N: usize = 8; @@ -82,9 +83,12 @@ impl SampledCurve pub fn u_from_point(&self, p: DVec3) -> f64 { use ordered_float::OrderedFloat; - let best_u = self.samples.iter() + let best_u = self + .samples + .iter() .min_by_key(|(_u, pos)| OrderedFloat((pos - p).norm())) - .unwrap().0; + .unwrap() + .0; self.u_from_point_newtons_method(p, best_u) } diff --git a/nurbs/src/sampled_surface.rs b/nurbs/src/sampled_surface.rs index cd8d5ad..29c6677 100644 --- a/nurbs/src/sampled_surface.rs +++ b/nurbs/src/sampled_surface.rs @@ -1,6 +1,6 @@ -use nalgebra_glm::{dot, length, length2, DMat2x2, DVec2, DVec3}; use crate::{abstract_surface::AbstractSurface, nd_surface::NDBSplineSurface}; use log::error; +use nalgebra_glm::{dot, length, length2, DMat2x2, DVec2, DVec3}; #[derive(Debug, Clone)] pub struct SampledSurface { @@ -9,7 +9,8 @@ pub struct SampledSurface { } impl SampledSurface - where NDBSplineSurface: AbstractSurface +where + NDBSplineSurface: AbstractSurface, { pub fn new(surf: NDBSplineSurface) -> Self { const N: usize = 8; @@ -38,8 +39,7 @@ impl SampledSurface let v_span = surf.v_knots.find_span(v); let v_basis = surf.v_knots.basis_funs_for_span(v_span, v); - let q = surf.point_from_basis( - u_span, &u_basis, v_span, &v_basis); + let q = surf.point_from_basis(u_span, &u_basis, v_span, &v_basis); samples.push((uv, q)); } } @@ -154,9 +154,12 @@ impl SampledSurface pub fn uv_from_point(&self, p: DVec3) -> Option { assert!(!self.samples.is_empty()); use ordered_float::OrderedFloat; - let best_uv = self.samples.iter() + let best_uv = self + .samples + .iter() .min_by_key(|(_uv, pos)| OrderedFloat((pos - p).norm())) - .unwrap().0; + .unwrap() + .0; self.uv_from_point_newtons_method(p, best_uv) } } From eb67375c189c72612582fe3db305a43633a97a70 Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 16:18:51 +0200 Subject: [PATCH 10/24] Renamed some structs to comply w. https://rust-lang.github.io/api-guidelines/naming.html\#casing-conforms-to-rfc-430-c-case --- nurbs/src/abstract_curve.rs | 2 +- nurbs/src/abstract_surface.rs | 2 +- nurbs/src/bspline_curve.rs | 10 +++++----- nurbs/src/bspline_surface.rs | 10 +++++----- nurbs/src/knot_vector.rs | 16 ++++++++-------- nurbs/src/lib.rs | 14 +++++++------- nurbs/src/nd_curve.rs | 19 ++++++++++--------- nurbs/src/nd_surface.rs | 24 ++++++++++++------------ nurbs/src/nurbs_curve.rs | 20 ++++++++++---------- nurbs/src/nurbs_surface.rs | 20 ++++++++++---------- nurbs/src/sampled_curve.rs | 16 ++++++++-------- nurbs/src/sampled_surface.rs | 26 +++++++++++++------------- triangulate/src/curve.rs | 12 ++++++------ triangulate/src/surface.rs | 34 +++++++++++++++++----------------- triangulate/src/triangulate.rs | 24 ++++++++++++------------ 15 files changed, 125 insertions(+), 124 deletions(-) diff --git a/nurbs/src/abstract_curve.rs b/nurbs/src/abstract_curve.rs index d3b5995..4d73633 100644 --- a/nurbs/src/abstract_curve.rs +++ b/nurbs/src/abstract_curve.rs @@ -7,5 +7,5 @@ use nalgebra_glm::DVec3; /// `struct`. pub trait AbstractCurve { fn point(&self, u: f64) -> DVec3; - fn derivs(&self, u: f64) -> Vec; + fn derivatives(&self, u: f64) -> Vec; } diff --git a/nurbs/src/abstract_surface.rs b/nurbs/src/abstract_surface.rs index a8210f6..e1855c9 100644 --- a/nurbs/src/abstract_surface.rs +++ b/nurbs/src/abstract_surface.rs @@ -13,5 +13,5 @@ pub trait AbstractSurface { /// (used as an optimization when we're re-using basis functions). fn point_from_basis(&self, uspan: usize, Nu: &VecF, vspan: usize, Nv: &VecF) -> DVec3; - fn derivs(&self, uv: DVec2) -> Vec>; + fn derivatives(&self, uv: DVec2) -> Vec>; } diff --git a/nurbs/src/bspline_curve.rs b/nurbs/src/bspline_curve.rs index 25bc0ec..3ee73ee 100644 --- a/nurbs/src/bspline_curve.rs +++ b/nurbs/src/bspline_curve.rs @@ -1,13 +1,13 @@ -use crate::{abstract_curve::AbstractCurve, nd_curve::NDBSplineCurve}; +use crate::{abstract_curve::AbstractCurve, nd_curve::NdBsplineCurve}; use nalgebra_glm::DVec3; -pub type BSplineCurve = NDBSplineCurve<3>; +pub type BsplineCurve = NdBsplineCurve<3>; -impl AbstractCurve for BSplineCurve { +impl AbstractCurve for BsplineCurve { fn point(&self, u: f64) -> DVec3 { self.curve_point(u) } - fn derivs(&self, u: f64) -> Vec { - self.curve_derivs::(u) + fn derivatives(&self, u: f64) -> Vec { + self.curve_derivatives::(u) } } diff --git a/nurbs/src/bspline_surface.rs b/nurbs/src/bspline_surface.rs index f19d3e9..39fdafe 100644 --- a/nurbs/src/bspline_surface.rs +++ b/nurbs/src/bspline_surface.rs @@ -1,9 +1,9 @@ -use crate::{abstract_surface::AbstractSurface, nd_surface::NDBSplineSurface, VecF}; +use crate::{abstract_surface::AbstractSurface, nd_surface::NdBsplineSurface, VecF}; use nalgebra_glm::{DVec2, DVec3}; -pub type BSplineSurface = NDBSplineSurface<3>; +pub type BsplineSurface = NdBsplineSurface<3>; -impl AbstractSurface for BSplineSurface { +impl AbstractSurface for BsplineSurface { fn point(&self, uv: DVec2) -> DVec3 { self.surface_point(uv) } @@ -12,7 +12,7 @@ impl AbstractSurface for BSplineSurface { self.surface_point_from_basis(uspan, Nu, vspan, Nv) } - fn derivs(&self, uv: DVec2) -> Vec> { - self.surface_derivs::(uv) + fn derivatives(&self, uv: DVec2) -> Vec> { + self.surface_derivatives::(uv) } } diff --git a/nurbs/src/knot_vector.rs b/nurbs/src/knot_vector.rs index 307b500..f06d524 100644 --- a/nurbs/src/knot_vector.rs +++ b/nurbs/src/knot_vector.rs @@ -73,13 +73,13 @@ impl KnotVector { /// Computes non-vanishing basis functions of order `p + 1` at point `u`. /// /// Algorithm A2.2 - pub fn basis_funs(&self, u: f64) -> VecF { + pub fn basis_functions(&self, u: f64) -> VecF { let i = self.find_span(u); - self.basis_funs_for_span(i, u) + self.basis_functions_for_span(i, u) } - // Inner implementation of basis_funs - pub fn basis_funs_for_span(&self, i: usize, u: f64) -> VecF { + // Inner implementation of basis_functions + pub fn basis_functions_for_span(&self, i: usize, u: f64) -> VecF { let mut N: VecF = smallvec![0.0; self.p + 1]; let mut left: VecF = smallvec![0.0; self.p + 1]; @@ -104,14 +104,14 @@ impl KnotVector { /// /// Algorithm A2.3 /// - /// If `ders = basis_funs_derivs_()`, `then ders[k][j]` is the `kth` derivative + /// If `ders = basis_functions_derivatives_()`, `then ders[k][j]` is the `kth` derivative /// of the function `N_{i-p+j, p}` at `u`. - pub fn basis_funs_derivs(&self, u: f64, n: usize) -> Vec> { + pub fn basis_functions_derivatives(&self, u: f64, n: usize) -> Vec> { let i = self.find_span(u); - self.basis_funs_derivs_for_span(i, u, n) + self.basis_functions_derivatives_for_span(i, u, n) } - pub fn basis_funs_derivs_for_span(&self, i: usize, u: f64, n: usize) -> Vec> { + pub fn basis_functions_derivatives_for_span(&self, i: usize, u: f64, n: usize) -> Vec> { let mut ndu = vec![vec![0.0; self.p + 1]; self.p + 1]; let mut a = vec![vec![0.0; self.p + 1]; 2]; let mut left = vec![0.0; self.p + 1]; diff --git a/nurbs/src/lib.rs b/nurbs/src/lib.rs index f8b87b2..4e4268b 100644 --- a/nurbs/src/lib.rs +++ b/nurbs/src/lib.rs @@ -1,7 +1,7 @@ -#![allow(non_snake_case)] #![allow(clippy::needless_range_loop)] // This crate is translations of algorithms from the 70s, which use awkward // single-character names everywhere, so we're matching their convention. +#![allow(non_snake_case)] mod abstract_curve; mod abstract_surface; @@ -20,12 +20,12 @@ type VecF = SmallVec<[f64; 8]>; pub use crate::abstract_curve::AbstractCurve; pub use crate::abstract_surface::AbstractSurface; -pub use crate::bspline_curve::BSplineCurve; -pub use crate::bspline_surface::BSplineSurface; +pub use crate::bspline_curve::BsplineCurve; +pub use crate::bspline_surface::BsplineSurface; pub use crate::knot_vector::KnotVector; -pub use crate::nd_curve::NDBSplineCurve; -pub use crate::nd_surface::NDBSplineSurface; -pub use crate::nurbs_curve::NURBSCurve; -pub use crate::nurbs_surface::NURBSSurface; +pub use crate::nd_curve::NdBsplineCurve; +pub use crate::nd_surface::NdBsplineSurface; +pub use crate::nurbs_curve::NurbsCurve; +pub use crate::nurbs_surface::NurbsSurface; pub use crate::sampled_curve::SampledCurve; pub use crate::sampled_surface::SampledSurface; diff --git a/nurbs/src/nd_curve.rs b/nurbs/src/nd_curve.rs index b0f165c..b41818a 100644 --- a/nurbs/src/nd_curve.rs +++ b/nurbs/src/nd_curve.rs @@ -3,14 +3,14 @@ use nalgebra_glm::TVec; use std::cmp::min; #[derive(Debug, Clone)] -pub struct NDBSplineCurve { +pub struct NdBsplineCurve { pub open: bool, pub knots: KnotVector, control_points: Vec>, } -/// Abstract b-spline curve with N-dimensional control points -impl NDBSplineCurve { +/// Abstract b-spline curve with N-dimensional control points. +impl NdBsplineCurve { pub fn new(open: bool, knots: KnotVector, control_points: Vec>) -> Self { Self { open, @@ -29,12 +29,12 @@ impl NDBSplineCurve { /// Converts a point at position t onto the 3D line, using basis functions /// of order `p + 1` respectively. /// - /// ALGORITHM A3.1 + /// Algorithm A3.1 pub fn curve_point(&self, u: f64) -> TVec { let p = self.knots.degree(); let span = self.knots.find_span(u); - let N = self.knots.basis_funs_for_span(span, u); + let N = self.knots.basis_functions_for_span(span, u); let mut C = TVec::zeros(); for i in 0..=p { @@ -46,19 +46,19 @@ impl NDBSplineCurve { /// Computes the derivatives of the curve of order up to and including `d` at location `t`, /// using basis functions of order `p + 1` respectively. /// - /// ALGORITHM A3.2 - pub fn curve_derivs(&self, u: f64) -> Vec> { + /// Algorithm A3.2 + pub fn curve_derivatives(&self, u: f64) -> Vec> { let p = self.knots.degree(); let du = min(E, p); let span = self.knots.find_span(u); - let N_derivs = self.knots.basis_funs_derivs_for_span(span, u, du); + let N_derivatives = self.knots.basis_functions_derivatives_for_span(span, u, du); let mut CK = vec![TVec::zeros(); E + 1]; for k in 0..=du { for j in 0..=p { - CK[k] += N_derivs[k][j] * self.control_points[span - p + j] + CK[k] += N_derivatives[k][j] * self.control_points[span - p + j] } } CK @@ -100,6 +100,7 @@ impl NDBSplineCurve { if u_start > u_end { result.reverse(); } + result } } diff --git a/nurbs/src/nd_surface.rs b/nurbs/src/nd_surface.rs index 5172165..d2ddd5e 100644 --- a/nurbs/src/nd_surface.rs +++ b/nurbs/src/nd_surface.rs @@ -3,7 +3,7 @@ use nalgebra_glm::{DVec2, DVec3, TVec}; use std::cmp::min; #[derive(Debug, Clone)] -pub struct NDBSplineSurface { +pub struct NdBsplineSurface { pub u_open: bool, pub v_open: bool, pub u_knots: KnotVector, @@ -11,8 +11,8 @@ pub struct NDBSplineSurface { control_points: Vec>>, } -/// Non-rational b-spline surface with 3D control points -impl NDBSplineSurface { +/// Non-rational b-spline surface with 3D control points. +impl NdBsplineSurface { pub fn new( u_open: bool, v_open: bool, @@ -45,13 +45,13 @@ impl NDBSplineSurface { /// Converts a point at position uv onto the 3D mesh, using basis functions /// of order `p + 1` and `q + 1` respectively. /// - /// ALGORITHM A3.5 + /// Algorithm A3.5 pub fn surface_point(&self, uv: DVec2) -> TVec { let uspan = self.u_knots.find_span(uv.x); - let Nu = self.u_knots.basis_funs_for_span(uspan, uv.x); + let Nu = self.u_knots.basis_functions_for_span(uspan, uv.x); let vspan = self.v_knots.find_span(uv.y); - let Nv = self.v_knots.basis_funs_for_span(vspan, uv.y); + let Nv = self.v_knots.basis_functions_for_span(vspan, uv.y); self.surface_point_from_basis(uspan, &Nu, vspan, &Nv) } @@ -79,14 +79,14 @@ impl NDBSplineSurface { S } - /// Returns all derivatives of the surface. If `D = surface_derivs()`, + /// Returns all derivatives of the surface. If `D = surface_derivatives()`, /// `D[k][l]` is the derivative of the surface `k` times in the `u` /// direction and `l` times in the `v` direction. /// /// We compute derivatives up to and including the `d`'th order derivatives. /// - /// ALGORITHM A3.6 - pub fn surface_derivs(&self, uv: DVec2) -> Vec>> { + /// Algorithm A3.6 + pub fn surface_derivatives(&self, uv: DVec2) -> Vec>> { let p = self.u_knots.degree(); let q = self.v_knots.degree(); @@ -99,10 +99,10 @@ impl NDBSplineSurface { let mut SKL = vec![vec![TVec::zeros(); E + 1]; E + 1]; let uspan = self.u_knots.find_span(uv.x); - let Nu_deriv = self.u_knots.basis_funs_derivs_for_span(uspan, uv.x, du); + let Nu_deriv = self.u_knots.basis_functions_derivatives_for_span(uspan, uv.x, du); let vspan = self.v_knots.find_span(uv.y); - let Nv_deriv = self.v_knots.basis_funs_derivs_for_span(vspan, uv.y, dv); + let Nv_deriv = self.v_knots.basis_functions_derivatives_for_span(vspan, uv.y, dv); let mut temp = vec![TVec::zeros(); q + 1]; for k in 0..=du { @@ -123,7 +123,7 @@ impl NDBSplineSurface { } // Computes the relative scale of U and V, based on average distance between - // control points in 3D space + // control points in 3D space. pub fn aspect_ratio(&self) -> f64 { let mut u_sum = 0.0; let mut v_sum = 0.0; diff --git a/nurbs/src/nurbs_curve.rs b/nurbs/src/nurbs_curve.rs index 0a6522f..491e297 100644 --- a/nurbs/src/nurbs_curve.rs +++ b/nurbs/src/nurbs_curve.rs @@ -1,13 +1,13 @@ -use crate::{abstract_curve::AbstractCurve, nd_curve::NDBSplineCurve}; +use crate::{abstract_curve::AbstractCurve, nd_curve::NdBsplineCurve}; use nalgebra_glm::DVec3; -pub type NURBSCurve = NDBSplineCurve<4>; +pub type NurbsCurve = NdBsplineCurve<4>; -impl AbstractCurve for NURBSCurve { +impl AbstractCurve for NurbsCurve { /// Converts a point at position t onto the 3D line, using basis functions /// of order `p + 1` respectively. /// - /// ALGORITHM A4.1 + /// Algorithm A4.1 fn point(&self, u: f64) -> DVec3 { let p = self.curve_point(u); p.xyz() / p.w @@ -16,17 +16,17 @@ impl AbstractCurve for NURBSCurve { /// Computes the derivatives of the curve of order up to and including `d` at location `t`, /// using basis functions of order `p + 1` respectively. /// - /// ALGORITHM A4.2 - fn derivs(&self, u: f64) -> Vec { - let derivs = self.curve_derivs::(u); + /// Algorithm A4.2 + fn derivatives(&self, u: f64) -> Vec { + let derivatives = self.curve_derivatives::(u); let mut CK = vec![DVec3::zeros(); E + 1]; for k in 0..=E { - let mut v = derivs[k].xyz(); + let mut v = derivatives[k].xyz(); for i in 1..=k { let b = num_integer::binomial(k, i); - v -= b as f64 * derivs[i].w * CK[k - 1]; + v -= b as f64 * derivatives[i].w * CK[k - 1]; } - CK[k] = v / derivs[0].w; + CK[k] = v / derivatives[0].w; } CK } diff --git a/nurbs/src/nurbs_surface.rs b/nurbs/src/nurbs_surface.rs index 32f6907..945138c 100644 --- a/nurbs/src/nurbs_surface.rs +++ b/nurbs/src/nurbs_surface.rs @@ -1,9 +1,9 @@ -use crate::{abstract_surface::AbstractSurface, nd_surface::NDBSplineSurface, VecF}; +use crate::{abstract_surface::AbstractSurface, nd_surface::NdBsplineSurface, VecF}; use nalgebra_glm::{DVec2, DVec3}; -pub type NURBSSurface = NDBSplineSurface<4>; +pub type NurbsSurface = NdBsplineSurface<4>; -impl AbstractSurface for NURBSSurface { +impl AbstractSurface for NurbsSurface { fn point(&self, uv: DVec2) -> DVec3 { let p = self.surface_point(uv); p.xyz() / p.w @@ -13,25 +13,25 @@ impl AbstractSurface for NURBSSurface { p.xyz() / p.w } - fn derivs(&self, uv: DVec2) -> Vec> { - let derivs = self.surface_derivs::(uv); + fn derivatives(&self, uv: DVec2) -> Vec> { + let derivatives = self.surface_derivatives::(uv); let mut SKL = vec![vec![DVec3::zeros(); E + 1]; E + 1]; let bin = |a, b| num_integer::binomial(a, b) as f64; for k in 0..=E { for l in 0..=(E - k) { - let mut v = derivs[k][l].xyz(); + let mut v = derivatives[k][l].xyz(); for j in 1..=l { - v -= bin(l, j) * derivs[0][j].w * SKL[k][l - j]; + v -= bin(l, j) * derivatives[0][j].w * SKL[k][l - j]; } for i in 1..=k { - v -= bin(k, i) * derivs[i][0].w * SKL[k - i][l]; + v -= bin(k, i) * derivatives[i][0].w * SKL[k - i][l]; let mut v2 = DVec3::zeros(); for j in 1..=l { - v2 += bin(l, j) * derivs[i][j].w * SKL[k - i][l - j]; + v2 += bin(l, j) * derivatives[i][j].w * SKL[k - i][l - j]; } v -= bin(k, i) * v2; } - SKL[k][l] = v / derivs[0][0].w; + SKL[k][l] = v / derivatives[0][0].w; } } SKL diff --git a/nurbs/src/sampled_curve.rs b/nurbs/src/sampled_curve.rs index e964bc3..236dcfd 100644 --- a/nurbs/src/sampled_curve.rs +++ b/nurbs/src/sampled_curve.rs @@ -1,17 +1,17 @@ -use crate::{abstract_curve::AbstractCurve, nd_curve::NDBSplineCurve}; +use crate::{abstract_curve::AbstractCurve, nd_curve::NdBsplineCurve}; use nalgebra_glm::{dot, length, length2, DVec3}; #[derive(Debug)] pub struct SampledCurve { - curve: NDBSplineCurve, + curve: NdBsplineCurve, samples: Vec<(f64, DVec3)>, } impl SampledCurve where - NDBSplineCurve: AbstractCurve, + NdBsplineCurve: AbstractCurve, { - pub fn new(curve: NDBSplineCurve) -> Self { + pub fn new(curve: NdBsplineCurve) -> Self { const N: usize = 8; let mut samples = Vec::new(); for i in 0..curve.knots.len() - 1 { @@ -39,10 +39,10 @@ where let mut u_i = u_0; loop { - let derivs = self.curve.derivs::<2>(u_i); - let C = derivs[0]; - let C_p = derivs[1]; - let C_pp = derivs[2]; + let derivatives = self.curve.derivatives::<2>(u_i); + let C = derivatives[0]; + let C_p = derivatives[1]; + let C_pp = derivatives[2]; let r = C - P; // If we are close to the point and close to the right angle, then return diff --git a/nurbs/src/sampled_surface.rs b/nurbs/src/sampled_surface.rs index 29c6677..f49a6b3 100644 --- a/nurbs/src/sampled_surface.rs +++ b/nurbs/src/sampled_surface.rs @@ -1,18 +1,18 @@ -use crate::{abstract_surface::AbstractSurface, nd_surface::NDBSplineSurface}; +use crate::{abstract_surface::AbstractSurface, nd_surface::NdBsplineSurface}; use log::error; use nalgebra_glm::{dot, length, length2, DMat2x2, DVec2, DVec3}; #[derive(Debug, Clone)] pub struct SampledSurface { - pub surf: NDBSplineSurface, + pub surf: NdBsplineSurface, samples: Vec<(DVec2, DVec3)>, } impl SampledSurface where - NDBSplineSurface: AbstractSurface, + NdBsplineSurface: AbstractSurface, { - pub fn new(surf: NDBSplineSurface) -> Self { + pub fn new(surf: NdBsplineSurface) -> Self { const N: usize = 8; let mut samples = Vec::new(); for i in 0..surf.u_knots.len() - 1 { @@ -31,14 +31,14 @@ where // Cache the u basis function outside the loop let u_span = surf.u_knots.find_span(u); - let u_basis = surf.u_knots.basis_funs_for_span(u_span, u); + let u_basis = surf.u_knots.basis_functions_for_span(u_span, u); for v in 0..N { let frac = (v as f64) / (N as f64 - 1.0); let v = surf.v_knots[j] * (1.0 - frac) + surf.v_knots[j + 1] * frac; let uv = DVec2::new(u, v); let v_span = surf.v_knots.find_span(v); - let v_basis = surf.v_knots.basis_funs_for_span(v_span, v); + let v_basis = surf.v_knots.basis_functions_for_span(v_span, v); let q = surf.point_from_basis(u_span, &u_basis, v_span, &v_basis); samples.push((uv, q)); } @@ -56,13 +56,13 @@ where let mut uv_i = uv_0; for _ in 0..256 { // The surface and its derivatives at uv_i - let derivs = self.surf.derivs::<2>(uv_i); - let S = derivs[0][0]; - let S_u = derivs[1][0]; - let S_v = derivs[0][1]; - let S_uu = derivs[2][0]; - let S_uv = derivs[1][1]; // S_vu is the same - let S_vv = derivs[0][2]; + let derivatives = self.surf.derivatives::<2>(uv_i); + let S = derivatives[0][0]; + let S_u = derivatives[1][0]; + let S_v = derivatives[0][1]; + let S_uu = derivatives[2][0]; + let S_uv = derivatives[1][1]; // S_vu is the same + let S_vv = derivatives[0][2]; let r = S - P; // If |S(uv_i) - P| < \epsilon_1 and diff --git a/triangulate/src/curve.rs b/triangulate/src/curve.rs index 06c8be4..27bc971 100644 --- a/triangulate/src/curve.rs +++ b/triangulate/src/curve.rs @@ -2,7 +2,7 @@ use glm::{DMat4, DVec3, DVec4}; use nalgebra_glm as glm; use crate::surface::Surface; -use nurbs::{AbstractCurve, NDBSplineCurve, SampledCurve}; +use nurbs::{AbstractCurve, NdBsplineCurve, SampledCurve}; #[derive(Debug)] pub enum Curve { @@ -14,8 +14,8 @@ pub enum Curve { dir: bool, }, Line, - BSplineCurveWithKnots(SampledCurve<3>), - NURBSCurve(SampledCurve<4>), + BsplineCurveWithKnots(SampledCurve<3>), + NurbsCurve(SampledCurve<4>), } impl Curve { @@ -61,7 +61,7 @@ impl Curve { fn curve_points(u: DVec3, v: DVec3, curve: &SampledCurve) -> Vec where - NDBSplineCurve: AbstractCurve, + NdBsplineCurve: AbstractCurve, { let t_start = curve.u_from_point(u); let t_end = curve.u_from_point(v); @@ -74,8 +74,8 @@ impl Curve { pub fn build(&self, u: DVec3, v: DVec3) -> Vec { match self { Self::Line => vec![u, v], - Self::BSplineCurveWithKnots(curve) => Self::curve_points(u, v, curve), - Self::NURBSCurve(curve) => Self::curve_points(u, v, curve), + Self::BsplineCurveWithKnots(curve) => Self::curve_points(u, v, curve), + Self::NurbsCurve(curve) => Self::curve_points(u, v, curve), Self::Ellipse { eplane_from_world, world_from_eplane, diff --git a/triangulate/src/surface.rs b/triangulate/src/surface.rs index 70dd635..342a62d 100644 --- a/triangulate/src/surface.rs +++ b/triangulate/src/surface.rs @@ -4,7 +4,7 @@ use glm::{DMat4, DVec2, DVec3, DVec4}; use nalgebra_glm as glm; use crate::{mesh::Vertex, Error}; -use nurbs::{AbstractSurface, NDBSplineSurface, SampledSurface}; +use nurbs::{AbstractSurface, NdBsplineSurface, SampledSurface}; // Represents a surface in 3D space, with a function to project a 3D point // on the surface down to a 2D space. @@ -28,8 +28,8 @@ pub enum Surface { mat_i: DMat4, angle: f64, }, - BSpline(SampledSurface<3>), - NURBS(SampledSurface<4>), + Bspline(SampledSurface<3>), + Nurbs(SampledSurface<4>), Sphere { location: DVec3, mat: DMat4, // uv to world @@ -124,9 +124,9 @@ impl Surface { mat } - fn surf_lower(p: DVec3, surf: &SampledSurface) -> Result + fn surface_lower(p: DVec3, surf: &SampledSurface) -> Result where - NDBSplineSurface: AbstractSurface, + NdBsplineSurface: AbstractSurface, { surf.uv_from_point(p).ok_or(Error::CouldNotLower) } @@ -203,8 +203,8 @@ impl Surface { }; Ok(scale * DVec2::new(x, minor_angle.sin())) } - Surface::BSpline(surf) => Self::surf_lower(p, surf), - Surface::NURBS(surf) => Self::surf_lower(p, surf), + Surface::Bspline(surf) => Self::surface_lower(p, surf), + Surface::Nurbs(surf) => Self::surface_lower(p, surf), Surface::Sphere { mat_i, radius, .. } => { // mat_i is constructed in prepare to be a reasonable basis let p = (mat_i * p_).xyz() / *radius; @@ -275,7 +275,7 @@ impl Surface { } } - pub fn lower_verts(&mut self, verts: &mut [Vertex]) -> Result, Error> { + pub fn lower_vertices(&mut self, verts: &mut [Vertex]) -> Result, Error> { self.prepare(verts); let mut pts = Vec::with_capacity(verts.len()); for v in verts { @@ -290,8 +290,8 @@ impl Surface { // means that positions in 2D (UV) space are closer to positions in 3D // space, so the triangulation is better. let aspect_ratio = match self { - Surface::NURBS(surf) => Some(surf.surf.aspect_ratio()), - Surface::BSpline(surf) => Some(surf.surf.aspect_ratio()), + Surface::Nurbs(surf) => Some(surf.surf.aspect_ratio()), + Surface::Bspline(surf) => Some(surf.surf.aspect_ratio()), _ => None, }; if let Some(aspect_ratio) = aspect_ratio { @@ -323,8 +323,8 @@ impl Surface { let pos = (mat * DVec4::new(pos.x, pos.y, pos.z, 1.0)).xyz(); Some(pos) } - Surface::BSpline(s) => Some(s.surf.point(uv)), - Surface::NURBS(s) => Some(s.surf.point(uv)), + Surface::Bspline(s) => Some(s.surf.point(uv)), + Surface::Nurbs(s) => Some(s.surf.point(uv)), Surface::Torus { mat, minor_radius, @@ -390,12 +390,12 @@ impl Surface { } } - fn surf_normal(uv: DVec2, surf: &SampledSurface) -> DVec3 + fn surface_normal(uv: DVec2, surf: &SampledSurface) -> DVec3 where - NDBSplineSurface: AbstractSurface, + NdBsplineSurface: AbstractSurface, { // Calculate first order derivs, then cross them to get normal - let derivs = surf.surf.derivs::<1>(uv); + let derivs = surf.surf.derivatives::<1>(uv); let n = derivs[1][0].cross(&derivs[0][1]); n.normalize() } @@ -428,8 +428,8 @@ impl Surface { let norm = DVec3::new(proj.x, proj.y, 0.0).normalize(); (mat * norm.to_homogeneous()).xyz() } - Surface::BSpline(surf) => Self::surf_normal(uv, surf), - Surface::NURBS(surf) => Self::surf_normal(uv, surf), + Surface::Bspline(surf) => Self::surface_normal(uv, surf), + Surface::Nurbs(surf) => Self::surface_normal(uv, surf), Surface::Torus { mat, mat_i, diff --git a/triangulate/src/triangulate.rs b/triangulate/src/triangulate.rs index 88432e4..8ccbbff 100644 --- a/triangulate/src/triangulate.rs +++ b/triangulate/src/triangulate.rs @@ -16,7 +16,7 @@ use crate::{ surface::Surface, Error, }; -use nurbs::{BSplineSurface, KnotVector, NURBSSurface, SampledCurve, SampledSurface}; +use nurbs::{BsplineSurface, KnotVector, NurbsSurface, SampledCurve, SampledSurface}; use step::{ ap214, ap214::Entity, @@ -378,7 +378,7 @@ fn advanced_face( stats.num_faces += 1; // Grab the surface, returning early if it's unimplemented - let mut surf = get_surface(s, face.face_geometry)?; + let mut surf = surface(s, face.face_geometry)?; // This is the starting point at which we insert new vertices let offset = mesh.verts.len(); @@ -441,7 +441,7 @@ fn advanced_face( // _fail_ due to these points, so if that happens, we nuke the point (by // assigning it to the first point in the list, which causes it to get // deduplicated), then retry. - let mut pts = surf.lower_verts(&mut mesh.verts[v_start..])?; + let mut pts = surf.lower_vertices(&mut mesh.verts[v_start..])?; let bonus_points = pts.len(); surf.add_steiner_points(&mut pts, &mut mesh.verts); let result = std::panic::catch_unwind(|| { @@ -517,7 +517,7 @@ fn advanced_face( Ok(()) } -fn get_surface(s: &StepFile, surf: ap214::Surface) -> Result { +fn surface(s: &StepFile, surf: ap214::Surface) -> Result { match &s[surf] { Entity::CylindricalSurface(c) => { let (location, axis, ref_direction) = axis2_placement_3d(s, c.position); @@ -587,14 +587,14 @@ fn get_surface(s: &StepFile, surf: ap214::Surface) -> Result { let control_points_list = control_points_2d(s, &b.control_points_list); - let surf = BSplineSurface::new( + let surf = BsplineSurface::new( !b.u_closed.0.unwrap(), !b.v_closed.0.unwrap(), u_knot_vec, v_knot_vec, control_points_list, ); - Ok(Surface::BSpline(SampledSurface::new(surf))) + Ok(Surface::Bspline(SampledSurface::new(surf))) } Entity::ComplexEntity(v) if v.len() == 2 => { let bspline = if let Entity::BSplineSurfaceWithKnots(b) = &v[0] { @@ -646,14 +646,14 @@ fn get_surface(s: &StepFile, surf: ap214::Surface) -> Result { }) .collect(); - let surf = NURBSSurface::new( + let surf = NurbsSurface::new( !bspline.u_closed.0.unwrap(), !bspline.v_closed.0.unwrap(), u_knot_vec, v_knot_vec, control_points_list, ); - Ok(Surface::NURBS(SampledSurface::new(surf))) + Ok(Surface::Nurbs(SampledSurface::new(surf))) } e => { warn!("Could not get surface from {:?}", e); @@ -774,8 +774,8 @@ fn curve( ); let curve = - nurbs::BSplineCurve::new(!c.closed_curve.0.unwrap(), knot_vec, control_points_list); - Curve::BSplineCurveWithKnots(SampledCurve::new(curve)) + nurbs::BsplineCurve::new(!c.closed_curve.0.unwrap(), knot_vec, control_points_list); + Curve::BsplineCurveWithKnots(SampledCurve::new(curve)) } Entity::ComplexEntity(v) if v.len() == 2 => { let bspline = if let Entity::BSplineCurveWithKnots(b) = &v[0] { @@ -808,12 +808,12 @@ fn curve( .map(|(p, w)| DVec4::new(p.x * w, p.y * w, p.z * w, *w)) .collect(); - let curve = nurbs::NURBSCurve::new( + let curve = nurbs::NurbsCurve::new( !bspline.closed_curve.0.unwrap(), knot_vec, control_points_list, ); - Curve::NURBSCurve(SampledCurve::new(curve)) + Curve::NurbsCurve(SampledCurve::new(curve)) } Entity::SurfaceCurve(v) => curve(s, edge_curve, v.curve_3d, orientation)?, Entity::SeamCurve(v) => curve(s, edge_curve, v.curve_3d, orientation)?, From d8584e6599ad33337df1608159dde377a83c3efb Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 16:19:50 +0200 Subject: [PATCH 11/24] Renamed 'parallel' feature to 'rayon' and switched on by default. --- gui/Cargo.toml | 4 ++-- step/Cargo.toml | 4 ++-- triangulate/Cargo.toml | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/gui/Cargo.toml b/gui/Cargo.toml index e4160b3..7d7e983 100644 --- a/gui/Cargo.toml +++ b/gui/Cargo.toml @@ -9,8 +9,8 @@ default = [ "bundle-shaders" ] bundle-shaders = [] [dependencies] -step = { path = "../step", features = ["parallel"] } -triangulate = { path = "../triangulate", features = ["parallel"] } +step = { path = "../step" } +triangulate = { path = "../triangulate" } bytemuck = { version = "1", features = ["derive"] } clap = "3" diff --git a/step/Cargo.toml b/step/Cargo.toml index 42b1b55..afcdcb7 100644 --- a/step/Cargo.toml +++ b/step/Cargo.toml @@ -10,10 +10,10 @@ fast-float = "0.2" log = "0.4" memchr = "2.7" nom = "7" -rayon = {version = "1.5", optional = true } +rayon = {version = "1.10", optional = true } [features] -parallel = ["rayon"] +default = ["rayon"] [dev-dependencies] clap = "3" diff --git a/triangulate/Cargo.toml b/triangulate/Cargo.toml index 800f149..211ea78 100644 --- a/triangulate/Cargo.toml +++ b/triangulate/Cargo.toml @@ -15,7 +15,8 @@ rayon = { version = "1.10", optional = true } thiserror = "1.0" [features] -parallel = ["rayon", "step/parallel"] +default = [ "rayon" ] +rayon = ["dep:rayon", "step/rayon"] [dev-dependencies] clap = "3" From 8144d220aa9e0e04057d32a322fb400b35130b6a Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 16:23:36 +0200 Subject: [PATCH 12/24] Rust 2021, deps bump, rustfmt for cdt/ --- cdt/Cargo.toml | 12 +- cdt/examples/font.rs | 82 +++--- cdt/examples/fuzz.rs | 72 +++--- cdt/examples/locked.rs | 62 +++-- cdt/examples/triangulate.rs | 58 +++-- cdt/src/contour.rs | 101 ++++---- cdt/src/half.rs | 47 ++-- cdt/src/hull.rs | 49 ++-- cdt/src/indexes.rs | 2 +- cdt/src/lib.rs | 30 ++- cdt/src/predicates.rs | 8 +- cdt/src/triangulate.rs | 490 ++++++++++++++++++++---------------- 12 files changed, 574 insertions(+), 439 deletions(-) diff --git a/cdt/Cargo.toml b/cdt/Cargo.toml index a2c7966..6ec47a7 100644 --- a/cdt/Cargo.toml +++ b/cdt/Cargo.toml @@ -2,7 +2,7 @@ name = "cdt" version = "0.1.0" authors = ["Matt Keeter "] -edition = "2018" +edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/Formlabs/foxtrot" homepage = "https://github.com/Formlabs/foxtrot/tree/master/cdt" @@ -13,14 +13,14 @@ categories = ["graphics", "mathematics", "algorithms"] [dependencies] geometry-predicates = "0.3.0" -thiserror = "1.0" +thiserror = "1" [features] long-indexes = [] [dev-dependencies] -clap = "2.33" -itertools = "0.10.0" -rand = "0.8.3" -rand_chacha = "0.3.0" +clap = "3" +itertools = "0.13" +rand = "0.8" +rand_chacha = "0.3" rusttype = "0.9" diff --git a/cdt/examples/font.rs b/cdt/examples/font.rs index 3414a37..43c990d 100644 --- a/cdt/examples/font.rs +++ b/cdt/examples/font.rs @@ -1,5 +1,5 @@ -use clap::{Arg, App}; -use rusttype::{point, Font, Scale, OutlineBuilder}; +use clap::{App, Arg}; +use rusttype::{point, Font, OutlineBuilder, Scale}; const BEZIER_RESOLUTION: usize = 4; @@ -7,8 +7,10 @@ const BEZIER_RESOLUTION: usize = 4; struct Builder { points: Vec<(f64, f64)>, contours: Vec>, - x: f32, y: f32, - dx: f32, dy: f32, + x: f32, + y: f32, + dx: f32, + dy: f32, } impl Builder { @@ -20,7 +22,8 @@ impl Builder { fn set_position(&mut self, x: f32, y: f32) { self.x = x; self.y = -y; - self.points.push(((x + self.dx) as f64, (self.dy - y) as f64)); + self.points + .push(((x + self.dx) as f64, (self.dy - y) as f64)); } } @@ -52,8 +55,7 @@ impl OutlineBuilder for Builder { let y0 = -self.y; for i in 1..=BEZIER_RESOLUTION { let t = i as f32 / (BEZIER_RESOLUTION as f32); - let f = |a, b, c| (1.0 - t).powf(2.0) * a + - 2.0 * (1.0 - t) * t * b + t.powf(2.0) * c; + let f = |a, b, c| (1.0 - t).powf(2.0) * a + 2.0 * (1.0 - t) * t * b + t.powf(2.0) * c; self.line_to(f(x0, x1, x2), f(y0, y1, y2)); } } @@ -64,12 +66,13 @@ impl OutlineBuilder for Builder { for i in 1..=BEZIER_RESOLUTION { let t = i as f32 / (BEZIER_RESOLUTION as f32); - let f = |a, b, c, d| - (1.0 - t).powf(3.0) * a + - 3.0 * (1.0 - t).powf(2.0) * t * b + - 3.0 * (1.0 - t) * t.powf(2.0) * c + - t.powf(3.0) * d; - self.line_to(f(x0, x1, x2, x3), f(y0, y1, y2, y3)); + let f = |a, b, c, d| { + (1.0 - t).powf(3.0) * a + + 3.0 * (1.0 - t).powf(2.0) * t * b + + 3.0 * (1.0 - t) * t.powf(2.0) * c + + t.powf(3.0) * d + }; + self.line_to(f(x0, x1, x2, x3), f(y0, y1, y2, y3)); } } } @@ -78,28 +81,37 @@ fn main() -> Result<(), Box> { let matches = App::new("font") .author("Matt Keeter ") .about("Triangulates a few characters from a font") - .arg(Arg::with_name("font") - .short("f") - .long("font") - .help("path to the font TTF") - .takes_value(true)) - .arg(Arg::with_name("output") - .short("o") - .long("out") - .help("svg file to target") - .takes_value(true)) - .arg(Arg::with_name("check") - .short("c") - .long("check") - .help("check invariants after each step (slow)")) - .arg(Arg::with_name("text") - .short("t") - .long("text") - .help("text to triangulate") - .takes_value(true)) + .arg( + Arg::with_name("font") + .short('f') + .long("font") + .help("path to the font TTF") + .takes_value(true), + ) + .arg( + Arg::with_name("output") + .short('o') + .long("out") + .help("svg file to target") + .takes_value(true), + ) + .arg( + Arg::with_name("check") + .short('c') + .long("check") + .help("check invariants after each step (slow)"), + ) + .arg( + Arg::with_name("text") + .short('t') + .long("text") + .help("text to triangulate") + .takes_value(true), + ) .get_matches(); - let font_path = matches.value_of("font") + let font_path = matches + .value_of("font") .unwrap_or("/Library/Fonts/Georgia.ttf"); let font = { let data = std::fs::read(&font_path)?; @@ -119,9 +131,7 @@ fn main() -> Result<(), Box> { // Then, do the work of triangulation let now = std::time::Instant::now(); - let mut t = cdt::Triangulation::new_from_contours( - &builder.points, - &builder.contours)?; + let mut t = cdt::Triangulation::new_from_contours(&builder.points, &builder.contours)?; while !t.done() { t.step()?; if matches.is_present("check") { diff --git a/cdt/examples/fuzz.rs b/cdt/examples/fuzz.rs index 43e1ee7..71b0b9d 100644 --- a/cdt/examples/fuzz.rs +++ b/cdt/examples/fuzz.rs @@ -1,7 +1,7 @@ -use std::iter::repeat_with; use rand::{Rng, SeedableRng}; +use std::iter::repeat_with; -use clap::{Arg, App}; +use clap::{App, Arg}; use itertools::Itertools; const N: usize = 64; @@ -10,27 +10,36 @@ fn main() -> Result<(), Box> { let matches = App::new("fuzz") .author("Matt Keeter ") .about("Fuzzes the triangulator") - .arg(Arg::with_name("num") - .short("n") - .long("num") - .help("number of points") - .takes_value(true)) - .arg(Arg::with_name("output") - .short("o") - .long("out") - .help("svg file to target") - .takes_value(true)) - .arg(Arg::with_name("check") - .short("c") - .long("check") - .help("check invariants after each step (slow)")) - .arg(Arg::with_name("lock") - .short("l") - .long("lock") - .help("lock three edges to test constrained triangulation")) + .arg( + Arg::with_name("num") + .short('n') + .long("num") + .help("number of points") + .takes_value(true), + ) + .arg( + Arg::with_name("output") + .short('o') + .long("out") + .help("svg file to target") + .takes_value(true), + ) + .arg( + Arg::with_name("check") + .short('c') + .long("check") + .help("check invariants after each step (slow)"), + ) + .arg( + Arg::with_name("lock") + .short('l') + .long("lock") + .help("lock three edges to test constrained triangulation"), + ) .get_matches(); - let num = matches.value_of("num") + let num = matches + .value_of("num") .map(|s| s.parse()) .unwrap_or(Ok(N))?; @@ -43,7 +52,7 @@ fn main() -> Result<(), Box> { } i += 1; - let seed = rand::thread_rng().gen(); + let seed = rand::thread_rng().r#gen(); let mut rng = rand_chacha::ChaCha8Rng::seed_from_u64(seed); // We generate random points as f32, to make it more likely that @@ -57,14 +66,15 @@ fn main() -> Result<(), Box> { .collect(); // Generator to build the triangulation - let gen = || if matches.is_present("lock") { - cdt::Triangulation::new_with_edges(&points, - &[(0, 1), (1, 2), (2, 0)]) - } else { - cdt::Triangulation::new(&points) + let r#gen = || { + if matches.is_present("lock") { + cdt::Triangulation::new_with_edges(&points, &[(0, 1), (1, 2), (2, 0)]) + } else { + cdt::Triangulation::new(&points) + } }; - let mut t = gen()?; + let mut t = r#gen()?; t.check(); let result = std::panic::catch_unwind(move || { while !t.done() { @@ -79,7 +89,7 @@ fn main() -> Result<(), Box> { if result.is_err() { let mut safe_steps = 0; for i in 0..points.len() { - let mut t = gen()?; + let mut t = r#gen()?; let result = std::panic::catch_unwind(move || { for _ in 0..i { t.step().expect("oh no"); @@ -95,7 +105,7 @@ fn main() -> Result<(), Box> { } } - let mut t = gen()?; + let mut t = r#gen()?; for _ in 0..safe_steps { t.step().expect("Failed too early"); } @@ -107,7 +117,7 @@ fn main() -> Result<(), Box> { println!("{}", t.to_svg(true)); } eprintln!("Crashed with seed: {}", seed); - break Ok(()) + break Ok(()); } } } diff --git a/cdt/examples/locked.rs b/cdt/examples/locked.rs index 68f566a..3f0c96e 100644 --- a/cdt/examples/locked.rs +++ b/cdt/examples/locked.rs @@ -1,7 +1,7 @@ -use std::iter::repeat_with; use rand::{Rng, SeedableRng}; +use std::iter::repeat_with; -use clap::{Arg, App}; +use clap::{App, Arg}; use itertools::Itertools; const N: usize = 128; @@ -10,33 +10,43 @@ fn main() -> Result<(), Box> { let matches = App::new("locked") .author("Matt Keeter ") .about("Triangulates random points with a locked triangle") - .arg(Arg::with_name("num") - .short("n") - .long("num") - .help("number of points") - .takes_value(true)) - .arg(Arg::with_name("output") - .short("o") - .long("out") - .help("svg file to target") - .takes_value(true)) - .arg(Arg::with_name("check") - .short("c") - .long("check") - .help("check invariants after each step (slow)")) - .arg(Arg::with_name("seed") - .short("s") - .long("seed") - .help("seed for RNG") - .takes_value(true)) + .arg( + Arg::with_name("num") + .short('n') + .long("num") + .help("number of points") + .takes_value(true), + ) + .arg( + Arg::with_name("output") + .short('o') + .long("out") + .help("svg file to target") + .takes_value(true), + ) + .arg( + Arg::with_name("check") + .short('c') + .long("check") + .help("check invariants after each step (slow)"), + ) + .arg( + Arg::with_name("seed") + .short('s') + .long("seed") + .help("seed for RNG") + .takes_value(true), + ) .get_matches(); - let num = matches.value_of("num") + let num = matches + .value_of("num") .map(|s| s.parse()) .unwrap_or(Ok(N))?; - let seed: u64 = matches.value_of("seed") + let seed: u64 = matches + .value_of("seed") .map(|s| s.parse()) - .unwrap_or_else(|| Ok(rand::thread_rng().gen()))?; + .unwrap_or_else(|| Ok(rand::thread_rng().r#gen()))?; // Use a ChaCha RNG to be reproducible across platforms let mut rng = rand_chacha::ChaCha8Rng::seed_from_u64(seed); @@ -51,8 +61,7 @@ fn main() -> Result<(), Box> { eprintln!("Running with seed {}", seed); let now = std::time::Instant::now(); - let mut t = cdt::Triangulation::new_with_edges(&points, - &[(0, 1), (1, 2), (2, 0)])?; + let mut t = cdt::Triangulation::new_with_edges(&points, &[(0, 1), (1, 2), (2, 0)])?; while !t.done() { t.step()?; if matches.is_present("check") { @@ -77,4 +86,3 @@ fn main() -> Result<(), Box> { Ok(()) } - diff --git a/cdt/examples/triangulate.rs b/cdt/examples/triangulate.rs index 28125a8..f038cc6 100644 --- a/cdt/examples/triangulate.rs +++ b/cdt/examples/triangulate.rs @@ -1,7 +1,7 @@ -use std::iter::repeat_with; use rand::{Rng, SeedableRng}; +use std::iter::repeat_with; -use clap::{Arg, App}; +use clap::{App, Arg}; use itertools::Itertools; const N: usize = 1_000_000; @@ -10,33 +10,43 @@ fn main() -> Result<(), Box> { let matches = App::new("triangulate") .author("Matt Keeter ") .about("Triangulates random points") - .arg(Arg::with_name("num") - .short("n") - .long("num") - .help("number of points") - .takes_value(true)) - .arg(Arg::with_name("output") - .short("o") - .long("out") - .help("svg file to target") - .takes_value(true)) - .arg(Arg::with_name("check") - .short("c") - .long("check") - .help("check invariants after each step (slow)")) - .arg(Arg::with_name("seed") - .short("s") - .long("seed") - .help("seed for RNG") - .takes_value(true)) + .arg( + Arg::with_name("num") + .short('n') + .long("num") + .help("number of points") + .takes_value(true), + ) + .arg( + Arg::with_name("output") + .short('o') + .long("out") + .help("svg file to target") + .takes_value(true), + ) + .arg( + Arg::with_name("check") + .short('c') + .long("check") + .help("check invariants after each step (slow)"), + ) + .arg( + Arg::with_name("seed") + .short('s') + .long("seed") + .help("seed for RNG") + .takes_value(true), + ) .get_matches(); - let num = matches.value_of("num") + let num = matches + .value_of("num") .map(|s| s.parse()) .unwrap_or(Ok(N))?; - let seed: u64 = matches.value_of("seed") + let seed: u64 = matches + .value_of("seed") .map(|s| s.parse()) - .unwrap_or_else(|| Ok(rand::thread_rng().gen()))?; + .unwrap_or_else(|| Ok(rand::thread_rng().r#gen()))?; // Use a ChaCha RNG to be reproducible across platforms let mut rng = rand_chacha::ChaCha8Rng::seed_from_u64(seed); diff --git a/cdt/src/contour.rs b/cdt/src/contour.rs index c970c6a..8adb478 100644 --- a/cdt/src/contour.rs +++ b/cdt/src/contour.rs @@ -1,6 +1,7 @@ use crate::{ - indexes::{PointIndex, EdgeIndex, HullIndex, ContourVec, ContourIndex, - EMPTY_EDGE, EMPTY_CONTOUR}, + indexes::{ + ContourIndex, ContourVec, EdgeIndex, HullIndex, PointIndex, EMPTY_CONTOUR, EMPTY_EDGE, + }, triangulate::Triangulation, }; @@ -35,7 +36,12 @@ pub struct Contour { /// Triangulation is based on ["Triangulating Monotone Mountains"](http://www.ams.sunysb.edu/~jsbm/courses/345/13/triangulating-monotone-mountains.pdf) impl Contour { fn new(point: PointIndex, data: ContourData, sign: bool) -> Self { - let n = Node { point, data, prev: EMPTY_CONTOUR, next: EMPTY_CONTOUR }; + let n = Node { + point, + data, + prev: EMPTY_CONTOUR, + next: EMPTY_CONTOUR, + }; Contour { pts: ContourVec::of(vec![n]), end: ContourIndex::new(0), @@ -96,10 +102,17 @@ impl Contour { Self::new(point, data, false) } - pub fn push(&mut self, t: &mut Triangulation, - point: PointIndex, data: ContourData) -> Option { + pub fn push( + &mut self, + t: &mut Triangulation, + point: PointIndex, + data: ContourData, + ) -> Option { let i = self.pts.push(Node { - point, data, next: EMPTY_CONTOUR, prev: self.end + point, + data, + next: EMPTY_CONTOUR, + prev: self.end, }); assert!(self.pts[self.end].next == EMPTY_CONTOUR); self.pts[self.end].next = i; @@ -130,19 +143,19 @@ impl Contour { let new_edge = if self.sign { /* - c (self.index) - / ^ - / \ - ba/ha/ \bc/hc - / \ - V e_ab \ - [next] a - - - - - >b [prev] - - From the contour's perspective, this flattens out to - a <---------- b - - e_ab is a new edge inserted here - */ + c (self.index) + / ^ + / \ + ba/ha/ \bc/hc + / \ + V e_ab \ + [next] a - - - - - >b [prev] + + From the contour's perspective, this flattens out to + a <---------- b + + e_ab is a new edge inserted here + */ let (a, b) = (self.pts[c.next], self.pts[c.prev]); // If the ear isn't strictly convex, then return immediately @@ -151,8 +164,9 @@ impl Contour { } // Insert the new triangle - let e_ab = t.half.insert(a.point, b.point, c.point, - EMPTY_EDGE, EMPTY_EDGE, EMPTY_EDGE); + let e_ab = t.half.insert( + a.point, b.point, c.point, EMPTY_EDGE, EMPTY_EDGE, EMPTY_EDGE, + ); // Link the new triangle with buddies or hull edges let edge_ab = t.half.edge(e_ab); let e_ca = edge_ab.prev; @@ -162,7 +176,7 @@ impl Contour { ContourData::Hull(hull_index, sign) => { t.hull.update(hull_index, e_ca); t.half.set_sign(e_bc, sign); - }, + } ContourData::Buddy(b) => t.half.link_new(b, e_ca), }; match c.data { @@ -170,26 +184,26 @@ impl Contour { ContourData::Hull(hull_index, sign) => { t.hull.update(hull_index, e_bc); t.half.set_sign(e_bc, sign); - }, + } ContourData::Buddy(b) => t.half.link_new(b, e_bc), }; e_ab } else { /* - c (self.index) - / ^ - / \ - ec/ \ea - / \ - V e_ba \ - [prev] b - - - - - >a [next] - - From the contour's perspective, this flattens out to - b <----------- a - - e_ba is a new edge inserted here - */ + c (self.index) + / ^ + / \ + ec/ \ea + / \ + V e_ba \ + [prev] b - - - - - >a [next] + + From the contour's perspective, this flattens out to + b <----------- a + + e_ba is a new edge inserted here + */ let (a, b) = (self.pts[c.next], self.pts[c.prev]); assert!(a.point != b.point); assert!(a.point != c.point); @@ -201,8 +215,9 @@ impl Contour { } // Insert the new triangle - let e_ba = t.half.insert(b.point, a.point, c.point, - EMPTY_EDGE, EMPTY_EDGE, EMPTY_EDGE); + let e_ba = t.half.insert( + b.point, a.point, c.point, EMPTY_EDGE, EMPTY_EDGE, EMPTY_EDGE, + ); // Link the new triangle with buddies or hull edges let edge_ba = t.half.edge(e_ba); let e_cb = edge_ba.prev; @@ -212,7 +227,7 @@ impl Contour { ContourData::Hull(hull_index, sign) => { t.hull.update(hull_index, e_ac); t.half.set_sign(e_ac, sign); - }, + } ContourData::Buddy(b) => t.half.link_new(b, e_ac), }; match c.data { @@ -220,13 +235,14 @@ impl Contour { ContourData::Hull(hull_index, sign) => { t.hull.update(hull_index, e_cb); t.half.set_sign(e_cb, sign); - }, + } ContourData::Buddy(b) => t.half.link_new(b, e_cb), }; e_ba }; - { // Legalize the two outer edges of the new triangle + { + // Legalize the two outer edges of the new triangle let edge = t.half.edge(new_edge); t.legalize(edge.next); t.legalize(edge.prev); @@ -236,7 +252,8 @@ impl Contour { self.pts[self.index] = Node { point: PointIndex::new(0), data: ContourData::None, - prev: EMPTY_CONTOUR, next: EMPTY_CONTOUR + prev: EMPTY_CONTOUR, + next: EMPTY_CONTOUR, }; self.pts[c.next].prev = c.prev; self.pts[c.prev].next = c.next; diff --git a/cdt/src/half.rs b/cdt/src/half.rs index 7631b15..f9f48ca 100644 --- a/cdt/src/half.rs +++ b/cdt/src/half.rs @@ -1,4 +1,4 @@ -use crate::indexes::{PointIndex, EdgeIndex, EdgeVec, EMPTY_EDGE}; +use crate::indexes::{EdgeIndex, EdgeVec, PointIndex, EMPTY_EDGE}; /// Represents a directed edge in a triangle graph. #[derive(Copy, Clone, Debug)] @@ -108,27 +108,39 @@ impl Half { /// Inserts a new triangle into the edge map, based on three points /// and optional paired edges. Returns the new edge index `a → b` - pub fn insert(&mut self, a: PointIndex, b: PointIndex, c: PointIndex, - e_cb: EdgeIndex, e_ac: EdgeIndex, e_ba: EdgeIndex) -> EdgeIndex - { + pub fn insert( + &mut self, + a: PointIndex, + b: PointIndex, + c: PointIndex, + e_cb: EdgeIndex, + e_ac: EdgeIndex, + e_ba: EdgeIndex, + ) -> EdgeIndex { let e_ab = self.edges.next_index(); let e_bc = e_ab + 1usize; let e_ca = e_ab + 2usize; self.push_edge(Edge { - src: a, dst: b, - prev: e_ca, next: e_bc, + src: a, + dst: b, + prev: e_ca, + next: e_bc, buddy: e_ba, sign: None, }); self.push_edge(Edge { - src: b, dst: c, - prev: e_ab, next: e_ca, + src: b, + dst: c, + prev: e_ab, + next: e_ca, buddy: e_cb, sign: None, }); self.push_edge(Edge { - src: c, dst: a, - prev: e_bc, next: e_ab, + src: c, + dst: a, + prev: e_bc, + next: e_ab, buddy: e_ac, sign: None, }); @@ -136,15 +148,20 @@ impl Half { e_ab } - pub fn iter_edges(&self) -> impl Iterator + '_ { - return self.edges.iter() + pub fn iter_edges(&self) -> impl Iterator + '_ { + return self + .edges + .iter() .filter(|e| e.next != EMPTY_EDGE) - .map(|e| (e.src, e.dst, e.fixed())) + .map(|e| (e.src, e.dst, e.fixed())); } - pub fn iter_triangles(&self) -> impl Iterator + '_ { + pub fn iter_triangles( + &self, + ) -> impl Iterator + '_ { let mut seen = EdgeVec::of(vec![false; self.edges.len()]); - self.edges.iter() + self.edges + .iter() .enumerate() .filter(|(_i, e)| e.next != EMPTY_EDGE) .filter_map(move |(index, edge)| { diff --git a/cdt/src/hull.rs b/cdt/src/hull.rs index 143195d..1796c2d 100644 --- a/cdt/src/hull.rs +++ b/cdt/src/hull.rs @@ -1,6 +1,4 @@ -use crate::{ - indexes::{PointVec, PointIndex, HullVec, HullIndex, EdgeIndex, EMPTY_HULL}, -}; +use crate::indexes::{EdgeIndex, HullIndex, HullVec, PointIndex, PointVec, EMPTY_HULL}; const N: usize = 1 << 10; @@ -125,7 +123,8 @@ impl Hull { } pub fn start(&self) -> HullIndex { - self.buckets.iter() + self.buckets + .iter() .filter(|b| **b != EMPTY_HULL) .copied() .next() @@ -141,7 +140,9 @@ impl Hull { pub fn check(&self) { // Find the first non-empty bucket to use as our starting point for // walking around the hull's linked list. - let point = self.buckets.iter() + let point = self + .buckets + .iter() .filter(|b| **b != EMPTY_HULL) .copied() .next(); @@ -195,8 +196,7 @@ impl Hull { assert!(!self.points.is_empty()); let h = self.points[p]; assert!(h != EMPTY_HULL); - assert!(self.data[h].left != EMPTY_HULL || - self.data[h].right != EMPTY_HULL); + assert!(self.data[h].left != EMPTY_HULL || self.data[h].right != EMPTY_HULL); h } @@ -210,34 +210,43 @@ impl Hull { } /// Inserts a point without a hint - pub fn insert_bare(&mut self, angle: f64, point: PointIndex, e: EdgeIndex) - -> HullIndex - { + pub fn insert_bare(&mut self, angle: f64, point: PointIndex, e: EdgeIndex) -> HullIndex { self.insert(self.get(angle), angle, point, e) } /// Insert a new Point-Edge pair into the hull, using a hint to save time /// searching for the new point's position. - pub fn insert(&mut self, left: HullIndex, angle: f64, - point: PointIndex, edge: EdgeIndex) -> HullIndex { + pub fn insert( + &mut self, + left: HullIndex, + angle: f64, + point: PointIndex, + edge: EdgeIndex, + ) -> HullIndex { let right = self.right_hull(left); let h = if let Some(h) = self.empty.pop() { self.data[h] = Node { - angle, edge, left, right + angle, + edge, + left, + right, }; h } else { - self.data.push(Node{ - angle, edge, left, right + self.data.push(Node { + angle, + edge, + left, + right, }) }; // If the target bucket is empty, or the given point is below the first // item in the target bucket, then it becomes the bucket's head let b = self.bucket(angle); - if self.buckets[b] == EMPTY_HULL || (self.buckets[b] == right && - angle < self.data[right].angle) + if self.buckets[b] == EMPTY_HULL + || (self.buckets[b] == right && angle < self.data[right].angle) { self.buckets[b] = h; } @@ -281,10 +290,12 @@ impl Hull { } /// Iterates over all edges stored in the Hull, in order - pub fn values(&self) -> impl Iterator + '_ { + pub fn values(&self) -> impl Iterator + '_ { // Find the first non-empty bucket to use as our starting point for // walking around the hull's linked list. - let mut point: HullIndex = self.buckets.iter() + let mut point: HullIndex = self + .buckets + .iter() .filter(|b| **b != EMPTY_HULL) .copied() .next() diff --git a/cdt/src/indexes.rs b/cdt/src/indexes.rs index 4536867..923a4ee 100644 --- a/cdt/src/indexes.rs +++ b/cdt/src/indexes.rs @@ -65,7 +65,7 @@ impl std::ops::IndexMut> for TypedVec { } impl std::ops::Deref for TypedVec { - type Target = Vec ; + type Target = Vec; fn deref(&self) -> &Vec { &self.0 } diff --git a/cdt/src/lib.rs b/cdt/src/lib.rs index 80b5479..b171c86 100644 --- a/cdt/src/lib.rs +++ b/cdt/src/lib.rs @@ -40,10 +40,10 @@ points in a single pass, you should enable the `long-indexes` feature. #![warn(missing_docs)] pub(crate) mod contour; -pub(crate) mod predicates; pub(crate) mod half; pub(crate) mod hull; pub(crate) mod indexes; +pub(crate) mod predicates; pub(crate) mod triangulate; pub use triangulate::Triangulation; @@ -114,9 +114,12 @@ pub fn triangulate_points(pts: &[Point]) -> Result, E /// Triangulates a set of contours, given as indexed paths into the point list. /// Each contour must be closed (i.e. the last point in the contour must equal /// the first point), otherwise [`Error::OpenContour`] will be returned. -pub fn triangulate_contours(pts: &[Point], contours: &[V]) - -> Result, Error> - where for<'b> &'b V: IntoIterator +pub fn triangulate_contours( + pts: &[Point], + contours: &[V], +) -> Result, Error> +where + for<'b> &'b V: IntoIterator, { let t = Triangulation::build_from_contours(&pts, contours)?; Ok(t.triangles().collect()) @@ -125,9 +128,12 @@ pub fn triangulate_contours(pts: &[Point], contours: &[V]) /// Triangulates a set of points with certain fixed edges. The edges are /// assumed to form closed boundaries; only triangles within those boundaries /// will be returned. -pub fn triangulate_with_edges<'a, E>(pts: &[Point], edges: E) - -> Result, Error> - where E: IntoIterator + Copy + Clone +pub fn triangulate_with_edges<'a, E>( + pts: &[Point], + edges: E, +) -> Result, Error> +where + E: IntoIterator + Copy + Clone, { let t = Triangulation::build_with_edges(&pts, edges)?; Ok(t.triangles().collect()) @@ -135,9 +141,9 @@ pub fn triangulate_with_edges<'a, E>(pts: &[Point], edges: E) /// Given a set of points and edges which are known to panic, figures out the /// max number of save steps, then saves an SVG right before the panic occurs -pub fn save_debug_panic<'a, E>(pts: &[Point], edges: E, filename: &str) - -> std::io::Result<()> - where E: IntoIterator + Copy + Clone + std::panic::UnwindSafe +pub fn save_debug_panic<'a, E>(pts: &[Point], edges: E, filename: &str) -> std::io::Result<()> +where + E: IntoIterator + Copy + Clone + std::panic::UnwindSafe, { let mut safe_steps = 0; loop { @@ -157,8 +163,8 @@ pub fn save_debug_panic<'a, E>(pts: &[Point], edges: E, filename: &str) } // This will still panic if we can't *construct* the initial triangulation - let mut t = Triangulation::new_with_edges(pts, edges) - .expect("Could not build CDT triangulation"); + let mut t = + Triangulation::new_with_edges(pts, edges).expect("Could not build CDT triangulation"); for _ in 0..safe_steps { t.step().expect("Step failed"); } diff --git a/cdt/src/predicates.rs b/cdt/src/predicates.rs index b71a66d..d10cd1e 100644 --- a/cdt/src/predicates.rs +++ b/cdt/src/predicates.rs @@ -39,11 +39,7 @@ pub fn acute(a: Point, b: Point, c: Point) -> f64 { /// ``` pub fn pseudo_angle(a: Point) -> f64 { let p = a.0 / (a.0.abs() + a.1.abs()); - 1.0 - (if a.1 > 0.0 { - 3.0 - p - } else { - 1.0 + p - }) / 4.0 + 1.0 - (if a.1 > 0.0 { 3.0 - p } else { 1.0 + p }) / 4.0 } pub fn centroid(a: Point, b: Point, c: Point) -> Point { @@ -53,5 +49,5 @@ pub fn centroid(a: Point, b: Point, c: Point) -> Point { pub fn distance2(a: Point, b: Point) -> f64 { let dx = a.0 - b.0; let dy = a.1 - b.1; - dx*dx + dy*dy + dx * dx + dy * dy } diff --git a/cdt/src/triangulate.rs b/cdt/src/triangulate.rs index 55a7601..7d87154 100644 --- a/cdt/src/triangulate.rs +++ b/cdt/src/triangulate.rs @@ -1,9 +1,10 @@ use crate::{ contour::{Contour, ContourData}, + half::Half, + hull::Hull, + indexes::{EdgeIndex, HullIndex, PointIndex, PointVec, EMPTY_EDGE}, + predicates::{acute, centroid, distance2, in_circle, orient2d, pseudo_angle}, Error, Point, - half::Half, hull::Hull, - indexes::{PointIndex, PointVec, EdgeIndex, HullIndex, EMPTY_EDGE}, - predicates::{acute, orient2d, in_circle, centroid, distance2, pseudo_angle}, }; #[derive(Debug)] @@ -17,10 +18,10 @@ enum Walk { /// **low-level** API; consider using the module-level functions if you don't /// need total control. pub struct Triangulation { - pub(crate) points: PointVec, // Sorted in the constructor - angles: PointVec, // pseudo-angles for each point - remap: PointVec, // self.points[i] = input[self.remap[i]] - next: PointIndex, // Progress of the triangulation + pub(crate) points: PointVec, // Sorted in the constructor + angles: PointVec, // pseudo-angles for each point + remap: PointVec, // self.points[i] = input[self.remap[i]] + next: PointIndex, // Progress of the triangulation constrained: bool, // If a point p terminates fixed edges, then endings[p] will be a tuple @@ -40,7 +41,7 @@ impl Triangulation { /// # Errors /// This may return [`Error::EmptyInput`], [`Error::InvalidInput`], or /// [`Error::CannotInitialize`] if the input is invalid. - pub fn build(points: & [Point]) -> Result { + pub fn build(points: &[Point]) -> Result { let mut t = Self::new(points)?; t.run()?; Ok(t) @@ -54,9 +55,9 @@ impl Triangulation { /// This may return [`Error::EmptyInput`], [`Error::InvalidInput`], /// [`Error::InvalidEdge`], or [`Error::CannotInitialize`] if the input is /// invalid. - pub fn build_with_edges<'a, E>(points: &[Point], edges: E) - -> Result - where E: IntoIterator + Copy + pub fn build_with_edges<'a, E>(points: &[Point], edges: E) -> Result + where + E: IntoIterator + Copy, { let mut t = Self::new_with_edges(points, edges)?; t.run()?; @@ -70,27 +71,30 @@ impl Triangulation { /// This may return [`Error::EmptyInput`], [`Error::InvalidInput`], /// [`Error::InvalidEdge`], [`Error::OpenContour`] or /// [`Error::CannotInitialize`] if the input is invalid. - pub fn build_from_contours(points: &[Point], contours: &[V]) - -> Result - where for<'b> &'b V: IntoIterator + pub fn build_from_contours(points: &[Point], contours: &[V]) -> Result + where + for<'b> &'b V: IntoIterator, { let mut t = Self::new_from_contours(points, contours)?; t.run()?; Ok(t) } - fn validate_input<'a, E>(points: &[Point], edges: E) - -> Result<(), Error> - where E: IntoIterator + Copy + fn validate_input<'a, E>(points: &[Point], edges: E) -> Result<(), Error> + where + E: IntoIterator + Copy, { if points.is_empty() { Err(Error::EmptyInput) - } else if points.iter().any(|p| p.0.is_nan() || p.0.is_infinite() || - p.1.is_nan() || p.1.is_infinite()) { + } else if points + .iter() + .any(|p| p.0.is_nan() || p.0.is_infinite() || p.1.is_nan() || p.1.is_infinite()) + { Err(Error::InvalidInput) - } else if edges.into_iter().any(|e| e.0 >= points.len() || - e.1 >= points.len() || - e.0 == e.1) { + } else if edges + .into_iter() + .any(|e| e.0 >= points.len() || e.1 >= points.len() || e.0 == e.1) + { Err(Error::InvalidEdge) } else if points.len() < 3 { Err(Error::TooFewPoints) @@ -112,9 +116,9 @@ impl Triangulation { /// This may return [`Error::EmptyInput`], [`Error::InvalidInput`], /// [`Error::InvalidEdge`], or [`Error::CannotInitialize`] if the input is /// invalid. - pub fn new_with_edges<'a, E>(points: &[Point], edges: E) - -> Result - where E: IntoIterator + Copy + pub fn new_with_edges<'a, E>(points: &[Point], edges: E) -> Result + where + E: IntoIterator + Copy, { Self::validate_input(points, edges)?; @@ -141,8 +145,10 @@ impl Triangulation { // Start by picking a center which is at the center of the bbox let (x_bounds, y_bounds) = Self::bbox(points); - let mut center = ((x_bounds.0 + x_bounds.1) / 2.0, - (y_bounds.0 + y_bounds.1) / 2.0); + let mut center = ( + (x_bounds.0 + x_bounds.1) / 2.0, + (y_bounds.0 + y_bounds.1) / 2.0, + ); // The scratch buffer contains our points, their indexes, and a distance // relative to the current center. We leave distance unpopulated @@ -169,7 +175,7 @@ impl Triangulation { // three keys at the start of the list, and uses partial_cmp // otherwise. The order of the first three keys is not // guaranteed, which we fix up below. - scratch.sort_unstable_by(|k, r| + scratch.sort_unstable_by(|k, r| { if k.0 == pa || k.0 == pb || k.0 == pc { std::cmp::Ordering::Less } else if r.0 == pa || r.0 == pb || r.0 == pc { @@ -186,22 +192,26 @@ impl Triangulation { let ak = pseudo_angle((pk.0 - center.0, pk.1 - center.1)); let ar = pseudo_angle((pr.0 - center.0, pr.1 - center.1)); ak.partial_cmp(&ar).unwrap() - }, + } e => e, } - }); + } + }); // Sanity-check that our three target points are at the head of the // list, as expected. - assert!((scratch[0].0 == pa) as u8 + - (scratch[1].0 == pa) as u8 + - (scratch[2].0 == pa) as u8 == 1); - assert!((scratch[0].0 == pb) as u8 + - (scratch[1].0 == pb) as u8 + - (scratch[2].0 == pb) as u8 == 1); - assert!((scratch[0].0 == pc) as u8 + - (scratch[1].0 == pc) as u8 + - (scratch[2].0 == pc) as u8 == 1); + assert!( + (scratch[0].0 == pa) as u8 + (scratch[1].0 == pa) as u8 + (scratch[2].0 == pa) as u8 + == 1 + ); + assert!( + (scratch[0].0 == pb) as u8 + (scratch[1].0 == pb) as u8 + (scratch[2].0 == pb) as u8 + == 1 + ); + assert!( + (scratch[0].0 == pc) as u8 + (scratch[1].0 == pc) as u8 + (scratch[2].0 == pc) as u8 + == 1 + ); // Apply sorting to initial three points, ignoring distance // values at this point because they're unused. @@ -230,9 +240,7 @@ impl Triangulation { for j in &[i - 1, 0, 1, 2] { let pa = points[scratch[*j].0]; let pb = points[p.0]; - if (pa.0 - pb.0).abs() < f64::EPSILON && - (pa.1 - pb.1).abs() < f64::EPSILON - { + if (pa.0 - pb.0).abs() < f64::EPSILON && (pa.1 - pb.1).abs() < f64::EPSILON { dupe = Some(scratch[*j].0); break; } @@ -242,11 +250,11 @@ impl Triangulation { None => { sorted_points.push(points[p.0]); map_reverse.push(p.0) - }, + } Some(d) => { assert!(map_forward[d] != PointIndex::empty()); map_forward[d] - }, + } }; } @@ -259,12 +267,15 @@ impl Triangulation { remap: map_reverse, next: PointIndex::new(0), - angles: PointVec::of(sorted_points.iter() - .map(|p| pseudo_angle((p.0 - center.0, p.1 - center.1))) - .collect()), + angles: PointVec::of( + sorted_points + .iter() + .map(|p| pseudo_angle((p.0 - center.0, p.1 - center.1))) + .collect(), + ), // Endings are assigned later - endings: PointVec::of(vec![(0,0); sorted_points.len()]), + endings: PointVec::of(vec![(0, 0); sorted_points.len()]), ending_data: vec![], points: sorted_points, // moved out here @@ -274,8 +285,9 @@ impl Triangulation { let pb = out.next + 1; let pc = out.next + 2; out.next += 3; - let e_ab = out.half.insert(pa, pb, pc, - EMPTY_EDGE, EMPTY_EDGE, EMPTY_EDGE); + let e_ab = out + .half + .insert(pa, pb, pc, EMPTY_EDGE, EMPTY_EDGE, EMPTY_EDGE); assert!(e_ab == EdgeIndex::new(0)); let e_bc = out.half.next(e_ab); let e_ca = out.half.prev(e_ab); @@ -294,16 +306,20 @@ impl Triangulation { //////////////////////////////////////////////////////////////////////// // Iterate over edges, counting which points have a termination let mut termination_count = PointVec::of(vec![0; out.points.len()]); - let edge_iter = || edges - .into_iter() - .map(|&(src, dst)| { + let edge_iter = || { + edges.into_iter().map(|&(src, dst)| { let src = map_forward[src]; let dst = map_forward[dst]; assert!(src != PointIndex::empty()); assert!(dst != PointIndex::empty()); - if src > dst { (dst, src) } else { (src, dst) } - }); + if src > dst { + (dst, src) + } else { + (src, dst) + } + }) + }; for (src, dst) in edge_iter() { // Lock any edges that appear in the seed triangle. Because the // (src, dst) tuple is sorted, there are only three possible @@ -364,9 +380,9 @@ impl Triangulation { /// This may return [`Error::EmptyInput`], [`Error::InvalidInput`], /// [`Error::InvalidEdge`], [`Error::OpenContour`] or /// [`Error::CannotInitialize`] if the input is invalid. - pub fn new_from_contours<'a, V>(pts: &[Point], contours: &[V]) - -> Result - where for<'b> &'b V: IntoIterator + pub fn new_from_contours<'a, V>(pts: &[Point], contours: &[V]) -> Result + where + for<'b> &'b V: IntoIterator, { let mut edges = Vec::new(); for c in contours { @@ -435,9 +451,9 @@ impl Triangulation { // If this triangle on the hull is strictly convex, fill it if self.orient2d(edge_l.dst, edge_l.src, edge_r.src) > 0.0 { self.hull.erase(hr); - let new_edge = self.half.insert( - edge_r.src, edge_l.dst, edge_l.src, - el, er, EMPTY_EDGE); + let new_edge = self + .half + .insert(edge_r.src, edge_l.dst, edge_l.src, el, er, EMPTY_EDGE); self.hull.update(hl, new_edge); self.legalize(self.half.next(new_edge)); self.legalize(self.half.prev(new_edge)); @@ -563,15 +579,18 @@ impl Triangulation { self.half.erase(e_ab); - let e_pc = self.half.insert(p, c, a, edge_ca.buddy, EMPTY_EDGE, EMPTY_EDGE); + let e_pc = self + .half + .insert(p, c, a, edge_ca.buddy, EMPTY_EDGE, EMPTY_EDGE); let e_cp = self.half.insert(c, p, b, EMPTY_EDGE, edge_bc.buddy, e_pc); // Update the hull point at b to point to the new split edge self.hull.update(h_ab, self.half.next(e_cp)); // Split the edge in the hull - let h_ap = self.hull.insert( - h_ab, self.angles[p], p, self.half.prev(e_pc)); + let h_ap = self + .hull + .insert(h_ab, self.angles[p], p, self.half.prev(e_pc)); // If either of the other triangle edges (in the now-deleted // triangle) were attached to the hull, then patch them up. @@ -596,8 +615,7 @@ impl Triangulation { let h_p = if self.angles[a] != self.angles[p] { // Insert the new edge into the hull, using the previous // HullIndex as a hint to avoid searching for its position. - let h_ap = self.hull.insert( - h_ab, self.angles[p], p, self.half.next(f)); + let h_ap = self.hull.insert(h_ab, self.angles[p], p, self.half.next(f)); self.legalize(f); h_ap } else { @@ -621,8 +639,9 @@ impl Triangulation { let edge_ca = self.half.edge(e_ca); assert!(a == edge_ca.dst); let c = edge_ca.src; - let g = self.half.insert(a, c, p, - EMPTY_EDGE, self.half.next(f), e_ca); + let g = self + .half + .insert(a, c, p, EMPTY_EDGE, self.half.next(f), e_ca); // h_ca has the same X position as c-p, so we update the same // slot in the hull, then move the point in the look-up table. @@ -684,9 +703,7 @@ impl Triangulation { // // For unconstrained triangulations, we check that the inner angle // is less that pi/2, per Zalik '05. - if (!self.constrained && self.acute(p, b, q) <= 0.0) || - self.orient2d(p, b, q) >= 0.0 - { + if (!self.constrained && self.acute(p, b, q) <= 0.0) || self.orient2d(p, b, q) >= 0.0 { break; } @@ -728,9 +745,7 @@ impl Triangulation { let q = edge_qa.src; // Same check as above - if (!self.constrained && self.acute(p, a, q) <= 0.0) || - self.orient2d(p, a, q) <= 0.0 - { + if (!self.constrained && self.acute(p, a, q) <= 0.0) || self.orient2d(p, a, q) <= 0.0 { break; } @@ -748,8 +763,12 @@ impl Triangulation { /// Finds which mode to begin walking through the triangulation when /// inserting a fixed edge. h is a [`HullIndex`] equivalent to the `src` /// point, and `dst` is the destination of the new fixed edge. - fn find_hull_walk_mode(&self, h: HullIndex, src: PointIndex, dst: PointIndex) - -> Result { + fn find_hull_walk_mode( + &self, + h: HullIndex, + src: PointIndex, + dst: PointIndex, + ) -> Result { /* We've just built a triangle that contains a fixed edge, and need to walk through the triangulation and implement that edge. @@ -876,22 +895,27 @@ impl Triangulation { } } - fn walk_fill(&mut self, src: PointIndex, dst: PointIndex, mut e: EdgeIndex) -> Result<(), Error> { + fn walk_fill( + &mut self, + src: PointIndex, + dst: PointIndex, + mut e: EdgeIndex, + ) -> Result<(), Error> { let mut steps_left = Contour::new_pos(src, ContourData::None); let mut steps_right = Contour::new_neg(src, ContourData::None); /* - * We start inside a triangle, then escape it right away: - src - / :^ - / : \ - hl/ : \hr - / : \ - V : e \ - b---:------->a - : - dst - */ + * We start inside a triangle, then escape it right away: + src + / :^ + / : \ + hl/ : \hr + / : \ + V : e \ + b---:------->a + : + dst + */ let edge_ba = self.half.edge(e); let e_ac = edge_ba.next; let e_cb = edge_ba.prev; @@ -902,22 +926,28 @@ impl Triangulation { // reconstructed later in a more perfect form. self.half.erase(e); - steps_left.push(self, edge_ba.src, + steps_left.push( + self, + edge_ba.src, if edge_cb.buddy != EMPTY_EDGE { ContourData::Buddy(edge_cb.buddy) } else { let hl = self.hull.index_of(edge_cb.dst); assert!(self.hull.edge(hl) == e_cb); ContourData::Hull(hl, edge_cb.sign) - }); - steps_right.push(self, edge_ba.dst, + }, + ); + steps_right.push( + self, + edge_ba.dst, if edge_ac.buddy != EMPTY_EDGE { ContourData::Buddy(edge_ac.buddy) } else { let hr = self.hull.index_of(edge_ac.dst); assert!(self.hull.edge(hr) == e_ac); ContourData::Hull(hr, edge_ac.sign) - }); + }, + ); // Exit this triangle, either onto the hull or continuing inside // the triangulation. @@ -929,14 +959,14 @@ impl Triangulation { loop { /* src - : - b<--:-------a - \ : e ^ - :\ / - : v / - : c - dst - */ + : + b<--:-------a + \ : e ^ + :\ / + : v / + : c + dst + */ let edge_ab = self.half.edge(e); let e_bc = edge_ab.next; let e_ca = edge_ab.prev; @@ -955,14 +985,19 @@ impl Triangulation { if c == dst { // The left (above) contour is either on the hull // (if no buddy is present) or inside the triangulation - let e_dst_src = steps_left.push(self, c, - if edge_bc.buddy == EMPTY_EDGE { - let h = self.hull.index_of(edge_bc.dst); - assert!(self.hull.edge(h) == e_bc); - ContourData::Hull(h, edge_bc.sign) - } else { - ContourData::Buddy(edge_bc.buddy) - }).expect("Failed to create fixed edge"); + let e_dst_src = steps_left + .push( + self, + c, + if edge_bc.buddy == EMPTY_EDGE { + let h = self.hull.index_of(edge_bc.dst); + assert!(self.hull.edge(h) == e_bc); + ContourData::Hull(h, edge_bc.sign) + } else { + ContourData::Buddy(edge_bc.buddy) + }, + ) + .expect("Failed to create fixed edge"); // This better have terminated the triangulation of // the upper contour with a dst-src edge @@ -973,14 +1008,18 @@ impl Triangulation { // half of the fixed edge as its buddy. This edge // could also be on the hull, so we do the same check // as above. - let e_src_dst = steps_right.push(self, c, - if edge_ca.buddy == EMPTY_EDGE { - let h = self.hull.index_of(edge_ca.dst); - assert!(self.hull.edge(h) == e_ca); - ContourData::Hull(h, edge_ca.sign) - } else { - ContourData::Buddy(edge_ca.buddy) - }) + let e_src_dst = steps_right + .push( + self, + c, + if edge_ca.buddy == EMPTY_EDGE { + let h = self.hull.index_of(edge_ca.dst); + assert!(self.hull.edge(h) == e_ca); + ContourData::Hull(h, edge_ca.sign) + } else { + ContourData::Buddy(edge_ca.buddy) + }, + ) .expect("Failed to create second fixed edge"); // Similarly, this better have terminated the @@ -998,14 +1037,17 @@ impl Triangulation { e = if o_psc > 0.0 { // Store the c-a edge as our buddy, and exit via b-c // (unless c-a is the 0th edge, which has no buddy) - steps_right.push(self, c, + steps_right.push( + self, + c, if edge_ca.buddy == EMPTY_EDGE { let h = self.hull.index_of(edge_ca.dst); assert!(self.hull.edge(h) == e_ca); ContourData::Hull(h, edge_ca.sign) } else { ContourData::Buddy(edge_ca.buddy) - }); + }, + ); // Exit the triangle, either onto the hull or staying // in the triangulation @@ -1016,26 +1058,29 @@ impl Triangulation { edge_bc.buddy } else if o_psc < 0.0 { /* src - : - b<-- :-a - | : ^ - | :/ - | :/ - | : - V/: - c dst - */ + : + b<-- :-a + | : ^ + | :/ + | :/ + | : + V/: + c dst + */ // Store the b-c edge as our buddy and exit via c-a, // // (c-b may be a hull edge, so we check for that) - steps_left.push(self, c, + steps_left.push( + self, + c, if edge_bc.buddy == EMPTY_EDGE { let h = self.hull.index_of(edge_bc.dst); assert!(self.hull.edge(h) == e_bc); ContourData::Hull(h, edge_bc.sign) } else { ContourData::Buddy(edge_bc.buddy) - }); + }, + ); if edge_ca.fixed() { return Err(Error::CrossingFixedEdge); @@ -1049,11 +1094,19 @@ impl Triangulation { Ok(()) } - fn handle_fixed_edge(&mut self, h: HullIndex, src: PointIndex, dst: PointIndex) -> Result<(), Error> { + fn handle_fixed_edge( + &mut self, + h: HullIndex, + src: PointIndex, + dst: PointIndex, + ) -> Result<(), Error> { match self.find_hull_walk_mode(h, src, dst)? { // Easy mode: the fixed edge is directly connected to the new // point, so we lock it and return immediately. - Walk::Done(e) => { self.half.toggle_lock_sign(e); Ok(()) }, + Walk::Done(e) => { + self.half.toggle_lock_sign(e); + Ok(()) + } // Otherwise, we're guaranteed to be inside the triangulation, // because the hull is convex by construction. @@ -1096,8 +1149,12 @@ impl Triangulation { let e_ad = self.half.next(e_ba); let d = self.half.edge(e_ad).dst; - if in_circle(self.points[a], self.points[b], self.points[c], - self.points[d]) > 0.0 + if in_circle( + self.points[a], + self.points[b], + self.points[c], + self.points[d], + ) > 0.0 { let e_db = self.half.prev(e_ba); @@ -1122,22 +1179,21 @@ impl Triangulation { /// Returns all of the resulting triangles, as indexes into the original /// `points` array from the constructor. - pub fn triangles(&self) -> impl Iterator + '_ { - self.half.iter_triangles() - .map(move |(a, b, c)| - (self.remap[a], self.remap[b], self.remap[c])) + pub fn triangles(&self) -> impl Iterator + '_ { + self.half + .iter_triangles() + .map(move |(a, b, c)| (self.remap[a], self.remap[b], self.remap[c])) } /// Checks whether the given point is inside or outside the triangulation. /// This is extremely inefficient, and should only be used for debugging /// or unit tests. pub fn inside(&self, p: Point) -> bool { - self.half.iter_triangles() - .any(|(a, b, c)| { - orient2d(self.points[a], self.points[b], p) >= 0.0 && - orient2d(self.points[b], self.points[c], p) >= 0.0 && - orient2d(self.points[c], self.points[a], p) >= 0.0 - }) + self.half.iter_triangles().any(|(a, b, c)| { + orient2d(self.points[a], self.points[b], p) >= 0.0 + && orient2d(self.points[b], self.points[c], p) >= 0.0 + && orient2d(self.points[c], self.points[a], p) >= 0.0 + }) } /// Writes the current state of the triangulation to an SVG file, @@ -1157,22 +1213,22 @@ impl Triangulation { /// shows points, triangles, and fixed edges from the half-edge graph. pub fn to_svg(&self, debug: bool) -> String { let (x_bounds, y_bounds) = Self::bbox(&self.points); - let scale = 800.0 / - (x_bounds.1 - x_bounds.0).max(y_bounds.1 - y_bounds.0); + let scale = 800.0 / (x_bounds.1 - x_bounds.0).max(y_bounds.1 - y_bounds.0); let line_width = 2.0; - let dx = |x| { scale * (x - x_bounds.0) + line_width}; - let dy = |y| { scale * (y_bounds.1 - y) + line_width}; + let dx = |x| scale * (x - x_bounds.0) + line_width; + let dy = |y| scale * (y_bounds.1 - y) + line_width; - let mut out = String::new(); - // Put a dummy rectangle in the SVG so that rsvg-convert doesn't clip - out.push_str(&format!( + let mut out = String::new(); + // Put a dummy rectangle in the SVG so that rsvg-convert doesn't clip + out.push_str(&format!( r#" "#, - scale * (x_bounds.1 - x_bounds.0) + line_width*2.0, - scale * (y_bounds.1 - y_bounds.0) + line_width*2.0, + scale * (x_bounds.1 - x_bounds.0) + line_width * 2.0, + scale * (y_bounds.1 - y_bounds.0) + line_width * 2.0, dx(x_bounds.1) + line_width, - dy(y_bounds.0) + line_width)); + dy(y_bounds.0) + line_width + )); // Draw endings in green (they will be overdrawn in white if they're // included in the triangulation). @@ -1181,7 +1237,7 @@ impl Triangulation { for i in *start..*end { let dst = PointIndex::new(p); let src = self.ending_data[i]; - out.push_str(&format!( + out.push_str(&format!( r#" "#, - dx(p.0), dy(p.1), line_width)); + dx(p.0), + dy(p.1), + line_width + )); } out.push_str("\n"); @@ -1258,8 +1324,8 @@ fn min3(buf: &[(usize, f64)], points: &[(f64, f64)]) -> [usize; 3] { // If there is one point picked already, then don't // pick it again, since that will be doomed to be colinear. let p0 = points[array[0].0]; - if (p0.0 - points[p].0).abs() >= std::f64::EPSILON || - (p0.1 - points[p].1).abs() >= std::f64::EPSILON + if (p0.0 - points[p].0).abs() >= std::f64::EPSILON + || (p0.1 - points[p].1).abs() >= std::f64::EPSILON { array[1] = (p, score); } @@ -1296,19 +1362,8 @@ mod tests { #[test] fn duplicate_point() { - let points = vec![ - (0.0, 0.0), - (1.0, 0.0), - (1.1, 1.1), - (1.1, 1.1), - (0.0, 1.0), - ]; - let edges = vec![ - (0, 1), - (1, 2), - (3, 4), - (4, 0), - ]; + let points = vec![(0.0, 0.0), (1.0, 0.0), (1.1, 1.1), (1.1, 1.1), (0.0, 1.0)]; + let edges = vec![(0, 1), (1, 2), (3, 4), (4, 0)]; let t = Triangulation::build_with_edges(&points, &edges); assert!(!t.is_err()); assert!(t.unwrap().inside((0.5, 0.5))); @@ -1341,19 +1396,13 @@ mod tests { (0.5, 0.6), (0.6, 0.5), (0.5, 0.4), - // Force the center to be at 0.5, 0.5 (0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0), ]; - let edges = vec![ - (1, 2), - (2, 3), - (3, 4), - (4, 0), - ]; + let edges = vec![(1, 2), (2, 3), (3, 4), (4, 0)]; let t = Triangulation::build_with_edges(&points, &edges) .expect("Could not build triangulation"); assert!(t.inside((0.55, 0.5))); @@ -1368,19 +1417,13 @@ mod tests { (1.0, 0.0), (1.0, 1.0), (0.0, 1.0), - // Threee colinear points (0.5, 0.4), (0.5, 0.5), (0.5, 0.6), (0.6, 0.5), ]; - let edges = vec![ - (4, 5), - (5, 6), - (6, 7), - (7, 4), - ]; + let edges = vec![(4, 5), (5, 6), (6, 7), (7, 4)]; let t = Triangulation::build_with_edges(&points, &edges) .expect("Could not build triangulation"); assert!(t.inside((0.55, 0.5))); @@ -1401,16 +1444,18 @@ mod tests { } const M: usize = 32; - use std::iter::repeat_with; - use rand::{Rng, SeedableRng}; use itertools::Itertools; + use rand::{Rng, SeedableRng}; + use std::iter::repeat_with; // Use a ChaCha RNG to be reproducible across platforms let mut rng = rand_chacha::ChaCha8Rng::seed_from_u64(12345); - points.extend(repeat_with(|| rng.gen_range(-1.0..1.0)) - .tuple_windows() - .filter(|(x, y): &(f64, f64)| (x*x + y*y).sqrt() < 0.95) - .take(M)); + points.extend( + repeat_with(|| rng.gen_range(-1.0..1.0)) + .tuple_windows() + .filter(|(x, y): &(f64, f64)| (x * x + y * y).sqrt() < 0.95) + .take(M), + ); let t = Triangulation::build_with_edges(&points, &edges) .expect("Could not build triangulation"); @@ -1431,7 +1476,7 @@ mod tests { edges.push((i, (i + 1) % N)); } const M: usize = 32; - for i in 0..(2*M) { + for i in 0..(2 * M) { let a = (i as f64) / (M as f64) * core::f64::consts::PI * 2.0; let scale = (i as f64 + 1.1).powf(0.2); let x = a.cos() / scale; @@ -1482,8 +1527,7 @@ mod tests { points.push((i as f64, j as f64)); } } - let t = Triangulation::build(&points) - .expect("Could not build triangulation"); + let t = Triangulation::build(&points).expect("Could not build triangulation"); t.check(); } @@ -1502,8 +1546,10 @@ mod tests { const M: usize = 32; for i in 0..M { for j in 0..M { - points.push((i as f64 / M as f64 * 2.0 - 1.0, - j as f64 / M as f64 * 2.0 - 1.0)); + points.push(( + i as f64 / M as f64 * 2.0 - 1.0, + j as f64 / M as f64 * 2.0 - 1.0, + )); } } let t = Triangulation::build_with_edges(&points, &edges) @@ -1514,19 +1560,23 @@ mod tests { #[test] fn new_from_contours() { let t = Triangulation::build_from_contours::>( - &[(0.0, 0.0), (1.0, 0.0), (1.0, 1.0)], &vec![]); + &[(0.0, 0.0), (1.0, 0.0), (1.0, 1.0)], + &vec![], + ); assert!(t.is_ok()); - let t = Triangulation::build_from_contours( - &[(0.0, 0.0), (1.0, 0.0), (1.0, 1.0)], &[vec![]]); + let t = + Triangulation::build_from_contours(&[(0.0, 0.0), (1.0, 0.0), (1.0, 1.0)], &[vec![]]); assert!(t.is_ok()); - let t = Triangulation::build_from_contours( - &[(0.0, 0.0), (1.0, 0.0), (1.0, 1.0)], &[vec![0]]); + let t = + Triangulation::build_from_contours(&[(0.0, 0.0), (1.0, 0.0), (1.0, 1.0)], &[vec![0]]); assert!(t.is_ok()); let t = Triangulation::build_from_contours( - &[(0.0, 0.0), (1.0, 0.0), (1.0, 1.0)], &[vec![0, 1]]); + &[(0.0, 0.0), (1.0, 0.0), (1.0, 1.0)], + &[vec![0, 1]], + ); assert!(t.is_err()); if let Err(e) = t { assert!(e == Error::OpenContour); From b0f7c04a063da067787f575ad3401a557e7b78be Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 16:25:20 +0200 Subject: [PATCH 13/24] Clippy for cdt/ --- cdt/examples/font.rs | 2 +- cdt/src/lib.rs | 6 +++--- cdt/src/triangulate.rs | 20 ++++++++++---------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/cdt/examples/font.rs b/cdt/examples/font.rs index 43c990d..ec14396 100644 --- a/cdt/examples/font.rs +++ b/cdt/examples/font.rs @@ -114,7 +114,7 @@ fn main() -> Result<(), Box> { .value_of("font") .unwrap_or("/Library/Fonts/Georgia.ttf"); let font = { - let data = std::fs::read(&font_path)?; + let data = std::fs::read(font_path)?; Font::try_from_vec(data).unwrap() }; diff --git a/cdt/src/lib.rs b/cdt/src/lib.rs index b171c86..d5e8159 100644 --- a/cdt/src/lib.rs +++ b/cdt/src/lib.rs @@ -107,7 +107,7 @@ pub enum Error { /// into the original points list. The resulting triangulation has a convex /// hull. pub fn triangulate_points(pts: &[Point]) -> Result, Error> { - let t = Triangulation::build(&pts)?; + let t = Triangulation::build(pts)?; Ok(t.triangles().collect()) } @@ -121,7 +121,7 @@ pub fn triangulate_contours( where for<'b> &'b V: IntoIterator, { - let t = Triangulation::build_from_contours(&pts, contours)?; + let t = Triangulation::build_from_contours(pts, contours)?; Ok(t.triangles().collect()) } @@ -135,7 +135,7 @@ pub fn triangulate_with_edges<'a, E>( where E: IntoIterator + Copy + Clone, { - let t = Triangulation::build_with_edges(&pts, edges)?; + let t = Triangulation::build_with_edges(pts, edges)?; Ok(t.triangles().collect()) } diff --git a/cdt/src/triangulate.rs b/cdt/src/triangulate.rs index 7d87154..fd70376 100644 --- a/cdt/src/triangulate.rs +++ b/cdt/src/triangulate.rs @@ -158,7 +158,7 @@ impl Triangulation { .collect(); // Find the three closest points - let arr = min3(&scratch, &points); + let arr = min3(&scratch, points); // Pick out the triangle points, ensuring that they're clockwise let pa = arr[0]; @@ -396,7 +396,7 @@ impl Triangulation { } } } - Self::new_with_edges(&pts, &edges) + Self::new_with_edges(pts, &edges) } /// Runs the triangulation algorithm until completion @@ -1166,8 +1166,8 @@ impl Triangulation { /// Calculates a bounding box, returning `((xmin, xmax), (ymin, ymax))` pub(crate) fn bbox(points: &[Point]) -> ((f64, f64), (f64, f64)) { - let (mut xmin, mut xmax) = (std::f64::INFINITY, -std::f64::INFINITY); - let (mut ymin, mut ymax) = (std::f64::INFINITY, -std::f64::INFINITY); + let (mut xmin, mut xmax) = (f64::INFINITY, -f64::INFINITY); + let (mut ymin, mut ymax) = (f64::INFINITY, -f64::INFINITY); for (px, py) in points.iter() { xmin = px.min(xmin); ymin = py.min(ymin); @@ -1313,7 +1313,7 @@ impl Triangulation { // // This is faster than sorting an entire array each time. fn min3(buf: &[(usize, f64)], points: &[(f64, f64)]) -> [usize; 3] { - let mut array = [(0, std::f64::INFINITY); 3]; + let mut array = [(0, f64::INFINITY); 3]; for &(p, score) in buf.iter() { if score < array[0].1 { array[0] = (p, score); @@ -1324,8 +1324,8 @@ fn min3(buf: &[(usize, f64)], points: &[(f64, f64)]) -> [usize; 3] { // If there is one point picked already, then don't // pick it again, since that will be doomed to be colinear. let p0 = points[array[0].0]; - if (p0.0 - points[p].0).abs() >= std::f64::EPSILON - || (p0.1 - points[p].1).abs() >= std::f64::EPSILON + if (p0.0 - points[p].0).abs() >= f64::EPSILON + || (p0.1 - points[p].1).abs() >= f64::EPSILON { array[1] = (p, score); } @@ -1335,7 +1335,7 @@ fn min3(buf: &[(usize, f64)], points: &[(f64, f64)]) -> [usize; 3] { if score < array[2].1 { let p0 = points[array[0].0]; let p1 = points[array[1].0]; - if orient2d(p0, p1, points[p]).abs() > std::f64::EPSILON { + if orient2d(p0, p1, points[p]).abs() > f64::EPSILON { array[2] = (p, score); } } @@ -1365,7 +1365,7 @@ mod tests { let points = vec![(0.0, 0.0), (1.0, 0.0), (1.1, 1.1), (1.1, 1.1), (0.0, 1.0)]; let edges = vec![(0, 1), (1, 2), (3, 4), (4, 0)]; let t = Triangulation::build_with_edges(&points, &edges); - assert!(!t.is_err()); + assert!(t.is_ok()); assert!(t.unwrap().inside((0.5, 0.5))); } @@ -1561,7 +1561,7 @@ mod tests { fn new_from_contours() { let t = Triangulation::build_from_contours::>( &[(0.0, 0.0), (1.0, 0.0), (1.0, 1.0)], - &vec![], + &[], ); assert!(t.is_ok()); From 98f1ca56e3395da599e7f1d0442d2f275f06cdef Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 16:27:29 +0200 Subject: [PATCH 14/24] Rust 2021, deps bump, rustfmt for express/ --- express/Cargo.toml | 6 +- express/examples/gen_exp.rs | 33 +- express/examples/parse_exp.rs | 32 +- express/src/gen.rs | 443 ++++--- express/src/lib.rs | 2 +- express/src/parse.rs | 2187 ++++++++++++++++++++------------- 6 files changed, 1647 insertions(+), 1056 deletions(-) diff --git a/express/Cargo.toml b/express/Cargo.toml index 94b19bf..77972c6 100644 --- a/express/Cargo.toml +++ b/express/Cargo.toml @@ -6,8 +6,8 @@ edition = "2018" [dependencies] fast-float = "0.2" -memchr = "2.4.0" -nom = "6.0" +memchr = "2.7" +nom = "6" [dev-dependencies] -clap = "2.33" +clap = "3" diff --git a/express/examples/gen_exp.rs b/express/examples/gen_exp.rs index 870fdb9..e54e3e3 100644 --- a/express/examples/gen_exp.rs +++ b/express/examples/gen_exp.rs @@ -2,25 +2,23 @@ use std::fs::File; use std::io::Read; use std::time::SystemTime; -use clap::{Arg, App}; -use express::parse::{strip_comments_and_lower, parse}; +use clap::{App, Arg}; +use express::parse::{parse, strip_comments_and_lower}; fn main() -> Result<(), Box> { let matches = App::new("parse_exp") .author("Matt Keeter ") .about("Parses an EXPRESS file") - .arg(Arg::with_name("input") - .takes_value(true) - .required(true)) - .arg(Arg::with_name("quiet") - .short("q") - .long("quiet") - .help("disable output")) - .arg(Arg::with_name("output") - .takes_value(true)) + .arg(Arg::with_name("input").takes_value(true).required(true)) + .arg( + Arg::with_name("quiet") + .short('q') + .long("quiet") + .help("disable output"), + ) + .arg(Arg::with_name("output").takes_value(true)) .get_matches(); - let input = matches.value_of("input") - .expect("Could not get input file"); + let input = matches.value_of("input").expect("Could not get input file"); let mut f = File::open(input).expect("file opens"); let mut buffer = Vec::new(); @@ -44,10 +42,11 @@ fn main() -> Result<(), Box> { match matches.value_of("output") { Some(o) => std::fs::write(o, gen)?, - None => if !matches.is_present("quiet") { - println!("{}", gen) - }, + None => { + if !matches.is_present("quiet") { + println!("{}", gen) + } + } } Ok(()) } - diff --git a/express/examples/parse_exp.rs b/express/examples/parse_exp.rs index 24c23dd..c3eddae 100644 --- a/express/examples/parse_exp.rs +++ b/express/examples/parse_exp.rs @@ -2,25 +2,23 @@ use std::fs::File; use std::io::Read; use std::time::SystemTime; -use clap::{Arg, App}; -use express::parse::{strip_comments_and_lower, parse}; +use clap::{App, Arg}; +use express::parse::{parse, strip_comments_and_lower}; fn main() -> Result<(), Box> { let matches = App::new("parse_exp") .author("Matt Keeter ") .about("Parses an EXPRESS file") - .arg(Arg::with_name("input") - .takes_value(true) - .required(true)) - .arg(Arg::with_name("quiet") - .short("q") - .long("quiet") - .help("disable output")) - .arg(Arg::with_name("output") - .takes_value(true)) + .arg(Arg::with_name("input").takes_value(true).required(true)) + .arg( + Arg::with_name("quiet") + .short('q') + .long("quiet") + .help("disable output"), + ) + .arg(Arg::with_name("output").takes_value(true)) .get_matches(); - let input = matches.value_of("input") - .expect("Could not get input file"); + let input = matches.value_of("input").expect("Could not get input file"); let mut f = File::open(input).expect("file opens"); let mut buffer = Vec::new(); @@ -36,10 +34,10 @@ fn main() -> Result<(), Box> { match parsed { Err(e) => eprintln!("Got err {:?}", e), - Ok((_, ref mut p)) => { - match matches.value_of("output") { - Some(o) => std::fs::write(o, format!("Parse tree:\n{:#?}", p))?, - _ => if !matches.is_present("quiet") { + Ok((_, ref mut p)) => match matches.value_of("output") { + Some(o) => std::fs::write(o, format!("Parse tree:\n{:#?}", p))?, + _ => { + if !matches.is_present("quiet") { println!("Parse tree:\n{:#?}", parsed); } } diff --git a/express/src/gen.rs b/express/src/gen.rs index 05db20f..32251fd 100644 --- a/express/src/gen.rs +++ b/express/src/gen.rs @@ -1,6 +1,6 @@ -use std::fmt::Write; -use std::collections::{HashSet, HashMap}; use crate::parse::*; +use std::collections::{HashMap, HashSet}; +use std::fmt::Write; //////////////////////////////////////////////////////////////////////////////// // Helper types to use when doing code-gen @@ -25,7 +25,7 @@ enum Type<'a> { Primitive(&'a str), } struct TypeMap<'a>(HashMap<&'a str, Type<'a>>, &'a HashMap<&'a str, Ref<'a>>); -impl <'a> TypeMap<'a> { +impl<'a> TypeMap<'a> { fn to_rtype_build(&mut self, s: &'a str) -> String { if !self.0.contains_key(s) { self.build(s); @@ -35,7 +35,7 @@ impl <'a> TypeMap<'a> { fn is_entity(&self, s: &str) -> bool { let t = self.0.get(s).expect(&format!("Could not get {:?}", s)); match &t { - Type::Entity{..} => true, + Type::Entity { .. } => true, Type::Select(v) => v.iter().all(|s| self.is_entity(s)), _ => false, } @@ -51,28 +51,31 @@ impl <'a> TypeMap<'a> { Type::Primitive(s) => s.to_string(), - Type::Aggregation { optional, type_ } => if *optional { - format!("Vec>", self.to_inner_rtype(type_)) - } else { - format!("Vec<{}>", self.to_inner_rtype(type_)) - }, + Type::Aggregation { optional, type_ } => { + if *optional { + format!("Vec>", self.to_inner_rtype(type_)) + } else { + format!("Vec<{}>", self.to_inner_rtype(type_)) + } + } } } fn to_inner_rtype(&self, t: &Type<'a>) -> String { match &t { - Type::Aggregation { optional, type_ } => if *optional { - format!("Vec>", self.to_inner_rtype(type_)) - } else { - format!("Vec<{}>", self.to_inner_rtype(type_)) - }, + Type::Aggregation { optional, type_ } => { + if *optional { + format!("Vec>", self.to_inner_rtype(type_)) + } else { + format!("Vec<{}>", self.to_inner_rtype(type_)) + } + } Type::Redeclared(r) => { format!("{}<'a>", to_camel(r)) - }, + } Type::RedeclaredPrimitive(r) => r.to_string(), Type::Primitive(r) => r.to_string(), - Type::Entity { .. } | Type::Enum(_) | Type::Select(_) => - panic!("Invalid inner type"), + Type::Entity { .. } | Type::Enum(_) | Type::Select(_) => panic!("Invalid inner type"), } } fn build(&mut self, s: &'a str) { @@ -98,33 +101,38 @@ impl <'a> TypeMap<'a> { impl<'a> Type<'a> { fn write_enum_variant(&self, name: &str, buf: &mut W) -> std::fmt::Result - where W: std::fmt::Write + where + W: std::fmt::Write, { match self { - Type::Entity{..} => writeln!(buf, " {0}({0}_<'a>),", - to_camel(name)), + Type::Entity { .. } => writeln!(buf, " {0}({0}_<'a>),", to_camel(name)), _ => Ok(()), } } fn write_enum_match(&self, name: &str, buf: &mut W) -> std::fmt::Result - where W: std::fmt::Write + where + W: std::fmt::Write, { match self { - Type::Entity{..} => writeln!(buf, + Type::Entity { .. } => writeln!( + buf, r#" "{0}" => {1}_::parse_chunks(strs).map(|(s, v)| (s, Entity::{1}(v))),"#, - capitalize(name), to_camel(name)), + capitalize(name), + to_camel(name) + ), _ => Ok(()), } } fn is_entity(&self) -> bool { - matches!(self, Type::Entity{..}) + matches!(self, Type::Entity { .. }) } fn write_supertypes(&self, name: &str, buf: &mut W) -> std::fmt::Result - where W: std::fmt::Write + where + W: std::fmt::Write, { - if let Type::Entity{supertypes, ..} = self { + if let Type::Entity { supertypes, .. } = self { if !supertypes.is_empty() { write!(buf, r#" "{}" => &["#, capitalize(name))?; for (i, s) in supertypes.iter().enumerate() { @@ -139,12 +147,15 @@ impl<'a> Type<'a> { Ok(()) } fn write_type(&self, name: &str, buf: &mut W, type_map: &TypeMap) -> std::fmt::Result - where W: std::fmt::Write + where + W: std::fmt::Write, { let camel_name = to_camel(name); match self { Type::Redeclared(c) => { - writeln!(buf,r#" + writeln!( + buf, + r#" #[derive(Debug)] pub struct {0}<'a>(pub {1}, std::marker::PhantomData<&'a ()>); // redeclared impl<'a> Parse<'a> for {0}<'a> {{ @@ -158,10 +169,15 @@ impl<'a> HasId for {0}<'a> {{ }} }} "#, - camel_name, type_map.to_rtype(c), to_camel(c))?; - }, + camel_name, + type_map.to_rtype(c), + to_camel(c) + )?; + } Type::RedeclaredPrimitive(c) => { - writeln!(buf, r#"#[derive(Debug)] + writeln!( + buf, + r#"#[derive(Debug)] pub struct {0}<'a>(pub {1}, std::marker::PhantomData<&'a ()>); // primitive impl<'a> Parse<'a> for {0}<'a> {{ fn parse(s: &'a str) -> IResult<'a, Self> {{ @@ -172,29 +188,45 @@ impl<'a> HasId for {0}<'a> {{ fn append_ids(&self, _v: &mut Vec) {{ /* Nothing to do here */ }} }} "#, - camel_name, c, strip_lifetime(c))?; - }, + camel_name, + c, + strip_lifetime(c) + )?; + } Type::Enum(c) => { - writeln!(buf, "#[derive(Debug)] -pub enum {}<'a> {{ // enum", camel_name)?; + writeln!( + buf, + "#[derive(Debug)] +pub enum {}<'a> {{ // enum", + camel_name + )?; for v in c { writeln!(buf, " {},", to_camel(v))?; } - writeln!(buf, + writeln!( + buf, r#" _Unused(std::marker::PhantomData<&'a ()>), }} impl<'a> Parse<'a> for {0}<'a> {{ fn parse(s: &'a str) -> IResult<'a, Self> {{ use {0}::*; let (s, tag) = parse_enum_tag(s)?; - let e = match tag {{"#, camel_name)?; + let e = match tag {{"#, + camel_name + )?; for enum_tag in c { - writeln!(buf, r#" "{}" => {},"#, - capitalize(enum_tag), to_camel(enum_tag))?; + writeln!( + buf, + r#" "{}" => {},"#, + capitalize(enum_tag), + to_camel(enum_tag) + )?; } - writeln!(buf, r#" _ => return nom_alt_err(s), + writeln!( + buf, + r#" _ => return nom_alt_err(s), }}; Ok((s, e)) }} @@ -202,51 +234,70 @@ impl<'a> Parse<'a> for {0}<'a> {{ impl<'a> HasId for {0}<'a> {{ fn append_ids(&self, _v: &mut Vec) {{ /* nothing to do here */ }} }} -"#, camel_name)?; - }, +"#, + camel_name + )?; + } Type::Select(c) => { - let num_entities = c.iter() - .filter(|v| type_map.is_entity(v)) - .count(); + let num_entities = c.iter().filter(|v| type_map.is_entity(v)).count(); // If every member of this SELECT statement is an entity, then // we're just going to parse it to an Id anyways (since we // can't disambiguate in the single pass of the parser) if num_entities == c.len() { - writeln!(buf, "#[derive(Debug)] + writeln!( + buf, + "#[derive(Debug)] pub struct {0}_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous select pub type {0}<'a> = Id<{0}_<'a>>; -", camel_name)?; +", + camel_name + )?; return Ok(()); } else if num_entities > 1 { // Print a warning here (TODO: handle better) eprintln!( "Ambiguous SELECT for {} (contains multiple entities)", - camel_name); + camel_name + ); } - writeln!(buf, "#[derive(Debug)] -pub enum {}<'a> {{ // select", camel_name)?; + writeln!( + buf, + "#[derive(Debug)] +pub enum {}<'a> {{ // select", + camel_name + )?; for v in c { - writeln!(buf, " {}({}),", to_camel(v), - type_map.to_rtype(v))?; + writeln!(buf, " {}({}),", to_camel(v), type_map.to_rtype(v))?; } - writeln!(buf, + writeln!( + buf, r#" _Unused(std::marker::PhantomData<&'a ()>) }} impl<'a> Parse<'a> for {}<'a> {{ - fn parse(s: &'a str) -> IResult<'a, Self> {{"#, camel_name)?; + fn parse(s: &'a str) -> IResult<'a, Self> {{"#, + camel_name + )?; // Same logic as above - let to_parse_str = |v| if !type_map.is_entity(v) { - format!( - r#" map(delimited(tag("{}("), <{}>::parse, char(')')), {}::{})"#, - capitalize(v), type_map.to_rtype(v), - camel_name, to_camel(v)) - } else { - format!( - r#" map(<{}>::parse, {}::{})"#, - type_map.to_rtype(v), camel_name, to_camel(v)) + let to_parse_str = |v| { + if !type_map.is_entity(v) { + format!( + r#" map(delimited(tag("{}("), <{}>::parse, char(')')), {}::{})"#, + capitalize(v), + type_map.to_rtype(v), + camel_name, + to_camel(v) + ) + } else { + format!( + r#" map(<{}>::parse, {}::{})"#, + type_map.to_rtype(v), + camel_name, + to_camel(v) + ) + } }; if c.len() == 1 { @@ -269,24 +320,36 @@ impl<'a> Parse<'a> for {}<'a> {{ write!(buf, "))")?; } } - writeln!(buf, "(s) + writeln!( + buf, + "(s) }} }} impl<'a> HasId for {0}<'a> {{ fn append_ids(&self, _v: &mut Vec) {{ - match self {{", camel_name)?; + match self {{", + camel_name + )?; for v in c { - writeln!(buf, " {}::{}(c) => c.append_ids(_v),", - camel_name, to_camel(v))?; + writeln!( + buf, + " {}::{}(c) => c.append_ids(_v),", + camel_name, + to_camel(v) + )?; } - writeln!(buf, " _ => (), + writeln!( + buf, + " _ => (), }} }} -}}")?; - }, +}}" + )?; + } Type::Aggregation { type_, .. } => { - writeln!(buf, + writeln!( + buf, r#"#[derive(Debug)] pub struct {0}<'a>(pub {1}, std::marker::PhantomData<&'a ()>); // aggregation impl<'a> Parse<'a> for {0}<'a> {{ @@ -302,16 +365,22 @@ impl<'a> HasId for {0}<'a> {{ }} }} "#, - camel_name, type_map.to_inner_rtype(self), - type_map.to_inner_rtype(&*type_))?; + camel_name, + type_map.to_inner_rtype(self), + type_map.to_inner_rtype(&*type_) + )?; } Type::Entity { attrs, .. } => { if attrs.iter().any(|a| a.dupe) { writeln!(buf, "#[allow(non_snake_case)]")?; } - writeln!(buf, "#[derive(Debug)] -pub struct {}_<'a> {{ // entity", camel_name)?; + writeln!( + buf, + "#[derive(Debug)] +pub struct {}_<'a> {{ // entity", + camel_name + )?; for a in attrs { // Skip derived attributes in the struct if a.derived { @@ -328,7 +397,9 @@ pub struct {}_<'a> {{ // entity", camel_name)?; writeln!(buf, "{},", a.type_)?; } } - writeln!(buf, r#" _marker: std::marker::PhantomData<&'a ()>, + writeln!( + buf, + r#" _marker: std::marker::PhantomData<&'a ()>, }} pub type {0}<'a> = Id<{0}_<'a>>; impl<'a> FromEntity<'a> for {0}_<'a> {{ @@ -341,64 +412,74 @@ impl<'a> FromEntity<'a> for {0}_<'a> {{ }} impl<'a> ParseFromChunks<'a> for {0}_<'a> {{ fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> {{"#, - camel_name)?; + camel_name + )?; // If we'll be reading attributes, then we need an index if !attrs.is_empty() { writeln!(buf, " let mut i = 0;")?; } // Parse the tag - writeln!(buf, r#" let (s, _) = tag("{}(")(strs[0])?;"#, - capitalize(&name))?; + writeln!( + buf, + r#" let (s, _) = tag("{}(")(strs[0])?;"#, + capitalize(&name) + )?; // Then, write a series of parsers which build the whole struct - for (i,a) in attrs.iter().enumerate() { + for (i, a) in attrs.iter().enumerate() { if a.derived { - write!(buf, - r#" let (s, _) = param_from_chunks::"#)?; + write!(buf, r#" let (s, _) = param_from_chunks::"#)?; } else { if a.dupe { writeln!(buf, " #[allow(non_snake_case)]")?; - write!(buf, " let (s, {}__{})", - a.from.unwrap(), a.name)?; + write!(buf, " let (s, {}__{})", a.from.unwrap(), a.name)?; } else { write!(buf, " let (s, {})", a.name)?; } if a.optional { - write!(buf, " = param_from_chunks::>", - a.type_)?; + write!(buf, " = param_from_chunks::>", a.type_)?; } else { write!(buf, " = param_from_chunks::<{}>", a.type_)?; } } - writeln!(buf, "({}, s, &mut i, strs)?;", - i == attrs.len() - 1)?; + writeln!(buf, "({}, s, &mut i, strs)?;", i == attrs.len() - 1)?; } writeln!(buf, " Ok((s, Self {{")?; for a in attrs.iter().filter(|a| !a.derived) { if a.dupe { // TODO make this a function on `a` - writeln!(buf, " {}__{},", - a.from.unwrap(), a.name)?; + writeln!(buf, " {}__{},", a.from.unwrap(), a.name)?; } else { writeln!(buf, " {},", a.name)?; } } - writeln!(buf, " _marker: std::marker::PhantomData}})) + writeln!( + buf, + " _marker: std::marker::PhantomData}})) }} }} impl<'a> HasId for {}_<'a> {{ - fn append_ids(&self, _v: &mut Vec) {{", camel_name)?; + fn append_ids(&self, _v: &mut Vec) {{", + camel_name + )?; for a in attrs.iter().filter(|a| !a.derived) { if a.dupe { - writeln!(buf, " self.{}__{}.append_ids(_v);", - a.from.unwrap(), a.name)?; + writeln!( + buf, + " self.{}__{}.append_ids(_v);", + a.from.unwrap(), + a.name + )?; } else { writeln!(buf, " self.{}.append_ids(_v);", a.name)?; } } - writeln!(buf, " }} -}}")?; - }, + writeln!( + buf, + " }} +}}" + )?; + } Type::Primitive(_) => (), }; Ok(()) @@ -407,11 +488,11 @@ impl<'a> HasId for {}_<'a> {{ #[derive(Clone, Debug)] struct AttributeData<'a> { - name: &'a str, // already camel-case + name: &'a str, // already camel-case from: Option<&'a str>, // original class, or None type_: String, optional: bool, - dupe: bool, // inherited from different parents with the same name + dupe: bool, // inherited from different parents with the same name derived: bool, // marked whether this is a derived attribute } @@ -455,7 +536,9 @@ pub fn gen(s: &mut Syntax) -> Result { let mut keys: Vec<&str> = type_map.0.keys().cloned().collect(); keys.sort_unstable(); let mut buf = String::new(); - writeln!(&mut buf, "// Autogenerated file, do not hand-edit! + writeln!( + &mut buf, + "// Autogenerated file, do not hand-edit! use crate::{{ id::{{Id, HasId}}, parse::{{IResult, Logical, Derived, Parse, ParseFromChunks, nom_alt_err, @@ -470,17 +553,23 @@ use nom::{{ multi::{{many0}}, sequence::{{delimited, pair}}, }}; -use arrayvec::ArrayVec;")?; +use arrayvec::ArrayVec;" + )?; for k in &keys { type_map.0[k].write_type(k, &mut buf, &type_map)?; } - writeln!(&mut buf, "#[derive(Debug)] -pub enum Entity<'a> {{")?; + writeln!( + &mut buf, + "#[derive(Debug)] +pub enum Entity<'a> {{" + )?; for k in &keys { type_map.0[k].write_enum_variant(k, &mut buf)?; } - writeln!(&mut buf, r#" ComplexEntity(Vec>), + writeln!( + &mut buf, + r#" ComplexEntity(Vec>), _FailedToParse, _EmptySlot, }} @@ -490,35 +579,46 @@ impl<'a> ParseFromChunks<'a> for Entity<'a> {{ alt((alpha0, tag("_"))), many0(alt((alphanumeric1, tag("_")))), ))(strs[0])?; - match r {{"#)?; + match r {{"# + )?; for k in &keys { type_map.0[k].write_enum_match(k, &mut buf)?; } - writeln!(&mut buf, r#" "" => parse_complex_mapping(strs[0]), + writeln!( + &mut buf, + r#" "" => parse_complex_mapping(strs[0]), _ => nom_alt_err(r), }} }} }} pub fn superclasses_of(s: &str) -> &[&str] {{ - match s {{"#)?; + match s {{"# + )?; for k in &keys { type_map.0[k].write_supertypes(k, &mut buf)?; } - writeln!(&mut buf, " _ => &[], + writeln!( + &mut buf, + " _ => &[], }} }} impl<'a> Entity<'a> {{ pub fn upstream(&self) -> Vec {{ let mut out = Vec::new(); match self {{ -")?; +" + )?; for k in keys.iter().filter(|k| type_map.0[*k].is_entity()) { - writeln!(&mut buf, + writeln!( + &mut buf, " Entity::{}(c) => c.append_ids(&mut out),", - to_camel(k))?; + to_camel(k) + )?; } - writeln!(&mut buf, " Entity::ComplexEntity(v) => {{ + writeln!( + &mut buf, + " Entity::ComplexEntity(v) => {{ for e in v {{ out.extend(e.upstream().into_iter()); }} @@ -527,13 +627,16 @@ impl<'a> Entity<'a> {{ }}; out }} -}}")?; +}}" + )?; Ok(buf) } fn capitalize(s: &str) -> String { - s.chars().map(|c| c.to_uppercase().next().unwrap()).collect() + s.chars() + .map(|c| c.to_uppercase().next().unwrap()) + .collect() } // TODO: this is awkward; it would be cleaner to store lifetime separately @@ -596,8 +699,7 @@ impl<'a> SchemaBody<'a> { fn collect_entity_names(&self, entity_names: &mut HashSet<&'a str>) { for d in &self.declarations { match d { - DeclarationOrRuleDecl::Declaration(d) => - d.collect_entity_names(entity_names), + DeclarationOrRuleDecl::Declaration(d) => d.collect_entity_names(entity_names), DeclarationOrRuleDecl::RuleDecl(_) => (), } } @@ -605,8 +707,7 @@ impl<'a> SchemaBody<'a> { fn build_ref_map(&'a self, ref_map: &mut HashMap<&'a str, Ref<'a>>) { for d in &self.declarations { match d { - DeclarationOrRuleDecl::Declaration(d) => - d.build_ref_map(ref_map), + DeclarationOrRuleDecl::Declaration(d) => d.build_ref_map(ref_map), DeclarationOrRuleDecl::RuleDecl(_) => (), } } @@ -614,8 +715,7 @@ impl<'a> SchemaBody<'a> { fn disambiguate(&mut self, entity_names: &HashSet<&str>) { for d in &mut self.declarations { match d { - DeclarationOrRuleDecl::Declaration(d) => - d.disambiguate(entity_names), + DeclarationOrRuleDecl::Declaration(d) => d.disambiguate(entity_names), DeclarationOrRuleDecl::RuleDecl(_) => (), } } @@ -624,7 +724,7 @@ impl<'a> SchemaBody<'a> { impl<'a> Declaration<'a> { fn collect_entity_names(&self, entity_names: &mut HashSet<&'a str>) { if let Declaration::Entity(d) = self { - entity_names.insert(d.0.0.0); + entity_names.insert(d.0 .0 .0); } } fn disambiguate(&mut self, entity_names: &HashSet<&str>) { @@ -635,11 +735,11 @@ impl<'a> Declaration<'a> { fn build_ref_map(&'a self, ref_map: &mut HashMap<&'a str, Ref<'a>>) { match self { Declaration::Entity(d) => { - ref_map.insert(d.0.0.0, Ref::Entity(d)); - }, + ref_map.insert(d.0 .0 .0, Ref::Entity(d)); + } Declaration::Type(d) => { ref_map.insert(d.type_id.0, Ref::Type(&d.underlying_type)); - }, + } _ => (), } } @@ -649,7 +749,7 @@ impl<'a> TypeDecl<'a> { match &mut self.underlying_type { UnderlyingType::Constructed(c) => { c.disambiguate(entity_names); - }, + } _ => (), } } @@ -721,18 +821,22 @@ impl<'a> AggregationTypes<'a> { fn to_type(&self, type_map: &mut TypeMap<'a>) -> Type { let (optional, instantiable) = match self { AggregationTypes::Array(a) => (a.optional, &a.instantiable_type), - AggregationTypes::Bag(a) => (false, &a.1), + AggregationTypes::Bag(a) => (false, &a.1), AggregationTypes::List(a) => (false, &a.instantiable_type), AggregationTypes::Set(a) => (false, &a.instantiable_type), }; match &**instantiable { InstantiableType::Concrete(c) => { let type_ = c.to_type(type_map); - Type::Aggregation { optional, type_: Box::new(type_) } - }, - InstantiableType::EntityRef(e) => Type::Aggregation { - optional, type_: Box::new(Type::Redeclared(e.0)) + Type::Aggregation { + optional, + type_: Box::new(type_), + } } + InstantiableType::EntityRef(e) => Type::Aggregation { + optional, + type_: Box::new(Type::Redeclared(e.0)), + }, } } } @@ -746,10 +850,13 @@ impl<'a> ConstructedTypes<'a> { } impl<'a> EnumerationType<'a> { fn to_type(&self) -> Type { - assert!(!self.extensible, "Extensible enumerations are not supported"); + assert!( + !self.extensible, + "Extensible enumerations are not supported" + ); match self.items_or_extension.as_ref().unwrap() { EnumerationItemsOrExtension::Items(e) => e.to_type(), - _ => panic!("Extensions not supported") + _ => panic!("Extensions not supported"), } } } @@ -793,7 +900,7 @@ impl<'a> EntityDecl<'a> { AttributeDecl::Redeclared(r) => { // There can't be a RENAMED clause here assert!(r.1.is_none()); - derived.insert((r.0.0.0.0, r.0.1.0.0)); + derived.insert((r.0 .0 .0 .0, r.0 .1 .0 .0)); } AttributeDecl::Id(_) => continue, } @@ -806,7 +913,7 @@ impl<'a> EntityDecl<'a> { // Tag any inherited attribute names with > 1 occurence so we can // special-case them in the struct - let subsuper = &self.0.1; + let subsuper = &self.0 .1; let mut inherited_name_count: HashMap<&str, usize> = HashMap::new(); if let Some(subs) = &subsuper.1 { for sub in &subs.0 { @@ -815,7 +922,8 @@ impl<'a> EntityDecl<'a> { } } } - let inherited_names: HashSet<&str> = inherited_name_count.into_iter() + let inherited_names: HashSet<&str> = inherited_name_count + .into_iter() .filter(|a| a.1 > 1) .map(|a| a.0) .collect(); @@ -829,25 +937,27 @@ impl<'a> EntityDecl<'a> { // Import attributes from parent classes, patching the // `from` field to indicate that it's from a superclass - attrs.extend(type_map - .attributes(sub.0) - .into_iter() - .map(|mut a| { - if a.from.is_none() { - a.from = Some(sub.0); - } - // TODO: this falsely marks names as dupes if they've - // got a match with another attr that's _derived_ - // (which wouldn't actually be stored in the struct) - AttributeData { - dupe: inherited_names.contains(a.name), - derived: derived.contains(&(a.from.unwrap(), a.name)), - ..a - } - }) - // Skip values that have already been seen (if we have - // multiple inheritance from a common base class) - .filter(|a| seen.insert((a.from.unwrap(), a.name)))); + attrs.extend( + type_map + .attributes(sub.0) + .into_iter() + .map(|mut a| { + if a.from.is_none() { + a.from = Some(sub.0); + } + // TODO: this falsely marks names as dupes if they've + // got a match with another attr that's _derived_ + // (which wouldn't actually be stored in the struct) + AttributeData { + dupe: inherited_names.contains(a.name), + derived: derived.contains(&(a.from.unwrap(), a.name)), + ..a + } + }) + // Skip values that have already been seen (if we have + // multiple inheritance from a common base class) + .filter(|a| seen.insert((a.from.unwrap(), a.name))), + ); } } @@ -875,8 +985,7 @@ impl<'a> AttributeDecl<'a> { fn name(&self) -> &str { match self { AttributeDecl::Id(i) => i.0, - AttributeDecl::Redeclared(_) => - panic!("No support for renamed attributes"), + AttributeDecl::Redeclared(_) => panic!("No support for renamed attributes"), } } fn is_redeclared(&self) -> bool { @@ -889,14 +998,10 @@ impl<'a> AttributeDecl<'a> { impl<'a> GeneralizedTypes<'a> { fn to_attr_type_str(&'a self, type_map: &mut TypeMap<'a>) -> String { match self { - GeneralizedTypes::Aggregate(_) => - panic!("No support for aggregate type"), - GeneralizedTypes::GeneralAggregation(a) => - a.to_attr_type_str(type_map), - GeneralizedTypes::GenericEntity(_) => - panic!("No support for generic entity type"), - GeneralizedTypes::Generic(_) => - panic!("No support for generic generalized type"), + GeneralizedTypes::Aggregate(_) => panic!("No support for aggregate type"), + GeneralizedTypes::GeneralAggregation(a) => a.to_attr_type_str(type_map), + GeneralizedTypes::GenericEntity(_) => panic!("No support for generic entity type"), + GeneralizedTypes::Generic(_) => panic!("No support for generic generalized type"), } } } @@ -917,12 +1022,12 @@ impl<'a> GeneralAggregationTypes<'a> { GeneralAggregationTypes::List(a) => a.bounds.as_ref().map(|b| &b.1), GeneralAggregationTypes::Set(a) => a.bounds.as_ref().map(|b| &b.1), }; - upper.and_then(|v| v.0.0.to_value()) + upper.and_then(|v| v.0 .0.to_value()) } fn to_attr_type_str(&'a self, type_map: &mut TypeMap<'a>) -> String { let (optional, param_type) = match self { GeneralAggregationTypes::Array(a) => (a.optional, &a.parameter_type), - GeneralAggregationTypes::Bag(a) => (false, &a.1), + GeneralAggregationTypes::Bag(a) => (false, &a.1), GeneralAggregationTypes::List(a) => (false, &a.parameter_type), GeneralAggregationTypes::Set(a) => (false, &a.parameter_type), }; @@ -938,7 +1043,7 @@ impl<'a> GeneralAggregationTypes<'a> { } } } -impl <'a> SimpleTypes<'a> { +impl<'a> SimpleTypes<'a> { fn to_attr_type_str(&self) -> &str { match self { SimpleTypes::Binary(_) => "usize", @@ -978,9 +1083,9 @@ impl<'a> NamedTypes<'a> { fn disambiguate(&mut self, entity_names: &HashSet<&str>) { if let NamedTypes::_Ambiguous(r) = self { *self = if entity_names.contains(r.0) { - NamedTypes::Entity(EntityRef(r.0)) + NamedTypes::Entity(EntityRef(r.0)) } else { - NamedTypes::Type(TypeRef(r.0)) + NamedTypes::Type(TypeRef(r.0)) }; } } diff --git a/express/src/lib.rs b/express/src/lib.rs index 432b54a..2115388 100644 --- a/express/src/lib.rs +++ b/express/src/lib.rs @@ -1,2 +1,2 @@ -pub mod parse; pub mod gen; +pub mod parse; diff --git a/express/src/parse.rs b/express/src/parse.rs index e53aa95..62af870 100644 --- a/express/src/parse.rs +++ b/express/src/parse.rs @@ -1,25 +1,25 @@ use memchr::{memchr, memchr_iter}; use nom::{ - branch::{alt}, + branch::alt, character::complete::{alpha1, multispace0}, - combinator::{map, map_opt, recognize, opt, not, peek}, + combinator::{map, map_opt, not, opt, peek, recognize}, error::*, - multi::{fold_many1, fold_many0, many0_count, separated_list0, separated_list1, many0, many1}, - sequence::{delimited, pair, preceded, tuple, terminated}, + multi::{fold_many0, fold_many1, many0, many0_count, many1, separated_list0, separated_list1}, + sequence::{delimited, pair, preceded, terminated, tuple}, }; pub type IResult<'a, U> = nom::IResult<&'a str, U, nom::error::VerboseError<&'a str>>; fn build_err<'a, U>(s: &'a str, msg: &'static str) -> IResult<'a, U> { - Err(nom::Err::Error( - VerboseError { - errors: vec![(s, VerboseErrorKind::Context(msg))] - })) + Err(nom::Err::Error(VerboseError { + errors: vec![(s, VerboseErrorKind::Context(msg))], + })) } /// Returns a parser which runs `p` then consumes all whitespace fn ws<'a, U, F>(p: F) -> impl FnMut(&'a str) -> IResult<'a, U> - where F: FnMut(&'a str) -> IResult<'a, U> +where + F: FnMut(&'a str) -> IResult<'a, U>, { terminated(p, multispace0) } @@ -38,27 +38,32 @@ fn tag<'a>(s: &'a str) -> impl FnMut(&'a str) -> IResult<&'a str> { /// a letter. This avoids cases like `generic_expression` being parsed as /// `generic`, `_expression`. fn kw<'a>(s: &'a str) -> impl FnMut(&'a str) -> IResult<&'a str> { - ws(terminated(nom::bytes::complete::tag(s), - not(alt((letter, digit, char('_')))))) + ws(terminated( + nom::bytes::complete::tag(s), + not(alt((letter, digit, char('_')))), + )) } /// Returns a parser which recognizes '(' p ')' with optional whitespace fn parens<'a, U, F>(p: F) -> impl FnMut(&'a str) -> IResult<'a, U> - where F: FnMut(&'a str) -> IResult<'a, U> +where + F: FnMut(&'a str) -> IResult<'a, U>, { delimited(char('('), ws(p), char(')')) } /// Returns a parser for zero or more items p, delimited by c with whitespace fn list0<'a, U, F>(c: char, p: F) -> impl FnMut(&'a str) -> IResult<'a, Vec> - where F: FnMut(&'a str) -> IResult<'a, U> +where + F: FnMut(&'a str) -> IResult<'a, U>, { separated_list0(char(c), ws(p)) } /// Returns a parser for zero or more items p, delimited by c with whitespace fn list1<'a, U, F>(c: char, p: F) -> impl FnMut(&'a str) -> IResult<'a, Vec> - where F: FnMut(&'a str) -> IResult<'a, U> +where + F: FnMut(&'a str) -> IResult<'a, U>, { separated_list1(char(c), ws(p)) } @@ -100,10 +105,9 @@ macro_rules! id_type { ($a:ident) => { #[derive(Copy, Clone, Debug, Hash, Eq, PartialEq)] pub struct $a<'a>(pub &'a str); - } + }; } - /// Remove comments from an EXPRESS file and converts to lower-case. This /// should be run before any parsers. pub fn strip_comments_and_lower(data: &[u8]) -> String { @@ -119,13 +123,13 @@ pub fn strip_comments_and_lower(data: &[u8]) -> String { break; } } - }, + } // Single-line comments b'-' if i + 1 < data.len() && data[i + 1] == b'-' => { let newline = memchr(b'\n', &data[i + 2..]); i += newline.unwrap_or(0) + 2; - }, - c => out.push(c.to_ascii_lowercase() as char) + } + c => out.push(c.to_ascii_lowercase() as char), } i += 1; } @@ -149,9 +153,9 @@ fn digit(s: &str) -> IResult { // 126 fn encoded_character(s: &str) -> IResult { - map(recognize(tuple((octet, octet, octet, octet))), - |v| std::char::from_u32(u32::from_str_radix(v, 16).unwrap()).unwrap()) - (s) + map(recognize(tuple((octet, octet, octet, octet))), |v| { + std::char::from_u32(u32::from_str_radix(v, 16).unwrap()).unwrap() + })(s) } // 127 @@ -171,8 +175,12 @@ fn not_paren_star_quote_special(s: &str) -> IResult { // 134 fn not_quote(s: &str) -> IResult { - alt((not_paren_star_quote_special, letter, digit, - nom::character::complete::one_of("()*")))(s) + alt(( + not_paren_star_quote_special, + letter, + digit, + nom::character::complete::one_of("()*"), + ))(s) } // 136 @@ -182,8 +190,9 @@ fn octet(s: &str) -> IResult<&str> { // 139 fn binary_literal(s: &str) -> IResult { - let bits = fold_many1(alt((char('0'), char('1'))), 0, - |acc, item| acc * 2 + item.to_digit(10).unwrap() as usize); + let bits = fold_many1(alt((char('0'), char('1'))), 0, |acc, item| { + acc * 2 + item.to_digit(10).unwrap() as usize + }); preceded(char('%'), bits)(s) } @@ -191,9 +200,16 @@ fn binary_literal(s: &str) -> IResult { fn encoded_string_literal(s: &str) -> IResult { delimited( char('"'), - fold_many0(encoded_character, String::new(), - |mut s: String, c: char| { s.push(c); s }), - char('"'))(s) + fold_many0( + encoded_character, + String::new(), + |mut s: String, c: char| { + s.push(c); + s + }, + ), + char('"'), + )(s) } // 141 integer_literal = digits . @@ -215,51 +231,150 @@ fn real_literal(s: &str) -> IResult { pub struct SimpleId<'a>(pub &'a str); impl<'a> SimpleId<'a> { fn parse(s: &'a str) -> IResult { - let r = ws(map(pair( - letter, - many0_count(alt((letter, digit, char('_'))))), - |(_c, i)| SimpleId(&s[..(i + 1)])))(s)?; + let r = ws(map( + pair(letter, many0_count(alt((letter, digit, char('_'))))), + |(_c, i)| SimpleId(&s[..(i + 1)]), + ))(s)?; // Refuse to match language keywords - match r.1.0 { - "abs" | "abstract" | "acos" | "aggregate" | "alias" | "and" | - "andor" | "array" | "as" | "asin" | "atan" | "bag" | "based_on" | - "begin" | "binary" | "blength" | "boolean" | "by" | "case" | - "const_e" | "constant" | "cos" | "derive" | "div" | "else" | - "end" | "end_case" | "end_constant" | "end_entity" | - "end_function" | "end_if" | "end_local" | "end_procedure" | - "end_repeat" | "end_rule" | "end_schema" | - "end_subtype_constraint escape" | "end_type" | "entity" | - "enumeration" | "exists" | "exp" | "extensible" | "false" | - "fixed" | "for" | "format" | "from" | "function" | "generic" | - "generic_entity list" | "hibound" | "hiindex" | "if" | "in" | - "integer" | "inverse" | "length" | "like" | "lobound" | "local" | - "log" | "log10" | "log2" | "logical" | "loindex" | "mod" | "not" | - "number" | "nvl" | "odd" | "of" | "oneof" | "optional" | "or" | - "otherwise" | "pi" | "procedure reference schema" | "query" | - "real" | "renamed" | "repeat" | "return" | "rolesof" | "rule" | - "select" | "self" | "set" | "sin" | "sizeof" | "skip" | "sqrt" | - "string" | "subtype" | "subtype_constraint" | "supertype" | "tan" | - "then" | "to" | "total_over" | "true" | "type" | "unique" | - "unknown" | "until" | "use" | "usedin" | "value" | "value_in" | - "value_unique" | "var" | "where" | "while" | "with" | "xor" - => build_err(s, "keyword"), - _ => Ok(r) + match r.1 .0 { + "abs" + | "abstract" + | "acos" + | "aggregate" + | "alias" + | "and" + | "andor" + | "array" + | "as" + | "asin" + | "atan" + | "bag" + | "based_on" + | "begin" + | "binary" + | "blength" + | "boolean" + | "by" + | "case" + | "const_e" + | "constant" + | "cos" + | "derive" + | "div" + | "else" + | "end" + | "end_case" + | "end_constant" + | "end_entity" + | "end_function" + | "end_if" + | "end_local" + | "end_procedure" + | "end_repeat" + | "end_rule" + | "end_schema" + | "end_subtype_constraint escape" + | "end_type" + | "entity" + | "enumeration" + | "exists" + | "exp" + | "extensible" + | "false" + | "fixed" + | "for" + | "format" + | "from" + | "function" + | "generic" + | "generic_entity list" + | "hibound" + | "hiindex" + | "if" + | "in" + | "integer" + | "inverse" + | "length" + | "like" + | "lobound" + | "local" + | "log" + | "log10" + | "log2" + | "logical" + | "loindex" + | "mod" + | "not" + | "number" + | "nvl" + | "odd" + | "of" + | "oneof" + | "optional" + | "or" + | "otherwise" + | "pi" + | "procedure reference schema" + | "query" + | "real" + | "renamed" + | "repeat" + | "return" + | "rolesof" + | "rule" + | "select" + | "self" + | "set" + | "sin" + | "sizeof" + | "skip" + | "sqrt" + | "string" + | "subtype" + | "subtype_constraint" + | "supertype" + | "tan" + | "then" + | "to" + | "total_over" + | "true" + | "type" + | "unique" + | "unknown" + | "until" + | "use" + | "usedin" + | "value" + | "value_in" + | "value_unique" + | "var" + | "where" + | "while" + | "with" + | "xor" => build_err(s, "keyword"), + _ => Ok(r), } } } -fn simple_id(s: &str) -> IResult { SimpleId::parse(s) } +fn simple_id(s: &str) -> IResult { + SimpleId::parse(s) +} // 144 simple_string_literal = \q { ( \q \q ) | not_quote | \s | \x9 | \xA | \xD } \q . fn simple_string_literal(s: &str) -> IResult { let f = alt(( map(tag("''"), |_| '\''), not_quote, - nom::character::complete::one_of(" \t\n\r") + nom::character::complete::one_of(" \t\n\r"), )); delimited( - char('\''), - fold_many0(f, String::new(), |mut s, c| { s.push(c); s }), - char('\''))(s) + char('\''), + fold_many0(f, String::new(), |mut s, c| { + s.push(c); + s + }), + char('\''), + )(s) } // 145-149 (remarks) are parsed beforehand @@ -287,22 +402,17 @@ fn abstract_entity_declaration(s: &str) -> IResult<()> { // 165 abstract_supertype = ABSTRACT SUPERTYPE ’;’ . fn abstract_supertype(s: &str) -> IResult<()> { - map(tuple(( - kw("abstract"), - kw("supertype"), - char(';') - )), |_| ())(s) + map(tuple((kw("abstract"), kw("supertype"), char(';'))), |_| ())(s) } // 166 abstract_supertype_declaration = ABSTRACT SUPERTYPE [ subtype_constraint ] . #[derive(Debug)] pub struct AbstractSupertypeDeclaration<'a>(Option>); fn abstract_supertype_declaration(s: &str) -> IResult { - map(tuple(( - kw("abstract"), - kw("supertype"), - opt(subtype_constraint), - )), |(_, _, a)| AbstractSupertypeDeclaration(a))(s) + map( + tuple((kw("abstract"), kw("supertype"), opt(subtype_constraint))), + |(_, _, a)| AbstractSupertypeDeclaration(a), + )(s) } // 167 actual_parameter_list = ’(’ parameter { ’,’ parameter } ’)’ . @@ -314,13 +424,18 @@ fn actual_parameter_list(s: &str) -> IResult { // 168 #[derive(Debug)] -pub enum AddLikeOp { Add, Sub, Or, Xor } +pub enum AddLikeOp { + Add, + Sub, + Or, + Xor, +} fn add_like_op(s: &str) -> IResult { use AddLikeOp::*; alt(( - map(char('+'), |_| Add), - map(char('-'), |_| Sub), - map(kw("or"), |_| Or), + map(char('+'), |_| Add), + map(char('-'), |_| Sub), + map(kw("or"), |_| Or), map(kw("xor"), |_| Xor), ))(s) } @@ -329,11 +444,10 @@ fn add_like_op(s: &str) -> IResult { #[derive(Debug)] pub struct AggregateInitializer<'a>(Vec>); fn aggregate_initializer(s: &str) -> IResult { - map(delimited( - char('['), - list0(',', element), - char(']')), - AggregateInitializer)(s) + map( + delimited(char('['), list0(',', element), char(']')), + AggregateInitializer, + )(s) } // 170 @@ -343,12 +457,15 @@ alias!(AggregateSource<'a>, SimpleExpression, aggregate_source); #[derive(Debug)] pub struct AggregateType<'a>(Option>, Box>); fn aggregate_type(s: &str) -> IResult { - map(tuple(( - kw("aggregate"), - opt(preceded(char(':'), type_label)), - kw("of"), - parameter_type, - )), |(_, t, _, p)| AggregateType(t, Box::new(p)))(s) + map( + tuple(( + kw("aggregate"), + opt(preceded(char(':'), type_label)), + kw("of"), + parameter_type, + )), + |(_, t, _, p)| AggregateType(t, Box::new(p)), + )(s) } // 172 @@ -377,15 +494,14 @@ pub struct AlgorithmHead<'a> { pub local: Option>, } fn algorithm_head(s: &str) -> IResult { - map(tuple(( - many0(declaration), - opt(constant_decl), - opt(local_decl), - )), |(d, c, l)| AlgorithmHead { - declaration: d, - constant: c, - local: l - })(s) + map( + tuple((many0(declaration), opt(constant_decl), opt(local_decl))), + |(d, c, l)| AlgorithmHead { + declaration: d, + constant: c, + local: l, + }, + )(s) } // 174 alias_stmt = ALIAS variable_id FOR general_ref { qualifier } ’;’ stmt { stmt } @@ -398,20 +514,23 @@ pub struct AliasStmt<'a> { pub stmts: Vec>, } fn alias_stmt(s: &str) -> IResult { - map(tuple(( - kw("alias"), - variable_id, - kw("for"), - general_ref, - many0(qualifier), - char(';'), - many0(stmt), - )), |(_, v, _, g, q, _, s)| AliasStmt { - variable: v, - general: g, - qualifiers: q, - stmts: s, - })(s) + map( + tuple(( + kw("alias"), + variable_id, + kw("for"), + general_ref, + many0(qualifier), + char(';'), + many0(stmt), + )), + |(_, v, _, g, q, _, s)| AliasStmt { + variable: v, + general: g, + qualifiers: q, + stmts: s, + }, + )(s) } // 175 @@ -423,20 +542,22 @@ pub struct ArrayType<'a> { pub instantiable_type: Box>, } fn array_type(s: &str) -> IResult { - map(tuple(( - kw("array"), - bound_spec, - kw("of"), - opt(kw("optional")), - opt(kw("unique")), - instantiable_type, - )), - |(_, b, _, opt, uniq, t)| ArrayType { - bounds: b, - optional: opt.is_some(), - unique: uniq.is_some(), - instantiable_type: Box::new(t), - })(s) + map( + tuple(( + kw("array"), + bound_spec, + kw("of"), + opt(kw("optional")), + opt(kw("unique")), + instantiable_type, + )), + |(_, b, _, opt, uniq, t)| ArrayType { + bounds: b, + optional: opt.is_some(), + unique: uniq.is_some(), + instantiable_type: Box::new(t), + }, + )(s) } // 176 assignment_stmt = general_ref { qualifier } ’:=’ expression ’;’ . @@ -447,17 +568,20 @@ pub struct AssignmentStmt<'a> { pub expression: Expression<'a>, } fn assignment_stmt(s: &str) -> IResult { - map(tuple(( - general_ref, - many0(qualifier), - tag(":="), - expression, - char(';'), - )), |(g, q, _, e, _)| AssignmentStmt { - general_ref: g, - qualifiers: q, - expression: e, - })(s) + map( + tuple(( + general_ref, + many0(qualifier), + tag(":="), + expression, + char(';'), + )), + |(g, q, _, e, _)| AssignmentStmt { + general_ref: g, + qualifiers: q, + expression: e, + }, + )(s) } // 177 attribute_decl = attribute_id | redeclared_attribute . @@ -468,10 +592,7 @@ pub enum AttributeDecl<'a> { } fn attribute_decl(s: &str) -> IResult { use AttributeDecl::*; - alt(( - map(attribute_id, Id), - map(redeclared_attribute, Redeclared), - ))(s) + alt((map(attribute_id, Id), map(redeclared_attribute, Redeclared)))(s) } // 178 @@ -488,13 +609,10 @@ fn attribute_qualifier(s: &str) -> IResult { #[derive(Debug)] pub struct BagType<'a>(Option>, pub Box>); fn bag_type(s: &str) -> IResult { - map(tuple(( - kw("bag"), - opt(bound_spec), - kw("of"), - instantiable_type - )), |(_, b, _, t)| BagType(b, Box::new(t))) - (s) + map( + tuple((kw("bag"), opt(bound_spec), kw("of"), instantiable_type)), + |(_, b, _, t)| BagType(b, Box::new(t)), + )(s) } // 181 binary_type = BINARY [ width_spec ] . @@ -519,34 +637,62 @@ alias!(Bound2<'a>, NumericExpression, bound_2); #[derive(Debug)] pub struct BoundSpec<'a>(Bound1<'a>, pub Bound2<'a>); fn bound_spec(s: &str) -> IResult { - map(tuple(( - char('['), - bound_1, - char(':'), - bound_2, - char(']'), - )), |(_, b1, _, b2, _)| BoundSpec(b1, b2))(s) + map( + tuple((char('['), bound_1, char(':'), bound_2, char(']'))), + |(_, b1, _, b2, _)| BoundSpec(b1, b2), + )(s) } // 186 #[derive(Debug)] -pub enum BuiltInConstant { ConstE, Pi, Self_, Indeterminant } +pub enum BuiltInConstant { + ConstE, + Pi, + Self_, + Indeterminant, +} fn built_in_constant(s: &str) -> IResult { use BuiltInConstant::*; alt(( map(kw("const_e"), |_| ConstE), - map(kw("pi"), |_| Pi), - map(kw("self"), |_| Self_), - map(char('?'), |_| Indeterminant), + map(kw("pi"), |_| Pi), + map(kw("self"), |_| Self_), + map(char('?'), |_| Indeterminant), ))(s) } // 187 #[derive(Debug)] pub enum BuiltInFunction { - Abs, Acos, Asin, Atan, Blength, Cos, Exists, Exp, Format, Hibound, HiIndex, - Length, LoBound, LoIndex, Log, Log2, Log10, Nvl, Odd, RolesOf, Sin, SizeOf, - Sqrt, Tan, Typeof, Usedin, Value, ValueIn, ValueUnique + Abs, + Acos, + Asin, + Atan, + Blength, + Cos, + Exists, + Exp, + Format, + Hibound, + HiIndex, + Length, + LoBound, + LoIndex, + Log, + Log2, + Log10, + Nvl, + Odd, + RolesOf, + Sin, + SizeOf, + Sqrt, + Tan, + Typeof, + Usedin, + Value, + ValueIn, + ValueUnique, } fn to_built_in_function(s: &str) -> Option { use BuiltInFunction::*; @@ -592,24 +738,23 @@ fn built_in_function(s: &str) -> IResult { // 188 built_in_procedure = INSERT | REMOVE . #[derive(Debug)] -pub enum BuiltInProcedure { Insert, Remove } +pub enum BuiltInProcedure { + Insert, + Remove, +} fn built_in_procedure(s: &str) -> IResult { use BuiltInProcedure::*; - alt(( - map(kw("insert"), |_| Insert), - map(kw("remove"), |_| Remove), - ))(s) + alt((map(kw("insert"), |_| Insert), map(kw("remove"), |_| Remove)))(s) } // 189 case_action = case_label { ’,’ case_label } ’:’ stmt . #[derive(Debug)] pub struct CaseAction<'a>(Vec>, Stmt<'a>); fn case_action(s: &str) -> IResult { - map(tuple(( - list1(',', case_label), - char(':'), - stmt, - )), |(a, _, b)| CaseAction(a, b))(s) + map( + tuple((list1(',', case_label), char(':'), stmt)), + |(a, _, b)| CaseAction(a, b), + )(s) } // 190 case_label = expression . @@ -624,33 +769,35 @@ pub struct CaseStmt<'a> { pub otherwise: Option>>, } fn case_stmt(s: &str) -> IResult { - map(tuple(( - kw("case"), - selector, - kw("of"), - many0(case_action), - opt(map(tuple(( - kw("otherwise"), - char(':'), - stmt)), |(_, _, s)| s)), - kw("end_case"), - char(';'))), + map( + tuple(( + kw("case"), + selector, + kw("of"), + many0(case_action), + opt(map( + tuple((kw("otherwise"), char(':'), stmt)), + |(_, _, s)| s, + )), + kw("end_case"), + char(';'), + )), |(_, s, _, a, t, _, _)| CaseStmt { selector: s, actions: a, otherwise: t.map(Box::new), - })(s) + }, + )(s) } // 192 compound_stmt = BEGIN stmt { stmt } END ’;’ . #[derive(Debug)] pub struct CompoundStmt<'a>(Vec>); fn compound_stmt(s: &str) -> IResult { - map(delimited( - kw("begin"), - many1(stmt), - pair(kw("end"), char(';'))), - CompoundStmt)(s) + map( + delimited(kw("begin"), many1(stmt), pair(kw("end"), char(';'))), + CompoundStmt, + )(s) } // 193 @@ -677,30 +824,36 @@ pub struct ConstantBody<'a> { pub expression: Expression<'a>, } fn constant_body(s: &str) -> IResult { - map(tuple(( - constant_id, - char(':'), - instantiable_type, - tag(":="), - expression, - char(';') - )), |(a, _, t, _, e, _)| ConstantBody { - constant_id: a, - instantiable_type: t, - expression: e, - })(s) + map( + tuple(( + constant_id, + char(':'), + instantiable_type, + tag(":="), + expression, + char(';'), + )), + |(a, _, t, _, e, _)| ConstantBody { + constant_id: a, + instantiable_type: t, + expression: e, + }, + )(s) } // 195 #[derive(Debug)] pub struct ConstantDecl<'a>(Vec>); fn constant_decl(s: &str) -> IResult { - map(tuple(( - kw("constant"), - many1(constant_body), - kw("end_constant"), - char(';'), - )), |(_, b, _, _)| ConstantDecl(b))(s) + map( + tuple(( + kw("constant"), + many1(constant_body), + kw("end_constant"), + char(';'), + )), + |(_, b, _, _)| ConstantDecl(b), + )(s) } // 196 constant_factor = built_in_constant | constant_ref . @@ -728,10 +881,7 @@ pub enum ConstructedTypes<'a> { } fn constructed_types(s: &str) -> IResult { use ConstructedTypes::*; - alt(( - map(enumeration_type, Enumeration), - map(select_type, Select), - ))(s) + alt((map(enumeration_type, Enumeration), map(select_type, Select)))(s) } // 199 declaration = entity_decl | function_decl | procedure_decl | @@ -757,18 +907,19 @@ fn declaration(s: &str) -> IResult { // 200 derived_attr = attribute_decl ’:’ parameter_type ’:=’ expression ’;’ . #[derive(Debug)] -pub struct DerivedAttr<'a>(pub AttributeDecl<'a>, - ParameterType<'a>, - Expression<'a>); +pub struct DerivedAttr<'a>(pub AttributeDecl<'a>, ParameterType<'a>, Expression<'a>); fn derived_attr(s: &str) -> IResult { - map(tuple(( - attribute_decl, - char(':'), - parameter_type, - tag(":="), - expression, - char(';'), - )), |(a, _, b, _, e, _)| DerivedAttr(a, b, e))(s) + map( + tuple(( + attribute_decl, + char(':'), + parameter_type, + tag(":="), + expression, + char(';'), + )), + |(a, _, b, _, e, _)| DerivedAttr(a, b, e), + )(s) } // 201 derive_clause = DERIVE derived_attr { derived_attr } . @@ -787,15 +938,23 @@ pub struct DomainRule<'a> { fn domain_rule(s: &str) -> IResult { let (s, rule_label_id) = opt(terminated(rule_label_id, char(':')))(s)?; let (s, expression) = expression(s)?; - Ok((s, DomainRule { rule_label_id, expression })) + Ok(( + s, + DomainRule { + rule_label_id, + expression, + }, + )) } // 203 #[derive(Debug)] pub struct Element<'a>(Expression<'a>, Option>); fn element(s: &str) -> IResult { - map(pair(expression, opt(preceded(char(':'), repetition))), - |(a, b)| Element(a, b))(s) + map( + pair(expression, opt(preceded(char(':'), repetition))), + |(a, b)| Element(a, b), + )(s) } // 204 entity_body = { explicit_attr } [ derive_clause ] [ inverse_clause ] @@ -814,7 +973,16 @@ fn entity_body(s: &str) -> IResult { let (s, inverse) = opt(inverse_clause)(s)?; let (s, unique) = opt(unique_clause)(s)?; let (s, where_) = opt(where_clause)(s)?; - Ok((s, EntityBody { explicit_attr, derive, inverse, unique, where_ })) + Ok(( + s, + EntityBody { + explicit_attr, + derive, + inverse, + unique, + where_, + }, + )) } // 205 entity_constructor = entity_ref ’(’ [ expression { ’,’ expression } ] ’)’ . @@ -841,12 +1009,10 @@ fn entity_decl(s: &str) -> IResult { #[derive(Debug)] pub struct EntityHead<'a>(pub EntityId<'a>, pub Subsuper<'a>); fn entity_head(s: &str) -> IResult { - map(tuple(( - kw("entity"), - entity_id, - subsuper, - char(';'), - )), |(_, a, b, _)| EntityHead(a, b))(s) + map( + tuple((kw("entity"), entity_id, subsuper, char(';'))), + |(_, a, b, _)| EntityHead(a, b), + )(s) } // 208 @@ -859,10 +1025,16 @@ pub struct EnumerationExtension<'a> { pub enumeration_items: Option>, } fn enumeration_extension(s: &str) -> IResult { - map(preceded( - kw("based_on"), - pair(type_ref, opt(preceded(kw("with"), enumeration_items)))), - |(a, b)| EnumerationExtension { type_ref: a, enumeration_items: b })(s) + map( + preceded( + kw("based_on"), + pair(type_ref, opt(preceded(kw("with"), enumeration_items))), + ), + |(a, b)| EnumerationExtension { + type_ref: a, + enumeration_items: b, + }, + )(s) } // 210 @@ -879,10 +1051,10 @@ fn enumeration_items(s: &str) -> IResult { #[derive(Debug)] pub struct EnumerationReference<'a>(Option>, EnumerationRef<'a>); fn enumeration_reference(s: &str) -> IResult { - map(tuple(( - opt(terminated(type_ref, char('.'))), - enumeration_ref - )), |(a, b)| EnumerationReference(a, b))(s) + map( + tuple((opt(terminated(type_ref, char('.'))), enumeration_ref)), + |(a, b)| EnumerationReference(a, b), + )(s) } // 213 @@ -894,20 +1066,29 @@ pub enum EnumerationItemsOrExtension<'a> { #[derive(Debug)] pub struct EnumerationType<'a> { pub extensible: bool, - pub items_or_extension: Option> + pub items_or_extension: Option>, } fn enumeration_type(s: &str) -> IResult { - map(tuple(( - opt(kw("extensible")), - kw("enumeration"), - opt(alt(( - map(preceded(kw("of"), enumeration_items), - EnumerationItemsOrExtension::Items), - map(enumeration_extension, - EnumerationItemsOrExtension::Extension)))) - )), |(e, _, p)| EnumerationType { - extensible: e.is_some(), - items_or_extension: p })(s) + map( + tuple(( + opt(kw("extensible")), + kw("enumeration"), + opt(alt(( + map( + preceded(kw("of"), enumeration_items), + EnumerationItemsOrExtension::Items, + ), + map( + enumeration_extension, + EnumerationItemsOrExtension::Extension, + ), + ))), + )), + |(e, _, p)| EnumerationType { + extensible: e.is_some(), + items_or_extension: p, + }, + )(s) } // 214 escape_stmt = ESCAPE ’;’ . @@ -924,22 +1105,28 @@ pub struct ExplicitAttr<'a> { pub parameter_type: ParameterType<'a>, } fn explicit_attr(s: &str) -> IResult { - map(tuple(( - list1(',', attribute_decl), - char(':'), - opt(kw("optional")), - parameter_type, - char(';'), - )), |(a, _, o, t, _)| ExplicitAttr { - attributes: a, - optional: o.is_some(), - parameter_type: t, - })(s) + map( + tuple(( + list1(',', attribute_decl), + char(':'), + opt(kw("optional")), + parameter_type, + char(';'), + )), + |(a, _, o, t, _)| ExplicitAttr { + attributes: a, + optional: o.is_some(), + parameter_type: t, + }, + )(s) } // 216 expression = simple_expression [ rel_op_extended simple_expression ] . #[derive(Debug)] -pub struct Expression<'a>(SimpleExpression<'a>, Option<(RelOpExtended, SimpleExpression<'a>)>); +pub struct Expression<'a>( + SimpleExpression<'a>, + Option<(RelOpExtended, SimpleExpression<'a>)>, +); impl<'a> Expression<'a> { fn parse(s: &'a str) -> IResult { let (s, a) = simple_expression(s)?; @@ -947,25 +1134,28 @@ impl<'a> Expression<'a> { Ok((s, Self(a, b))) } } -fn expression(s: &str) -> IResult { Expression::parse(s) } +fn expression(s: &str) -> IResult { + Expression::parse(s) +} // 217 factor = simple_factor [ ’**’ simple_factor ] . #[derive(Debug)] pub struct Factor<'a>(pub SimpleFactor<'a>, pub Option>); fn factor(s: &str) -> IResult { - map(pair(simple_factor, opt(preceded(tag("**"), simple_factor))), - |(a, b)| Factor(a, b))(s) + map( + pair(simple_factor, opt(preceded(tag("**"), simple_factor))), + |(a, b)| Factor(a, b), + )(s) } // 218 formal_parameter = parameter_id { ’,’ parameter_id } ’:’ parameter_type . #[derive(Debug)] pub struct FormalParameter<'a>(Vec>, ParameterType<'a>); fn formal_parameter(s: &str) -> IResult { - map(tuple(( - list1(',', parameter_id), - char(':'), - parameter_type - )), |(a, _, b)| FormalParameter(a, b))(s) + map( + tuple((list1(',', parameter_id), char(':'), parameter_type)), + |(a, _, b)| FormalParameter(a, b), + )(s) } // 219 function_call = ( built_in_function | function_ref ) [ actual_parameter_list ] . @@ -977,11 +1167,16 @@ pub enum BuiltInOrFunctionRef<'a> { #[derive(Debug)] pub struct FunctionCall<'a>(BuiltInOrFunctionRef<'a>, ActualParameterList<'a>); fn function_call(s: &str) -> IResult { - map(pair( - alt((map(built_in_function, BuiltInOrFunctionRef::BuiltIn), - map(function_ref, BuiltInOrFunctionRef::Ref))), - actual_parameter_list), - |(a, b)| FunctionCall(a, b))(s) + map( + pair( + alt(( + map(built_in_function, BuiltInOrFunctionRef::BuiltIn), + map(function_ref, BuiltInOrFunctionRef::Ref), + )), + actual_parameter_list, + ), + |(a, b)| FunctionCall(a, b), + )(s) } // 220 function_decl = function_head algorithm_head stmt { stmt } END_FUNCTION ’;’ . #[derive(Debug)] @@ -991,17 +1186,20 @@ pub struct FunctionDecl<'a> { pub stmts: Vec>, } fn function_decl(s: &str) -> IResult { - map(tuple(( - function_head, - algorithm_head, - many1(stmt), - kw("end_function"), - char(';'), - )), |(a, b, c, _, _)| FunctionDecl { - function_head: a, - algorithm_head: b, - stmts: c, - })(s) + map( + tuple(( + function_head, + algorithm_head, + many1(stmt), + kw("end_function"), + char(';'), + )), + |(a, b, c, _, _)| FunctionDecl { + function_head: a, + algorithm_head: b, + stmts: c, + }, + )(s) } // 221 function_head = FUNCTION function_id [ ’(’ formal_parameter @@ -1013,18 +1211,21 @@ pub struct FunctionHead<'a> { pub out: ParameterType<'a>, } fn function_head(s: &str) -> IResult { - map(tuple(( - kw("function"), - function_id, - opt(parens(list1(';', formal_parameter))), - char(':'), - parameter_type, - char(';'), - )), |(_, i, a, _, p, _)| FunctionHead { - id: i, - params: a, - out: p, - })(s) + map( + tuple(( + kw("function"), + function_id, + opt(parens(list1(';', formal_parameter))), + char(':'), + parameter_type, + char(';'), + )), + |(_, i, a, _, p, _)| FunctionHead { + id: i, + params: a, + out: p, + }, + )(s) } // 222 @@ -1078,34 +1279,32 @@ pub struct GeneralArrayType<'a> { pub parameter_type: Box>, } fn general_array_type(s: &str) -> IResult { - map(tuple(( - kw("array"), - bound_spec, - kw("of"), - opt(kw("optional")), - opt(kw("unique")), - parameter_type, - )), - |(_, b, _, opt, uniq, t)| GeneralArrayType { - bounds: b, - optional: opt.is_some(), - unique: uniq.is_some(), - parameter_type: Box::new(t), - })(s) + map( + tuple(( + kw("array"), + bound_spec, + kw("of"), + opt(kw("optional")), + opt(kw("unique")), + parameter_type, + )), + |(_, b, _, opt, uniq, t)| GeneralArrayType { + bounds: b, + optional: opt.is_some(), + unique: uniq.is_some(), + parameter_type: Box::new(t), + }, + )(s) } // 226 general_bag_type = BAG [ bound_spec ] OF parameter_type . #[derive(Debug)] -pub struct GeneralBagType<'a>(pub Option>, - pub Box>); +pub struct GeneralBagType<'a>(pub Option>, pub Box>); fn general_bag_type(s: &str) -> IResult { - map(tuple(( - kw("bag"), - opt(bound_spec), - kw("of"), - parameter_type - )), |(_, b, _, t)| GeneralBagType(b, Box::new(t))) - (s) + map( + tuple((kw("bag"), opt(bound_spec), kw("of"), parameter_type)), + |(_, b, _, t)| GeneralBagType(b, Box::new(t)), + )(s) } // 227 general_list_type = LIST [ bound_spec ] OF [ UNIQUE ] parameter_type . @@ -1116,18 +1315,20 @@ pub struct GeneralListType<'a> { pub parameter_type: Box>, } fn general_list_type(s: &str) -> IResult { - map(tuple(( - kw("list"), - opt(bound_spec), - kw("of"), - opt(kw("unique")), - parameter_type, - )), - |(_, b, _, uniq, t)| GeneralListType { - bounds: b, - unique: uniq.is_some(), - parameter_type: Box::new(t), - })(s) + map( + tuple(( + kw("list"), + opt(bound_spec), + kw("of"), + opt(kw("unique")), + parameter_type, + )), + |(_, b, _, uniq, t)| GeneralListType { + bounds: b, + unique: uniq.is_some(), + parameter_type: Box::new(t), + }, + )(s) } // 228 general_ref = parameter_ref | variable_ref . @@ -1148,34 +1349,33 @@ pub struct GeneralSetType<'a> { pub parameter_type: Box>, } fn general_set_type(s: &str) -> IResult { - map(tuple(( - kw("set"), - opt(bound_spec), - kw("of"), - parameter_type, - )), - |(_, b, _, t)| GeneralSetType { - bounds: b, - parameter_type: Box::new(t), - })(s) + map( + tuple((kw("set"), opt(bound_spec), kw("of"), parameter_type)), + |(_, b, _, t)| GeneralSetType { + bounds: b, + parameter_type: Box::new(t), + }, + )(s) } // 230 generic_entity_type = GENERIC_ENTITY [ ’:’ type_label ] . #[derive(Debug)] pub struct GenericEntityType<'a>(Option>); fn generic_entity_type(s: &str) -> IResult { - map(preceded(kw("generic_entity"), - opt(preceded(char(':'), type_label))), - GenericEntityType)(s) + map( + preceded(kw("generic_entity"), opt(preceded(char(':'), type_label))), + GenericEntityType, + )(s) } // 231 generic_type = GENERIC [ ’:’ type_label ] . #[derive(Debug)] pub struct GenericType<'a>(Option>); fn generic_type(s: &str) -> IResult { - map(preceded(kw("generic"), - opt(preceded(char(':'), type_label))), - GenericType)(s) + map( + preceded(kw("generic"), opt(preceded(char(':'), type_label))), + GenericType, + )(s) } // 232 group_qualifier = ’\’ entity_ref . @@ -1190,15 +1390,18 @@ fn group_qualifier(s: &str) -> IResult { #[derive(Debug)] pub struct IfStmt<'a>(LogicalExpression<'a>, Vec>, Option>>); fn if_stmt(s: &str) -> IResult { - map(tuple(( - kw("if"), - logical_expression, - kw("then"), - many1(stmt), - opt(preceded(kw("else"), many1(stmt))), - kw("end_if"), - char(';'), - )), |(_, cond, _, a, b, _, _)| IfStmt(cond, a, b))(s) + map( + tuple(( + kw("if"), + logical_expression, + kw("then"), + many1(stmt), + opt(preceded(kw("else"), many1(stmt))), + kw("end_if"), + char(';'), + )), + |(_, cond, _, a, b, _, _)| IfStmt(cond, a, b), + )(s) } // 234 @@ -1213,19 +1416,22 @@ pub struct IncrementControl<'a> { pub increment: Option>, } fn increment_control(s: &str) -> IResult { - map(tuple(( - variable_id, - tag(":="), - bound_1, - kw("to"), - bound_2, - opt(preceded(kw("by"), increment)), - )), |(v, _, b1, _, b2, i)| IncrementControl { - var: v, - bound1: b1, - bound2: b2, - increment: i, - })(s) + map( + tuple(( + variable_id, + tag(":="), + bound_1, + kw("to"), + bound_2, + opt(preceded(kw("by"), increment)), + )), + |(v, _, b1, _, b2, i)| IncrementControl { + var: v, + bound1: b1, + bound2: b2, + increment: i, + }, + )(s) } // 236 @@ -1256,10 +1462,7 @@ pub enum InstantiableType<'a> { } fn instantiable_type(s: &str) -> IResult { use InstantiableType::*; - alt(( - map(concrete_types, Concrete), - map(entity_ref, EntityRef), - ))(s) + alt((map(concrete_types, Concrete), map(entity_ref, EntityRef)))(s) } // 241 integer_type = INTEGER . @@ -1275,8 +1478,10 @@ pub enum InterfaceSpecification<'a> { } fn interface_specification(s: &str) -> IResult { use InterfaceSpecification::*; - alt((map(reference_clause, ReferenceClause), - map(use_clause, UseClause)))(s) + alt(( + map(reference_clause, ReferenceClause), + map(use_clause, UseClause), + ))(s) } // 243 @@ -1289,18 +1494,26 @@ pub struct Interval<'a> { pub high: IntervalHigh<'a>, } fn interval(s: &str) -> IResult { - map(delimited( - char('{'), - tuple(( - interval_low, - interval_op, - interval_item, - interval_op, - interval_high, - )), - char('}')), - |(low, op1, item, op2, high)| Interval { low, op1, item, op2, high }) - (s) + map( + delimited( + char('{'), + tuple(( + interval_low, + interval_op, + interval_item, + interval_op, + interval_high, + )), + char('}'), + ), + |(low, op1, item, op2, high)| Interval { + low, + op1, + item, + op2, + high, + }, + )(s) } // 244 @@ -1314,7 +1527,10 @@ alias!(IntervalLow<'a>, SimpleExpression, interval_low); // 247 #[derive(Debug)] -pub enum IntervalOp { LessThan, LessThanOrEqual } +pub enum IntervalOp { + LessThan, + LessThanOrEqual, +} fn interval_op(s: &str) -> IResult { alt(( // Sort by length to pick the best match @@ -1326,7 +1542,10 @@ fn interval_op(s: &str) -> IResult { // 248 inverse_attr = attribute_decl ’:’ [ ( SET | BAG ) [ bound_spec ] OF ] entity_ref // FOR [ entity_ref ’.’ ] attribute_ref ’;’ . #[derive(Debug)] -pub enum SetOrBag { Set, Bag } +pub enum SetOrBag { + Set, + Bag, +} #[derive(Debug)] pub struct InverseAttr<'a> { pub attribute_decl: AttributeDecl<'a>, @@ -1336,27 +1555,35 @@ pub struct InverseAttr<'a> { pub attribute_ref: AttributeRef<'a>, } fn inverse_attr(s: &str) -> IResult { - map(tuple(( - attribute_decl, - char(':'), - opt(map(tuple(( - alt((map(kw("set"), |_| SetOrBag::Set), - map(kw("bag"), |_| SetOrBag::Bag))), - opt(bound_spec), - kw("of"), - )), |(t, b, _)| (t, b))), - entity_ref, - kw("for"), - opt(terminated(entity_ref, char('.'))), - attribute_ref, - char(';'), - )), |(a, _, b, c, _, d, e, _)| InverseAttr { - attribute_decl: a, - bounds: b, - entity: c, - entity_for: d, - attribute_ref: e, - })(s) + map( + tuple(( + attribute_decl, + char(':'), + opt(map( + tuple(( + alt(( + map(kw("set"), |_| SetOrBag::Set), + map(kw("bag"), |_| SetOrBag::Bag), + )), + opt(bound_spec), + kw("of"), + )), + |(t, b, _)| (t, b), + )), + entity_ref, + kw("for"), + opt(terminated(entity_ref, char('.'))), + attribute_ref, + char(';'), + )), + |(a, _, b, c, _, d, e, _)| InverseAttr { + attribute_decl: a, + bounds: b, + entity: c, + entity_for: d, + attribute_ref: e, + }, + )(s) } // 249 inverse_clause = INVERSE inverse_attr { inverse_attr } . @@ -1374,18 +1601,20 @@ pub struct ListType<'a> { pub instantiable_type: Box>, } fn list_type(s: &str) -> IResult { - map(tuple(( - kw("list"), - opt(bound_spec), - kw("of"), - opt(kw("unique")), - instantiable_type, - )), - |(_, b, _, uniq, t)| ListType { - bounds: b, - unique: uniq.is_some(), - instantiable_type: Box::new(t), - })(s) + map( + tuple(( + kw("list"), + opt(bound_spec), + kw("of"), + opt(kw("unique")), + instantiable_type, + )), + |(_, b, _, uniq, t)| ListType { + bounds: b, + unique: uniq.is_some(), + instantiable_type: Box::new(t), + }, + )(s) } // 251 @@ -1402,19 +1631,22 @@ fn literal(s: &str) -> IResult { map(binary_literal, Binary), map(string_literal, |s| String(s.0)), map(logical_literal, Logical), - map(real_literal, Real) + map(real_literal, Real), ))(s) } // 252 local_decl = LOCAL local_variable { local_variable } END_LOCAL ’;’ #[derive(Debug)] pub struct LocalDecl<'a>(Vec>); fn local_decl(s: &str) -> IResult { - map(tuple(( - kw("local"), - many1(local_variable), - kw("end_local"), - char(';'), - )), |(_, vs, _, _)| LocalDecl(vs))(s) + map( + tuple(( + kw("local"), + many1(local_variable), + kw("end_local"), + char(';'), + )), + |(_, vs, _, _)| LocalDecl(vs), + )(s) } // 253 local_variable = variable_id { ’,’ variable_id } ’:’ parameter_type // [ ’:=’ expression ] ’;’ . @@ -1425,17 +1657,20 @@ pub struct LocalVariable<'a> { pub expression: Option>, } fn local_variable(s: &str) -> IResult { - map(tuple(( - list1(',', variable_id), - char(':'), - parameter_type, - opt(preceded(tag(":="), expression)), - char(';'), - )), |(vars, _, pt, exp, _)| LocalVariable { - variable_id: vars, - parameter_type: pt, - expression: exp, - })(s) + map( + tuple(( + list1(',', variable_id), + char(':'), + parameter_type, + opt(preceded(tag(":="), expression)), + char(';'), + )), + |(vars, _, pt, exp, _)| LocalVariable { + variable_id: vars, + parameter_type: pt, + expression: exp, + }, + )(s) } // 254 @@ -1444,12 +1679,16 @@ alias!(LogicalExpression<'a>, Expression, logical_expression); // 255 #[derive(Debug)] pub enum LogicalLiteral { - True, False, Unknown + True, + False, + Unknown, } fn logical_literal(s: &str) -> IResult { - alt((map(kw("false"), |_| LogicalLiteral::False), - map(kw("true"), |_| LogicalLiteral::True), - map(kw("unknown"), |_| LogicalLiteral::Unknown)))(s) + alt(( + map(kw("false"), |_| LogicalLiteral::False), + map(kw("true"), |_| LogicalLiteral::True), + map(kw("unknown"), |_| LogicalLiteral::Unknown), + ))(s) } // 256 logical_type = LOGICAL . @@ -1459,16 +1698,23 @@ fn logical_type(s: &str) -> IResult<()> { // 257 #[derive(Debug)] -pub enum MultiplicationLikeOp {Mul, Div, IntegerDiv, Mod, And, ComplexEntity } +pub enum MultiplicationLikeOp { + Mul, + Div, + IntegerDiv, + Mod, + And, + ComplexEntity, +} fn multiplication_like_op(s: &str) -> IResult { use MultiplicationLikeOp::*; alt(( - map(char('*'), |_| Mul), - map(char('/'), |_| Div), + map(char('*'), |_| Mul), + map(char('/'), |_| Div), map(kw("div"), |_| IntegerDiv), map(kw("mod"), |_| Mod), map(kw("and"), |_| And), - map(tag("||"), |_| ComplexEntity), + map(tag("||"), |_| ComplexEntity), ))(s) } @@ -1496,11 +1742,19 @@ pub struct NamedTypeOrRename<'a> { pub rename: Option>, } fn named_type_or_rename(s: &str) -> IResult { - map(pair( - named_types, - opt(preceded(kw("as"), - map(simple_id, EntityOrTypeId::_Ambiguous)))), - |(a, b)| NamedTypeOrRename { named_types: a, rename: b })(s) + map( + pair( + named_types, + opt(preceded( + kw("as"), + map(simple_id, EntityOrTypeId::_Ambiguous), + )), + ), + |(a, b)| NamedTypeOrRename { + named_types: a, + rename: b, + }, + )(s) } // 260 null_stmt = ’;’ . @@ -1520,10 +1774,10 @@ alias!(NumericExpression<'a>, SimpleExpression); #[derive(Debug)] pub struct OneOf<'a>(Vec>); fn one_of(s: &str) -> IResult { - map(preceded( - kw("oneof"), - parens(list1(',', supertype_expression)), - ), OneOf)(s) + map( + preceded(kw("oneof"), parens(list1(',', supertype_expression))), + OneOf, + )(s) } // 264 @@ -1565,8 +1819,9 @@ fn primary(s: &str) -> IResult { use Primary::*; alt(( // Order so that the longest parser runs first - map(pair(qualifiable_factor, many0(qualifier)), - |(f, qs)| Qualifiable(f, qs)), + map(pair(qualifiable_factor, many0(qualifier)), |(f, qs)| { + Qualifiable(f, qs) + }), map(literal, Literal), ))(s) } @@ -1584,28 +1839,32 @@ pub struct ProcedureCallStmt<'a> { pub params: Option>, } fn procedure_call_stmt(s: &str) -> IResult { - map(tuple(( - alt((map(built_in_procedure, BuiltInOrProcedureRef::BuiltIn), - map(procedure_ref, BuiltInOrProcedureRef::ProcedureRef), + map( + tuple(( + alt(( + map(built_in_procedure, BuiltInOrProcedureRef::BuiltIn), + map(procedure_ref, BuiltInOrProcedureRef::ProcedureRef), + )), + opt(actual_parameter_list), + char(';'), )), - opt(actual_parameter_list), - char(';'), - )), |(a, b, _)| ProcedureCallStmt { - proc: a, - params: b, - })(s) + |(a, b, _)| ProcedureCallStmt { proc: a, params: b }, + )(s) } // 271 procedure_decl = procedure_head algorithm_head { stmt } END_PROCEDURE ’;’ . #[derive(Debug)] pub struct ProcedureDecl<'a>(ProcedureHead<'a>, AlgorithmHead<'a>, Vec>); fn procedure_decl(s: &str) -> IResult { - map(tuple(( - procedure_head, - algorithm_head, - many0(stmt), - kw("end_procedure"), - char(';'), - )), |(p, a, s, _, _)| ProcedureDecl(p, a, s))(s) + map( + tuple(( + procedure_head, + algorithm_head, + many0(stmt), + kw("end_procedure"), + char(';'), + )), + |(p, a, s, _, _)| ProcedureDecl(p, a, s), + )(s) } // 272 procedure_head = PROCEDURE procedure_id [ ’(’ [ VAR ] formal_parameter @@ -1616,18 +1875,23 @@ pub struct ProcedureHead<'a> { pub args: Option)>>, } fn procedure_head(s: &str) -> IResult { - map(tuple(( - kw("procedure"), - procedure_id, - opt(parens(list1(';', - map(tuple((opt(kw("var")), formal_parameter)), - |(v, f)| (v.is_some(), f))), + map( + tuple(( + kw("procedure"), + procedure_id, + opt(parens(list1( + ';', + map(tuple((opt(kw("var")), formal_parameter)), |(v, f)| { + (v.is_some(), f) + }), + ))), + char(';'), )), - char(';'), - )), |(_, p, args, _)| ProcedureHead { - procedure_id: p, - args - })(s) + |(_, p, args, _)| ProcedureHead { + procedure_id: p, + args, + }, + )(s) } // 273 @@ -1654,23 +1918,21 @@ fn qualifiable_factor(s: &str) -> IResult { // Try parsing the function call first. One valid parse is just a // function_ref, so we convert that case to _Ambiguous, since it may // not actually be a function. - map(function_call, |b| if b.1.0.is_empty() { - match b.0 { - BuiltInOrFunctionRef::BuiltIn(_) => - QualifiableFactor::FunctionCall(b), - BuiltInOrFunctionRef::Ref(b) => - QualifiableFactor::_Ambiguous(b.0), + map(function_call, |b| { + if b.1 .0.is_empty() { + match b.0 { + BuiltInOrFunctionRef::BuiltIn(_) => QualifiableFactor::FunctionCall(b), + BuiltInOrFunctionRef::Ref(b) => QualifiableFactor::_Ambiguous(b.0), + } + } else { + QualifiableFactor::FunctionCall(b) } - } else { - QualifiableFactor::FunctionCall(b) }), // Same thing for constant_factor, which could match a constant_ref // (which in fact matches every ref) map(constant_factor, |b| match b { - ConstantFactor::BuiltIn(_) => - QualifiableFactor::ConstantFactor(b), - ConstantFactor::ConstantRef(b) => - QualifiableFactor::_Ambiguous(b.0), + ConstantFactor::BuiltIn(_) => QualifiableFactor::ConstantFactor(b), + ConstantFactor::ConstantRef(b) => QualifiableFactor::_Ambiguous(b.0), }), map(simple_id, |b| QualifiableFactor::_Ambiguous(b.0)), ))(s) @@ -1678,14 +1940,12 @@ fn qualifiable_factor(s: &str) -> IResult { // 275 qualified_attribute = SELF group_qualifier attribute_qualifier . #[derive(Debug)] -pub struct QualifiedAttribute<'a>(pub GroupQualifier<'a>, - pub AttributeQualifier<'a>); +pub struct QualifiedAttribute<'a>(pub GroupQualifier<'a>, pub AttributeQualifier<'a>); fn qualified_attribute(s: &str) -> IResult { - map(tuple(( - kw("self"), - group_qualifier, - attribute_qualifier, - )), |(_, a, b)| QualifiedAttribute(a, b))(s) + map( + tuple((kw("self"), group_qualifier, attribute_qualifier)), + |(_, a, b)| QualifiedAttribute(a, b), + )(s) } // 276 @@ -1713,39 +1973,43 @@ pub struct QueryExpression<'a> { pub logical_expression: LogicalExpression<'a>, } fn query_expression(s: &str) -> IResult { - map(tuple(( - kw("query"), - char('('), - variable_id, - tag("<*"), - aggregate_source, - char('|'), - logical_expression, - char(')'), - )), |(_, _, var, _, aggregate, _, log, _)| QueryExpression { - var, - aggregate, - logical_expression: log, - })(s) + map( + tuple(( + kw("query"), + char('('), + variable_id, + tag("<*"), + aggregate_source, + char('|'), + logical_expression, + char(')'), + )), + |(_, _, var, _, aggregate, _, log, _)| QueryExpression { + var, + aggregate, + logical_expression: log, + }, + )(s) } // 278 real_type = REAL [ ’(’ precision_spec ’)’ ] . #[derive(Debug)] pub struct RealType<'a>(Option>); fn real_type(s: &str) -> IResult { - map(preceded(kw("real"), - opt(parens(precision_spec))), - RealType)(s) + map(preceded(kw("real"), opt(parens(precision_spec))), RealType)(s) } // 279 redeclared_attribute = qualified_attribute [ RENAMED attribute_id ] . #[derive(Debug)] -pub struct RedeclaredAttribute<'a>(pub QualifiedAttribute<'a>, - pub Option>); +pub struct RedeclaredAttribute<'a>(pub QualifiedAttribute<'a>, pub Option>); fn redeclared_attribute(s: &str) -> IResult { - map(pair(qualified_attribute, - opt(preceded(kw("renamed"), attribute_id))), - |(a, b)| RedeclaredAttribute(a, b))(s) + map( + pair( + qualified_attribute, + opt(preceded(kw("renamed"), attribute_id)), + ), + |(a, b)| RedeclaredAttribute(a, b), + )(s) } // 280 referenced_attribute = attribute_ref | qualified_attribute . @@ -1756,10 +2020,7 @@ pub enum ReferencedAttribute<'a> { } fn referenced_attribute(s: &str) -> IResult { use ReferencedAttribute::*; - alt(( - map(attribute_ref, Ref), - map(qualified_attribute, Qualified), - ))(s) + alt((map(attribute_ref, Ref), map(qualified_attribute, Qualified)))(s) } // 281 reference_clause = REFERENCE FROM schema_ref [ ’(’ resource_or_rename @@ -1770,46 +2031,62 @@ pub struct ReferenceClause<'a> { pub resource_or_rename: Option>>, } fn reference_clause(s: &str) -> IResult { - map(tuple(( - kw("reference"), - kw("front"), - schema_ref, - opt(parens(list1(',', resource_or_rename))), - char(';'), - )), |(_, _, s, r, _)| ReferenceClause { - schema_ref: s, - resource_or_rename: r, - })(s) + map( + tuple(( + kw("reference"), + kw("front"), + schema_ref, + opt(parens(list1(',', resource_or_rename))), + char(';'), + )), + |(_, _, s, r, _)| ReferenceClause { + schema_ref: s, + resource_or_rename: r, + }, + )(s) } // 282 #[derive(Debug)] -pub enum RelOp { LessThan, GreaterThan, LessThanOrEqual, GreaterThanOrEqual, - NotEqual, Equal, InstanceEqual, InstanceNotEqual } +pub enum RelOp { + LessThan, + GreaterThan, + LessThanOrEqual, + GreaterThanOrEqual, + NotEqual, + Equal, + InstanceEqual, + InstanceNotEqual, +} fn rel_op(s: &str) -> IResult { use RelOp::*; alt(( // Sorted by length to avoid prefix issues map(tag(":<>:"), |_| InstanceEqual), - map(tag(":=:"), |_| InstanceNotEqual), - map(tag("<="), |_| LessThanOrEqual), - map(tag(">="), |_| GreaterThanOrEqual), - map(tag("<>"), |_| NotEqual), - map(char('<'), |_| LessThan), - map(char('>'), |_| GreaterThan), - map(char('='), |_| Equal), + map(tag(":=:"), |_| InstanceNotEqual), + map(tag("<="), |_| LessThanOrEqual), + map(tag(">="), |_| GreaterThanOrEqual), + map(tag("<>"), |_| NotEqual), + map(char('<'), |_| LessThan), + map(char('>'), |_| GreaterThan), + map(char('='), |_| Equal), ))(s) } // 283 #[derive(Debug)] -pub enum RelOpExtended { RelOp(RelOp), In, Like } +pub enum RelOpExtended { + RelOp(RelOp), + In, + Like, +} fn rel_op_extended(s: &str) -> IResult { use RelOpExtended::*; alt(( - map(kw("in"), |_| In), + map(kw("in"), |_| In), map(kw("like"), |_| Like), - map(rel_op, RelOp)))(s) + map(rel_op, RelOp), + ))(s) } // 284 @@ -1831,27 +2108,34 @@ fn rename_id(s: &str) -> IResult { pub struct RepeatControl<'a>( Option>, Option>, - Option>); + Option>, +); fn repeat_control(s: &str) -> IResult { - map(tuple(( - opt(increment_control), - opt(while_control), - opt(until_control), - )), |(a, b, c)| RepeatControl(a, b, c))(s) + map( + tuple(( + opt(increment_control), + opt(while_control), + opt(until_control), + )), + |(a, b, c)| RepeatControl(a, b, c), + )(s) } // 286 repeat_stmt = REPEAT repeat_control ’;’ stmt { stmt } END_REPEAT ’;’ . #[derive(Debug)] pub struct RepeatStmt<'a>(RepeatControl<'a>, Vec>); fn repeat_stmt(s: &str) -> IResult { - map(tuple(( - kw("repeat"), - repeat_control, - char(';'), - many1(stmt), - kw("end_repeat"), - char(';'), - )), |(_, r, _, s, _, _)| RepeatStmt(r, s))(s) + map( + tuple(( + kw("repeat"), + repeat_control, + char(';'), + many1(stmt), + kw("end_repeat"), + char(';'), + )), + |(_, r, _, s, _, _)| RepeatStmt(r, s), + )(s) } // 287 @@ -1861,8 +2145,10 @@ alias!(Repetition<'a>, NumericExpression, repetition); #[derive(Debug)] pub struct ResourceOrRename<'a>(ResourceRef<'a>, Option>); fn resource_or_rename(s: &str) -> IResult { - map(pair(resource_ref, opt(preceded(kw("as"), rename_id))), - |(a, b)| ResourceOrRename(a, b))(s) + map( + pair(resource_ref, opt(preceded(kw("as"), rename_id))), + |(a, b)| ResourceOrRename(a, b), + )(s) } // 289 @@ -1883,11 +2169,11 @@ fn resource_ref(s: &str) -> IResult { // 290 return_stmt = RETURN [ ’(’ expression ’)’ ] ’;’ . #[derive(Debug)] pub struct ReturnStmt<'a>(Option>); -fn return_stmt(s: &str) -> IResult { - map(delimited( - kw("return"), - opt(parens(expression)), - char(';')), ReturnStmt)(s) +fn return_stmt(s: &str) -> IResult { + map( + delimited(kw("return"), opt(parens(expression)), char(';')), + ReturnStmt, + )(s) } // 291 rule_decl = rule_head algorithm_head { stmt } where_clause END_RULE ’;’ . @@ -1899,19 +2185,22 @@ pub struct RuleDecl<'a> { pub where_clause: WhereClause<'a>, } fn rule_decl(s: &str) -> IResult { - map(tuple(( - rule_head, - algorithm_head, - many0(stmt), - where_clause, - kw("end_rule"), - char(';'), - )), |(r, a, s, w, _, _)| RuleDecl { - rule_head: r, - algorithm_head: a, - stmt: s, - where_clause: w, - })(s) + map( + tuple(( + rule_head, + algorithm_head, + many0(stmt), + where_clause, + kw("end_rule"), + char(';'), + )), + |(r, a, s, w, _, _)| RuleDecl { + rule_head: r, + algorithm_head: a, + stmt: s, + where_clause: w, + }, + )(s) } // 292 rule_head = RULE rule_id FOR ’(’ entity_ref { ’,’ entity_ref } ’)’ ’;’ . @@ -1921,16 +2210,19 @@ pub struct RuleHead<'a> { pub entities: Vec>, } fn rule_head(s: &str) -> IResult { - map(tuple(( - kw("rule"), - rule_id, - kw("for"), - parens(list1(',', entity_ref)), - char(';'), - )), |(_, id, _, es, _)| RuleHead { - rule_id: id, - entities: es, - })(s) + map( + tuple(( + kw("rule"), + rule_id, + kw("for"), + parens(list1(',', entity_ref)), + char(';'), + )), + |(_, id, _, es, _)| RuleHead { + rule_id: id, + entities: es, + }, + )(s) } // 293 @@ -1953,17 +2245,21 @@ pub struct SchemaBody<'a> { pub declarations: Vec>, } fn schema_body(s: &str) -> IResult { - map(tuple(( - many0(interface_specification), - opt(constant_decl), - many0(alt(( - map(declaration, DeclarationOrRuleDecl::Declaration), - map(rule_decl, DeclarationOrRuleDecl::RuleDecl), - ))), - )), |(a, b, c)| SchemaBody { - interfaces: a, - constants: b, - declarations: c})(s) + map( + tuple(( + many0(interface_specification), + opt(constant_decl), + many0(alt(( + map(declaration, DeclarationOrRuleDecl::Declaration), + map(rule_decl, DeclarationOrRuleDecl::RuleDecl), + ))), + )), + |(a, b, c)| SchemaBody { + interfaces: a, + constants: b, + declarations: c, + }, + )(s) } // 296 @@ -1974,17 +2270,18 @@ pub struct SchemaDecl<'a> { pub body: SchemaBody<'a>, } fn schema_decl(s: &str) -> IResult { - map(tuple(( - kw("schema"), - schema_id, - opt(schema_version_id), - char(';'), - schema_body, - kw("end_schema"), - char(';') - )), |(_, id, version, _, body, _, _)| SchemaDecl { - id, version, body - })(s) + map( + tuple(( + kw("schema"), + schema_id, + opt(schema_version_id), + char(';'), + schema_body, + kw("end_schema"), + char(';'), + )), + |(_, id, version, _, body, _, _)| SchemaDecl { id, version, body }, + )(s) } // 297 @@ -2003,12 +2300,17 @@ pub struct SelectExtension<'a> { pub select_list: Option>, } fn select_extension(s: &str) -> IResult { - map(tuple(( - kw("based_on"), type_ref, - opt(preceded(kw("with"), select_list)) - )), |(_, a, b)| SelectExtension { - type_ref: a, select_list: b - })(s) + map( + tuple(( + kw("based_on"), + type_ref, + opt(preceded(kw("with"), select_list)), + )), + |(_, a, b)| SelectExtension { + type_ref: a, + select_list: b, + }, + )(s) } // 301 @@ -2032,18 +2334,21 @@ pub struct SelectType<'a> { pub list_or_extension: SelectListOrExtension<'a>, } fn select_type(s: &str) -> IResult { - map(tuple(( - opt(pair(kw("extensible"), opt(kw("generic_entity")))), - kw("select"), - alt(( - map(select_list, SelectListOrExtension::List), - map(select_extension, SelectListOrExtension::Extension), - )) - )), |(a, _, c)| SelectType{ - extensible: a.is_some(), - generic_entity: a.is_some() && a.unwrap().1.is_some(), - list_or_extension: c - })(s) + map( + tuple(( + opt(pair(kw("extensible"), opt(kw("generic_entity")))), + kw("select"), + alt(( + map(select_list, SelectListOrExtension::List), + map(select_extension, SelectListOrExtension::Extension), + )), + )), + |(a, _, c)| SelectType { + extensible: a.is_some(), + generic_entity: a.is_some() && a.unwrap().1.is_some(), + list_or_extension: c, + }, + )(s) } // 303 @@ -2053,16 +2358,13 @@ pub struct SetType<'a> { pub instantiable_type: Box>, } fn set_type(s: &str) -> IResult { - map(tuple(( - kw("set"), - opt(bound_spec), - kw("of"), - instantiable_type, - )), - |(_, b, _, t)| SetType { - bounds: b, - instantiable_type: Box::new(t), - })(s) + map( + tuple((kw("set"), opt(bound_spec), kw("of"), instantiable_type)), + |(_, b, _, t)| SetType { + bounds: b, + instantiable_type: Box::new(t), + }, + )(s) } // 304 sign = ’+’ | ’-’ . @@ -2095,47 +2397,50 @@ pub enum SimpleFactor<'a> { // Both EntityConstructor and primary -> qualifiable_factor -> function_call // can match things of the form function_ref(expression, expression, ...), // so we match them with an "ambiguous" branch here - _AmbiguousFunctionCall(SimpleId<'a>, Vec>), AggregateInitializer(AggregateInitializer<'a>), EntityConstructor(EntityConstructor<'a>), EnumerationReference(EnumerationReference<'a>), Interval(Interval<'a>), QueryExpression(QueryExpression<'a>), - Unary(Option, ExpressionOrPrimary<'a>) + Unary(Option, ExpressionOrPrimary<'a>), } fn ambiguous_function_call(s: &str) -> IResult { - map(terminated( - // simple_id already refuses to eat built-in functions - pair(simple_id, parens(list0(',', expression))), - // ambiguous_function_call has a special-case to avoid eating a primary - // function call, e.g. "cross_product(axis, ref_direction).magnitude" - not(peek(alt((char('.'), char('\\')))))), - |(a, b)| SimpleFactor::_AmbiguousFunctionCall(a, b))(s) + map( + terminated( + // simple_id already refuses to eat built-in functions + pair(simple_id, parens(list0(',', expression))), + // ambiguous_function_call has a special-case to avoid eating a primary + // function call, e.g. "cross_product(axis, ref_direction).magnitude" + not(peek(alt((char('.'), char('\\'))))), + ), + |(a, b)| SimpleFactor::_AmbiguousFunctionCall(a, b), + )(s) } fn simple_factor(s: &str) -> IResult { use SimpleFactor::*; alt(( map(aggregate_initializer, AggregateInitializer), - // This produces _AmbiguousFunctionCall objects which can represent // either an `EntityConstructor` or a `FunctionCall` without a trailing // qualifier. ambiguous_function_call, - map(interval, Interval), map(query_expression, QueryExpression), - - map(pair( - opt(unary_op), - alt(( - map(parens(expression), - |e| ExpressionOrPrimary::Expression(Box::new(e))), - map(primary, ExpressionOrPrimary::Primary) - ))), |(op, p)| Unary(op, p)), - + map( + pair( + opt(unary_op), + alt(( + map(parens(expression), |e| { + ExpressionOrPrimary::Expression(Box::new(e)) + }), + map(primary, ExpressionOrPrimary::Primary), + )), + ), + |(op, p)| Unary(op, p), + ), // At the bottom, because this will consume a single ref map(enumeration_reference, EnumerationReference), ))(s) @@ -2145,17 +2450,22 @@ fn simple_factor(s: &str) -> IResult { // number_type | real_type | string_type . #[derive(Debug)] pub enum SimpleTypes<'a> { - Binary(BinaryType<'a>), Boolean, Integer, Logical, Number, - Real(RealType<'a>), String(StringType<'a>), + Binary(BinaryType<'a>), + Boolean, + Integer, + Logical, + Number, + Real(RealType<'a>), + String(StringType<'a>), } fn simple_types(s: &str) -> IResult { use SimpleTypes::*; alt(( - map(binary_type, Binary), + map(binary_type, Binary), map(boolean_type, |_| Boolean), map(integer_type, |_| Integer), map(logical_type, |_| Logical), - map(number_type, |_| Number), + map(number_type, |_| Number), map(real_type, Real), map(string_type, String), ))(s) @@ -2208,7 +2518,9 @@ impl StringLiteral { map(alt((simple_string_literal, encoded_string_literal)), Self)(s) } } -fn string_literal(s: &str) -> IResult { StringLiteral::parse(s) } +fn string_literal(s: &str) -> IResult { + StringLiteral::parse(s) +} // 311 string_type = STRING [ width_spec ] . #[derive(Debug)] @@ -2219,19 +2531,25 @@ fn string_type(s: &str) -> IResult { // 312 subsuper = [ supertype_constraint ] [ subtype_declaration ] . #[derive(Debug)] -pub struct Subsuper<'a>(pub Option>, - pub Option>); +pub struct Subsuper<'a>( + pub Option>, + pub Option>, +); fn subsuper(s: &str) -> IResult { - map(pair(opt(supertype_constraint), opt(subtype_declaration)), - |(a, b)| Subsuper(a, b))(s) + map( + pair(opt(supertype_constraint), opt(subtype_declaration)), + |(a, b)| Subsuper(a, b), + )(s) } // 313 subtype_constraint = OF ’(’ supertype_expression ’)’ . #[derive(Debug)] pub struct SubtypeConstraint<'a>(SupertypeExpression<'a>); fn subtype_constraint(s: &str) -> IResult { - map(preceded(kw("of"), parens(supertype_expression)), - SubtypeConstraint)(s) + map( + preceded(kw("of"), parens(supertype_expression)), + SubtypeConstraint, + )(s) } // 314 subtype_constraint_body = [ abstract_supertype ] [ total_over ] @@ -2243,29 +2561,34 @@ pub struct SubtypeConstraintBody<'a> { pub supertype: Option>, } fn subtype_constraint_body(s: &str) -> IResult { - map(tuple(( - opt(abstract_supertype), - opt(total_over), - opt(terminated(supertype_expression, char(';'))), - )), |(a, b, c)| SubtypeConstraintBody { - abstract_super: a.is_some(), - total_over: b, - supertype: c - })(s) + map( + tuple(( + opt(abstract_supertype), + opt(total_over), + opt(terminated(supertype_expression, char(';'))), + )), + |(a, b, c)| SubtypeConstraintBody { + abstract_super: a.is_some(), + total_over: b, + supertype: c, + }, + )(s) } // 315 subtype_constraint_decl = subtype_constraint_head subtype_constraint_body // END_SUBTYPE_CONSTRAINT ’;’ . #[derive(Debug)] -pub struct SubtypeConstraintDecl<'a>(SubtypeConstraintHead<'a>, - SubtypeConstraintBody<'a>); +pub struct SubtypeConstraintDecl<'a>(SubtypeConstraintHead<'a>, SubtypeConstraintBody<'a>); fn subtype_constraint_decl(s: &str) -> IResult { - map(tuple(( - subtype_constraint_head, - subtype_constraint_body, - kw("end_subtype_constraint"), - char(';') - )), |(a, b, _, _)| SubtypeConstraintDecl(a, b))(s) + map( + tuple(( + subtype_constraint_head, + subtype_constraint_body, + kw("end_subtype_constraint"), + char(';'), + )), + |(a, b, _, _)| SubtypeConstraintDecl(a, b), + )(s) } // 316 subtype_constraint_head = SUBTYPE_CONSTRAINT subtype_constraint_id FOR @@ -2273,13 +2596,16 @@ fn subtype_constraint_decl(s: &str) -> IResult { #[derive(Debug)] pub struct SubtypeConstraintHead<'a>(SubtypeConstraintId<'a>, EntityRef<'a>); fn subtype_constraint_head(s: &str) -> IResult { - map(tuple(( - kw("subtype_constraint"), - subtype_constraint_id, - kw("for"), - entity_ref, - char(';') - )), |(_, a, _, b, _)| SubtypeConstraintHead(a, b))(s) + map( + tuple(( + kw("subtype_constraint"), + subtype_constraint_id, + kw("for"), + entity_ref, + char(';'), + )), + |(_, a, _, b, _)| SubtypeConstraintHead(a, b), + )(s) } // 317 @@ -2289,9 +2615,13 @@ id_type!(SubtypeConstraintId, subtype_constraint_id); #[derive(Debug)] pub struct SubtypeDeclaration<'a>(pub Vec>); fn subtype_declaration(s: &str) -> IResult { - map(preceded(tuple((kw("subtype"), kw("of"))), - parens(list1(',', entity_ref))), - SubtypeDeclaration)(s) + map( + preceded( + tuple((kw("subtype"), kw("of"))), + parens(list1(',', entity_ref)), + ), + SubtypeDeclaration, + )(s) } // 319 supertype_constraint = abstract_entity_declaration | @@ -2300,7 +2630,7 @@ fn subtype_declaration(s: &str) -> IResult { pub enum SupertypeConstraint<'a> { AbstractEntity, AbstractSupertype(AbstractSupertypeDeclaration<'a>), - SupertypeRule(SupertypeRule<'a>) + SupertypeRule(SupertypeRule<'a>), } fn supertype_constraint(s: &str) -> IResult { use SupertypeConstraint::*; @@ -2314,8 +2644,7 @@ fn supertype_constraint(s: &str) -> IResult { // 320 supertype_expression = supertype_factor { ANDOR supertype_factor } . #[derive(Debug)] -pub struct SupertypeExpression<'a>(SupertypeFactor<'a>, - Vec>); +pub struct SupertypeExpression<'a>(SupertypeFactor<'a>, Vec>); fn supertype_expression(s: &str) -> IResult { let (s, a) = supertype_factor(s)?; let (s, b) = many0(preceded(kw("andor"), supertype_factor))(s)?; @@ -2326,8 +2655,7 @@ fn supertype_expression(s: &str) -> IResult { #[derive(Debug)] pub struct SupertypeFactor<'a>(Vec>); fn supertype_factor(s: &str) -> IResult { - map(separated_list1(kw("and"), supertype_term), - SupertypeFactor)(s) + map(separated_list1(kw("and"), supertype_term), SupertypeFactor)(s) } // 322 supertype_rule = SUPERTYPE subtype_constraint . @@ -2364,19 +2692,20 @@ fn syntax(s: &str) -> IResult { #[derive(Debug)] pub struct Term<'a>(pub Factor<'a>, pub Vec<(MultiplicationLikeOp, Factor<'a>)>); fn term(s: &str) -> IResult { - map(pair(factor, many0(pair(multiplication_like_op, factor))), - |(a, b)| Term(a, b))(s) + map( + pair(factor, many0(pair(multiplication_like_op, factor))), + |(a, b)| Term(a, b), + )(s) } // 326 total_over = TOTAL_OVER ’(’ entity_ref { ’,’ entity_ref } ’)’ ’;’ . #[derive(Debug)] pub struct TotalOver<'a>(Vec>); fn total_over(s: &str) -> IResult { - map(delimited( - kw("total_over"), - parens(list1(',', entity_ref)), - char(';')), - TotalOver)(s) + map( + delimited(kw("total_over"), parens(list1(',', entity_ref)), char(';')), + TotalOver, + )(s) } // 327 type_decl = TYPE type_id ’=’ underlying_type ’;’ [ where_clause ] END_TYPE ’;’ . @@ -2387,20 +2716,23 @@ pub struct TypeDecl<'a> { pub where_clause: Option>, } fn type_decl(s: &str) -> IResult { - map(tuple(( - kw("type"), - type_id, - char('='), - underlying_type, - char(';'), - opt(where_clause), - kw("end_type"), - char(';'), - )), |(_, t, _, u, _, w, _, _)| TypeDecl { - type_id: t, - underlying_type: u, - where_clause: w, - })(s) + map( + tuple(( + kw("type"), + type_id, + char('='), + underlying_type, + char(';'), + opt(where_clause), + kw("end_type"), + char(';'), + )), + |(_, t, _, u, _, w, _, _)| TypeDecl { + type_id: t, + underlying_type: u, + where_clause: w, + }, + )(s) } // 328 @@ -2423,12 +2755,16 @@ pub struct TypeLabelId<'a>(SimpleId<'a>); // 331 #[derive(Debug, Eq, PartialEq)] -pub enum UnaryOp { Add, Sub, Not } +pub enum UnaryOp { + Add, + Sub, + Not, +} fn unary_op(s: &str) -> IResult { use UnaryOp::*; alt(( - map(char('+'), |_| Add), - map(char('-'), |_| Sub), + map(char('+'), |_| Add), + map(char('-'), |_| Sub), map(kw("not"), |_| Not), ))(s) } @@ -2453,7 +2789,10 @@ fn underlying_type(s: &str) -> IResult { #[derive(Debug)] pub struct UniqueClause<'a>(Vec>); fn unique_clause(s: &str) -> IResult { - map(preceded(kw("unique"), many1(terminated(unique_rule, char(';')))), UniqueClause)(s) + map( + preceded(kw("unique"), many1(terminated(unique_rule, char(';')))), + UniqueClause, + )(s) } // 334 unique_rule = [ rule_label_id ’:’ ] referenced_attribute { ’,’ @@ -2464,9 +2803,13 @@ pub struct UniqueRule<'a> { pub attrs: Vec>, } fn unique_rule(s: &str) -> IResult { - map(pair(opt(terminated(rule_label_id, char(':'))), - list1(',', referenced_attribute)), - |(a, b)| UniqueRule { label: a, attrs: b })(s) + map( + pair( + opt(terminated(rule_label_id, char(':'))), + list1(',', referenced_attribute), + ), + |(a, b)| UniqueRule { label: a, attrs: b }, + )(s) } // 335 until_control = UNTIL logical_expression . @@ -2484,16 +2827,19 @@ pub struct UseClause<'a> { pub named_type_or_rename: Option>>, } fn use_clause(s: &str) -> IResult { - map(tuple(( - kw("use"), - kw("from"), - schema_ref, - opt(parens(list1(',', named_type_or_rename))), - char(';'), - )), |(_, _, s, r, _)| UseClause { - schema_ref: s, - named_type_or_rename: r, - })(s) + map( + tuple(( + kw("use"), + kw("from"), + schema_ref, + opt(parens(list1(',', named_type_or_rename))), + char(';'), + )), + |(_, _, s, r, _)| UseClause { + schema_ref: s, + named_type_or_rename: r, + }, + )(s) } // 337 variable_id = simple_id . @@ -2520,10 +2866,15 @@ alias!(Width<'a>, NumericExpression, width); // 341 width_spec = ’(’ width ’)’ [ FIXED ] . #[derive(Debug)] -pub struct WidthSpec<'a> { pub expression: Width<'a>, pub fixed: bool } +pub struct WidthSpec<'a> { + pub expression: Width<'a>, + pub fixed: bool, +} fn width_spec(s: &str) -> IResult { - map(pair(parens(width), opt(kw("fixed"))), - |(w, f)| WidthSpec { expression: w, fixed: f.is_some() })(s) + map(pair(parens(width), opt(kw("fixed"))), |(w, f)| WidthSpec { + expression: w, + fixed: f.is_some(), + })(s) } //////////////////////////////////////////////////////////////////////////////// @@ -2541,7 +2892,8 @@ mod tests { #[test] fn test_derived_attr() { - let e = derived_attr(r#"users : set of founded_item_select := using_items(self, []);"#).unwrap(); + let e = derived_attr(r#"users : set of founded_item_select := using_items(self, []);"#) + .unwrap(); assert_eq!(e.0, ""); } @@ -2553,27 +2905,34 @@ mod tests { #[test] fn test_entity_decl() { - let e = entity_decl(r#"entity action_assignment abstract supertype; + let e = entity_decl( + r#"entity action_assignment abstract supertype; assigned_action : action; derive role : object_role := get_role(self); where wr1 : sizeof(usedin(self, 'automotive_design.role_association.item_with_role')) <= 1; -end_entity; "#).unwrap(); +end_entity; "#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = entity_decl(r#"entity advanced_brep_shape_representation + let e = entity_decl( + r#"entity advanced_brep_shape_representation subtype of (shape_representation); where wr1 : sizeof(query(it <* self.items | not (sizeof([ 'automotive_design.manifold_solid_brep', 'automotive_design.faceted_brep', 'automotive_design.mapped_item', 'automotive_design.axis2_placement_3d'] * typeof(it)) = 1))) = 0; -end_entity; "#).unwrap(); +end_entity; "#, + ) + .unwrap(); assert!(e.0 == ""); - let e = entity_decl(r#"entity advanced_face + let e = entity_decl( + r#"entity advanced_face subtype of (face_surface); where wr1 : sizeof(['automotive_design.elementary_surface', @@ -2631,10 +2990,13 @@ where 'automotive_design.polyline' in typeof(oe\oriented_edge.edge_element\ edge_curve.edge_geometry)) and not (sizeof(oe\oriented_edge.edge_element\ edge_curve.edge_geometry\polyline.points) >= 3))) = 0))) = 0); -end_entity; "#).unwrap(); +end_entity; "#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = entity_decl(r#"entity alternate_product_relationship; + let e = entity_decl( + r#"entity alternate_product_relationship; name : label; definition : optional text; alternate : product; @@ -2644,10 +3006,13 @@ unique ur1 : alternate, base; where wr1 : alternate :<>: base; -end_entity; "#).unwrap(); +end_entity; "#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = entity_decl(r#"entity annotation_fill_area + let e = entity_decl( + r#"entity annotation_fill_area subtype of (geometric_representation_item); boundaries : set [1:?] of curve; where @@ -2660,10 +3025,13 @@ where composite_curve.closed_curve = true) or ('automotive_design.polyline' in typeof(curve)) and (curve\polyline.points[loindex(curve\polyline.points)] = curve\polyline.points[hiindex(curve\polyline.points)])))) = 0); -end_entity; "#).unwrap(); +end_entity; "#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = entity_decl(r#"entity axis2_placement_3d + let e = entity_decl( + r#"entity axis2_placement_3d subtype of (placement); axis : optional direction; ref_direction : optional direction; @@ -2675,10 +3043,13 @@ where wr3 : not exists(ref_direction) or (ref_direction.dim = 3); wr4 : not exists(axis) or not exists(ref_direction) or (cross_product(axis, ref_direction).magnitude > 0.0); -end_entity; "#).unwrap(); +end_entity; "#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = entity_decl(r#"entity b_spline_curve + let e = entity_decl( + r#"entity b_spline_curve supertype of (oneof (uniform_curve, b_spline_curve_with_knots, quasi_uniform_curve, bezier_curve) andor rational_b_spline_curve) subtype of (bounded_curve); @@ -2697,16 +3068,22 @@ where 'automotive_design.quasi_uniform_curve' in typeof(self)) or ( 'automotive_design.bezier_curve' in typeof(self)) or ( 'automotive_design.b_spline_curve_with_knots' in typeof(self)); -end_entity; "#).unwrap(); +end_entity; "#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = entity_decl(r#"entity binary_generic_expression abstract supertype + let e = entity_decl( + r#"entity binary_generic_expression abstract supertype subtype of (generic_expression); operands : list [2:2] of generic_expression; -end_entity; "#).unwrap(); +end_entity; "#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = entity_decl(r#"entity composite_hole + let e = entity_decl( + r#"entity composite_hole subtype of (compound_feature); where wr1 : self\characterized_object.description in ['counterbore', 'countersunk'] @@ -2745,16 +3122,21 @@ where 'automotive_design.shape_aspect_relationship.related_shape_aspect') | ( sar.description = 'taper usage') and ('automotive_design.' + 'taper' in typeof(sar.relating_shape_aspect)))) = 1))) = 1)) = 1))) = 1); -end_entity; "#).unwrap(); +end_entity; "#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = entity_decl(r#"entity founded_item; + let e = entity_decl( + r#"entity founded_item; derive users : set of founded_item_select := using_items(self, []); where wr1 : sizeof(users) > 0; wr2 : not (self in users); -end_entity; "#).unwrap(); +end_entity; "#, + ) + .unwrap(); assert_eq!(e.0, ""); } @@ -2784,7 +3166,10 @@ end_entity; "#).unwrap(); fn test_encoded_string_literal() { assert_eq!(&encoded_string_literal("\"\"").unwrap().1, ""); assert_eq!(&encoded_string_literal("\"00000041\"").unwrap().1, "A"); - assert_eq!(&encoded_string_literal("\"0000795e00006238\"").unwrap().1, "神戸"); + assert_eq!( + &encoded_string_literal("\"0000795e00006238\"").unwrap().1, + "神戸" + ); } #[test] @@ -2795,52 +3180,74 @@ end_entity; "#).unwrap(); #[test] fn test_type_decl() { - type_decl(r#"type action_item = select + type_decl( + r#"type action_item = select (action, action_directive, action_method, action_property, shape_representation, versioned_action_request); -end_type; "#).unwrap(); +end_type; "#, + ) + .unwrap(); - let e = type_decl(r#"type day_in_month_number = integer; + let e = type_decl( + r#"type day_in_month_number = integer; where wr1 : {1 <= self <= 31}; - end_type; "#).unwrap(); + end_type; "#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = type_decl(r#"type non_negative_length_measure = length_measure; + let e = type_decl( + r#"type non_negative_length_measure = length_measure; where wr1 : self >= 0.0; -end_type; "#).unwrap(); +end_type; "#, + ) + .unwrap(); assert_eq!(e.0, ""); } #[test] fn test_where_clause() { - let e = where_clause(r#"where - wr1 : {1 <= self <= 31};"#).unwrap(); + let e = where_clause( + r#"where + wr1 : {1 <= self <= 31};"#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = where_clause(r#"where -wr1 : self >= 0.0; "#).unwrap(); + let e = where_clause( + r#"where +wr1 : self >= 0.0; "#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = where_clause(r#"where + let e = where_clause( + r#"where wr1 : sizeof(query(it <* self.items | not (sizeof([ 'automotive_design.manifold_solid_brep', 'automotive_design.faceted_brep', 'automotive_design.mapped_item', - 'automotive_design.axis2_placement_3d'] * typeof(it)) = 1))) = 0;"#).unwrap(); + 'automotive_design.axis2_placement_3d'] * typeof(it)) = 1))) = 0;"#, + ) + .unwrap(); assert_eq!(e.0, ""); } #[test] fn test_domain_rule() { - let e = domain_rule(r#"wr3 : sizeof(query(msb <* query(it <* self.items | + let e = domain_rule( + r#"wr3 : sizeof(query(msb <* query(it <* self.items | 'automotive_design.manifold_solid_brep' in typeof(it)) | not (sizeof( query(csh <* msb_shells(msb) | not (sizeof(query(fcs <* csh\ connected_face_set.cfs_faces | not ('automotive_design.advanced_face' in - typeof(fcs)))) = 0))) = 0))) = 0;"#).unwrap(); + typeof(fcs)))) = 0))) = 0))) = 0;"#, + ) + .unwrap(); assert_eq!(e.0, ";"); - let e = domain_rule(r#"wr10 : (not ('automotive_design.swept_surface' in typeof(face_geometry)) + let e = domain_rule( + r#"wr10 : (not ('automotive_design.swept_surface' in typeof(face_geometry)) or not ('automotive_design.polyline' in typeof(face_geometry\ swept_surface.swept_curve)) or (sizeof(face_geometry\swept_surface. swept_curve\polyline.points) >= 3)) and (sizeof(query(elp_fbnds <* query( @@ -2848,20 +3255,26 @@ wr1 : self >= 0.0; "#).unwrap(); not (sizeof(query(oe <* elp_fbnds.bound\path.edge_list | ( 'automotive_design.polyline' in typeof(oe\oriented_edge.edge_element\ edge_curve.edge_geometry)) and not (sizeof(oe\oriented_edge.edge_element\ - edge_curve.edge_geometry\polyline.points) >= 3))) = 0))) = 0);"#).unwrap(); + edge_curve.edge_geometry\polyline.points) >= 3))) = 0))) = 0);"#, + ) + .unwrap(); assert_eq!(e.0, ";"); - let e = domain_rule(r#"wr4 : sizeof(query(elp_fbnds <* query(bnds <* bounds | + let e = domain_rule( + r#"wr4 : sizeof(query(elp_fbnds <* query(bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | not (sizeof( query(oe <* elp_fbnds.bound\path.edge_list | not (( 'automotive_design.vertex_point' in typeof(oe\edge.edge_start)) and ( 'automotive_design.cartesian_point' in typeof(oe\edge.edge_start\ vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in - typeof(oe\edge.edge_end\vertex_point.vertex_geometry))))) = 0))) = 0;"#).unwrap(); + typeof(oe\edge.edge_end\vertex_point.vertex_geometry))))) = 0))) = 0;"#, + ) + .unwrap(); assert_eq!(e.0, ";"); - let e = domain_rule(r#"wr1 : (self\geometric_representation_item.dim = 3) or (sizeof(query(curve <* + let e = domain_rule( + r#"wr1 : (self\geometric_representation_item.dim = 3) or (sizeof(query(curve <* self.boundaries | not (('automotive_design.circle' in typeof(curve)) or ('automotive_design.ellipse' in typeof(curve)) or ( 'automotive_design.b_spline_curve' in typeof(curve)) and (curve\ @@ -2869,10 +3282,13 @@ wr1 : self >= 0.0; "#).unwrap(); 'automotive_design.composite_curve' in typeof(curve)) and (curve\ composite_curve.closed_curve = true) or ('automotive_design.polyline' in typeof(curve)) and (curve\polyline.points[loindex(curve\polyline.points)] - = curve\polyline.points[hiindex(curve\polyline.points)])))) = 0);"#).unwrap(); + = curve\polyline.points[hiindex(curve\polyline.points)])))) = 0);"#, + ) + .unwrap(); assert_eq!(e.0, ";"); - let e = domain_rule(r#"wr4 : sizeof(query(sa <* get_shape_aspects(self) | ('automotive_design.' + let e = domain_rule( + r#"wr4 : sizeof(query(sa <* get_shape_aspects(self) | ('automotive_design.' + 'composite_shape_aspect' in typeof(sa)) and (sa.name = 'compound feature in solid') and (sizeof(query(rh1 <* get_round_holes_for_composite_hole(bag_to_set(usedin(sa, @@ -2880,7 +3296,9 @@ wr1 : self >= 0.0; "#).unwrap(); | sizeof(query(rh2 <* get_round_holes_for_composite_hole(bag_to_set(usedin (sa, 'automotive_design.shape_aspect_relationship.relating_shape_aspect' ))) | (rh1 :<>: rh2) and (get_diameter_for_round_hole(rh1) = - get_diameter_for_round_hole(rh2)))) = 0)) = 0))) = 1;"#).unwrap(); + get_diameter_for_round_hole(rh2)))) = 0)) = 0))) = 1;"#, + ) + .unwrap(); assert_eq!(e.0, ";"); } @@ -2892,38 +3310,53 @@ wr1 : self >= 0.0; "#).unwrap(); #[test] fn test_aggregate_initializer() { - let e = aggregate_initializer(r#"[d2, normalise(cross_product(d1, d2))\vector.orientation, d1]"#).unwrap(); + let e = aggregate_initializer( + r#"[d2, normalise(cross_product(d1, d2))\vector.orientation, d1]"#, + ) + .unwrap(); assert_eq!(e.0, ""); } #[test] fn test_query_expression() { - let e = query_expression(r#"query(fcs <* csh\ + let e = query_expression( + r#"query(fcs <* csh\ connected_face_set.cfs_faces | not ('automotive_design.advanced_face' in - typeof(fcs)))"#).unwrap(); + typeof(fcs)))"#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = query_expression(r#"query(it <* self.items | not (sizeof([ + let e = query_expression( + r#"query(it <* self.items | not (sizeof([ 'automotive_design.manifold_solid_brep', 'automotive_design.faceted_brep', 'automotive_design.mapped_item', - 'automotive_design.axis2_placement_3d'] * typeof(it)) = 1))"#).unwrap(); + 'automotive_design.axis2_placement_3d'] * typeof(it)) = 1))"#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = query_expression(r#"query(msb <* query(it <* self.items | + let e = query_expression( + r#"query(msb <* query(it <* self.items | 'automotive_design.manifold_solid_brep' in typeof(it)) | not (sizeof( query(csh <* msb_shells(msb) | not (sizeof(query(fcs <* csh\ connected_face_set.cfs_faces | not ('automotive_design.advanced_face' in - typeof(fcs)))) = 0))) = 0))"#).unwrap(); + typeof(fcs)))) = 0))) = 0))"#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = query_expression(r#"query(elp_fbnds <* query(bnds <* bounds | + let e = query_expression( + r#"query(elp_fbnds <* query(bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | not (sizeof( query(oe <* elp_fbnds.bound\path.edge_list | not (( 'automotive_design.vertex_point' in typeof(oe\edge.edge_start)) and ( 'automotive_design.cartesian_point' in typeof(oe\edge.edge_start\ vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in - typeof(oe\edge.edge_end\vertex_point.vertex_geometry))))) = 0))"#).unwrap(); + typeof(oe\edge.edge_end\vertex_point.vertex_geometry))))) = 0))"#, + ) + .unwrap(); assert_eq!(e.0, ""); } @@ -2932,18 +3365,25 @@ wr1 : self >= 0.0; "#).unwrap(); let e = expression(r#"{1 <= self <= 31}"#).unwrap(); assert_eq!(e.0, ""); - let e = expression(r#"sizeof(query(msb <* query(it <* self.items | + let e = expression( + r#"sizeof(query(msb <* query(it <* self.items | 'automotive_design.manifold_solid_brep' in typeof(it)) | not (sizeof( query(csh <* msb_shells(msb) | not (sizeof(query(fcs <* csh\ connected_face_set.cfs_faces | not ('automotive_design.advanced_face' in - typeof(fcs)))) = 0))) = 0)))"#).unwrap(); + typeof(fcs)))) = 0))) = 0)))"#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = expression(r#"cross_product(axis, - ref_direction).magnitude"#).unwrap(); + let e = expression( + r#"cross_product(axis, + ref_direction).magnitude"#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = expression(r#"sizeof(query(sa <* get_shape_aspects(self) | ('automotive_design.' + let e = expression( + r#"sizeof(query(sa <* get_shape_aspects(self) | ('automotive_design.' + 'composite_shape_aspect' in typeof(sa)) and (sa.name = 'compound feature in solid') and (sizeof(query(rh1 <* get_round_holes_for_composite_hole(bag_to_set(usedin(sa, @@ -2951,19 +3391,23 @@ wr1 : self >= 0.0; "#).unwrap(); | sizeof(query(rh2 <* get_round_holes_for_composite_hole(bag_to_set(usedin (sa, 'automotive_design.shape_aspect_relationship.relating_shape_aspect' ))) | (rh1 :<>: rh2) and (get_diameter_for_round_hole(rh1) = - get_diameter_for_round_hole(rh2)))) = 0)) = 0))) = 1"#).unwrap(); + get_diameter_for_round_hole(rh2)))) = 0)) = 0))) = 1"#, + ) + .unwrap(); assert_eq!(e.0, ""); let e = expression(r#"normalise(cross_product(d1, d2))\vector.orientation"#).unwrap(); assert_eq!(e.0, ""); - let e = expression(r#"[d2, normalise(cross_product(d1, d2))\vector.orientation, d1]"#).unwrap(); + let e = + expression(r#"[d2, normalise(cross_product(d1, d2))\vector.orientation, d1]"#).unwrap(); assert_eq!(e.0, ""); } #[test] fn test_function_decl() { - let e = function_decl(r#"function acyclic(arg1 : generic_expression; arg2 : set of generic_expression) + let e = function_decl( + r#"function acyclic(arg1 : generic_expression; arg2 : set of generic_expression) : boolean; local result : boolean; @@ -2990,10 +3434,13 @@ end_local; end_repeat; return (result); end_if; -end_function; "#).unwrap(); +end_function; "#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = function_decl(r#"function build_axes(axis : direction; ref_direction : direction) : list [3:3] + let e = function_decl( + r#"function build_axes(axis : direction; ref_direction : direction) : list [3:3] of direction; local d1 : direction; @@ -3002,19 +3449,25 @@ end_local; d1 := nvl(normalise(axis), dummy_gri||direction([0.0, 0.0, 1.0])); d2 := first_proj_axis(d1, ref_direction); return ([d2, normalise(cross_product(d1, d2))\vector.orientation, d1]); -end_function; "#).unwrap(); +end_function; "#, + ) + .unwrap(); assert_eq!(e.0, ""); } #[test] fn test_return_stmt() { - let e = return_stmt(r#"return ([d2, normalise(cross_product(d1, d2))\vector.orientation, d1]);"#).unwrap(); + let e = return_stmt( + r#"return ([d2, normalise(cross_product(d1, d2))\vector.orientation, d1]);"#, + ) + .unwrap(); assert_eq!(e.0, ""); } #[test] fn test_if_stmt() { - let e = if_stmt(r#"if 'automotive_design.multiple_arity_generic_expression' in typeof(arg1) + let e = if_stmt( + r#"if 'automotive_design.multiple_arity_generic_expression' in typeof(arg1) then result := true; repeat i := 1 to sizeof(arg1\multiple_arity_generic_expression.operands); @@ -3022,52 +3475,72 @@ end_function; "#).unwrap(); operands[i], arg2 + [arg1]); end_repeat; return (result); - end_if;"#).unwrap(); + end_if;"#, + ) + .unwrap(); assert_eq!(e.0, ""); } #[test] fn test_repeat_stmt() { - let e = repeat_stmt(r#"repeat i := 1 to sizeof(arg1\multiple_arity_generic_expression.operands); + let e = repeat_stmt( + r#"repeat i := 1 to sizeof(arg1\multiple_arity_generic_expression.operands); result := result and acyclic(arg1\multiple_arity_generic_expression. operands[i], arg2 + [arg1]); - end_repeat;"#).unwrap(); + end_repeat;"#, + ) + .unwrap(); assert_eq!(e.0, ""); } #[test] fn test_function_call() { - let e = function_call(r#"usedin + let e = function_call( + r#"usedin (sa, 'automotive_design.shape_aspect_relationship.relating_shape_aspect' - )"#).unwrap(); + )"#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = function_call(r#"sizeof(query(fcs <* csh\ + let e = function_call( + r#"sizeof(query(fcs <* csh\ connected_face_set.cfs_faces | not ('automotive_design.advanced_face' in - typeof(fcs))))"#).unwrap(); + typeof(fcs))))"#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = function_call(r#"sizeof( + let e = function_call( + r#"sizeof( query(csh <* msb_shells(msb) | not (sizeof(query(fcs <* csh\ connected_face_set.cfs_faces | not ('automotive_design.advanced_face' in - typeof(fcs)))) = 0)))"#).unwrap(); + typeof(fcs)))) = 0)))"#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = function_call(r#"sizeof(query(msb <* query(it <* self.items | + let e = function_call( + r#"sizeof(query(msb <* query(it <* self.items | 'automotive_design.manifold_solid_brep' in typeof(it)) | not (sizeof( query(csh <* msb_shells(msb) | not (sizeof(query(fcs <* csh\ connected_face_set.cfs_faces | not ('automotive_design.advanced_face' in - typeof(fcs)))) = 0))) = 0)))"#).unwrap(); + typeof(fcs)))) = 0))) = 0)))"#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = function_call(r#"sizeof(query(elp_fbnds <* query(bnds <* bounds | + let e = function_call( + r#"sizeof(query(elp_fbnds <* query(bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | not (sizeof( query(oe <* elp_fbnds.bound\path.edge_list | not (( 'automotive_design.vertex_point' in typeof(oe\edge.edge_start)) and ( 'automotive_design.cartesian_point' in typeof(oe\edge.edge_start\ vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in - typeof(oe\edge.edge_end\vertex_point.vertex_geometry))))) = 0)))"#).unwrap(); + typeof(oe\edge.edge_end\vertex_point.vertex_geometry))))) = 0)))"#, + ) + .unwrap(); assert_eq!(e.0, ""); let e = function_call(r#"using_items(self, [])"#).unwrap(); @@ -3128,19 +3601,25 @@ end_function; "#).unwrap(); let e = simple_factor("csh\\connected_face_set.cfs_faces").unwrap(); assert_eq!(e.0, ""); - let e = simple_factor(r#"(( + let e = simple_factor( + r#"(( 'automotive_design.vertex_point' in typeof(oe\edge.edge_start)) and ( 'automotive_design.cartesian_point' in typeof(oe\edge.edge_start\ vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in - typeof(oe\edge.edge_end)))"#).unwrap(); + typeof(oe\edge.edge_end)))"#, + ) + .unwrap(); assert_eq!(e.0, ""); - let e = simple_factor(r#"not (( + let e = simple_factor( + r#"not (( 'automotive_design.vertex_point' in typeof(oe\edge.edge_start)) and ( 'automotive_design.cartesian_point' in typeof(oe\edge.edge_start\ vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in - typeof(oe\edge.edge_end\vertex_point.vertex_geometry)))"#).unwrap(); + typeof(oe\edge.edge_end\vertex_point.vertex_geometry)))"#, + ) + .unwrap(); assert_eq!(e.0, ""); } @@ -3167,29 +3646,39 @@ end_function; "#).unwrap(); #[test] fn test_select_type() { - let e = select_type(r#"select + let e = select_type( + r#"select (action, action_directive, action_method, action_property, - shape_representation, versioned_action_request);"#).unwrap(); + shape_representation, versioned_action_request);"#, + ) + .unwrap(); assert_eq!(e.0, ";"); } #[test] fn test_underlying_type() { - let e = underlying_type(r#"select + let e = underlying_type( + r#"select (action, action_directive, action_method, action_property, - shape_representation, versioned_action_request);"#).unwrap(); + shape_representation, versioned_action_request);"#, + ) + .unwrap(); assert_eq!(e.0, ";"); } #[test] fn test_simple_id() { - assert_eq!(simple_id("action").unwrap().1, - SimpleId("action")); - assert_eq!(simple_id("action_directive").unwrap().1, - SimpleId("action_directive")); - assert_eq!(simple_id("action_method").unwrap().1, - SimpleId("action_method")); - assert_eq!(simple_id("action_property").unwrap().1, - SimpleId("action_property")); + assert_eq!(simple_id("action").unwrap().1, SimpleId("action")); + assert_eq!( + simple_id("action_directive").unwrap().1, + SimpleId("action_directive") + ); + assert_eq!( + simple_id("action_method").unwrap().1, + SimpleId("action_method") + ); + assert_eq!( + simple_id("action_property").unwrap().1, + SimpleId("action_property") + ); } - } From ca924e2648f56c34564d03246f4a6e3e24f307c9 Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 16:29:57 +0200 Subject: [PATCH 15/24] Clippy for express/ --- express/src/gen.rs | 24 +++++++++--------------- express/src/parse.rs | 2 +- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/express/src/gen.rs b/express/src/gen.rs index 32251fd..e7436be 100644 --- a/express/src/gen.rs +++ b/express/src/gen.rs @@ -33,7 +33,7 @@ impl<'a> TypeMap<'a> { self.to_rtype(s) } fn is_entity(&self, s: &str) -> bool { - let t = self.0.get(s).expect(&format!("Could not get {:?}", s)); + let t = self.0.get(s).unwrap_or_else(|| panic!("Could not get {:?}", s)); match &t { Type::Entity { .. } => true, Type::Select(v) => v.iter().all(|s| self.is_entity(s)), @@ -41,7 +41,7 @@ impl<'a> TypeMap<'a> { } } fn to_rtype(&self, s: &str) -> String { - let t = self.0.get(s).expect(&format!("Could not get {:?}", s)); + let t = self.0.get(s).unwrap_or_else(|| panic!("Could not get {:?}", s)); match &t { Type::Entity { .. } | Type::Redeclared(_) @@ -90,7 +90,7 @@ impl<'a> TypeMap<'a> { if !self.0.contains_key(s) { self.build(s); } - let t = self.0.get(s).expect(&format!("Could not get {:?}", s)); + let t = self.0.get(s).unwrap_or_else(|| panic!("Could not get {:?}", s)); if let Type::Entity { attrs, .. } = &t { attrs.clone() } else { @@ -367,7 +367,7 @@ impl<'a> HasId for {0}<'a> {{ "#, camel_name, type_map.to_inner_rtype(self), - type_map.to_inner_rtype(&*type_) + type_map.to_inner_rtype(type_) )?; } @@ -423,7 +423,7 @@ impl<'a> ParseFromChunks<'a> for {0}_<'a> {{ writeln!( buf, r#" let (s, _) = tag("{}(")(strs[0])?;"#, - capitalize(&name) + capitalize(name) )?; // Then, write a series of parsers which build the whole struct for (i, a) in attrs.iter().enumerate() { @@ -746,11 +746,8 @@ impl<'a> Declaration<'a> { } impl<'a> TypeDecl<'a> { fn disambiguate(&mut self, entity_names: &HashSet<&str>) { - match &mut self.underlying_type { - UnderlyingType::Constructed(c) => { - c.disambiguate(entity_names); - } - _ => (), + if let UnderlyingType::Constructed(c) = &mut self.underlying_type { + c.disambiguate(entity_names); } } } @@ -781,7 +778,7 @@ impl<'a> SimpleExpression<'a> { return None; } let factor = &term.0; - if !factor.1.is_none() { + if factor.1.is_some() { return None; } let simple_factor = &factor.0; @@ -1061,10 +1058,7 @@ impl<'a> SimpleTypes<'a> { } impl<'a> ConstructedTypes<'a> { fn disambiguate(&mut self, entity_names: &HashSet<&str>) { - match self { - ConstructedTypes::Select(e) => e.disambiguate(entity_names), - _ => (), - } + if let ConstructedTypes::Select(e) = self { e.disambiguate(entity_names) } } } impl<'a> SelectType<'a> { diff --git a/express/src/parse.rs b/express/src/parse.rs index 62af870..0baabbc 100644 --- a/express/src/parse.rs +++ b/express/src/parse.rs @@ -2929,7 +2929,7 @@ where end_entity; "#, ) .unwrap(); - assert!(e.0 == ""); + assert!(e.0.is_empty()); let e = entity_decl( r#"entity advanced_face From 5871f213fca3b68d9b5ab6b2dafdb369e554970f Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 16:32:28 +0200 Subject: [PATCH 16/24] Rust 2021, deps bump, rustfmt for wasm/ --- wasm/Cargo.toml | 8 +++----- wasm/src/lib.rs | 11 ++++++----- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/wasm/Cargo.toml b/wasm/Cargo.toml index e463b4b..3c9bdcb 100644 --- a/wasm/Cargo.toml +++ b/wasm/Cargo.toml @@ -2,15 +2,13 @@ name = "wasm" version = "0.1.0" authors = ["Matt Keeter "] -edition = "2018" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +edition = "2021" [dependencies] +console_log = "1" +log = "0.4" step = { path = "../step", default-features = false } triangulate = { path = "../triangulate", default-features = false, features = [] } -console_log = "0.2" -log = "0.4.14" wasm-bindgen = "0.2" [lib] diff --git a/wasm/src/lib.rs b/wasm/src/lib.rs index 0e65527..ac0656e 100644 --- a/wasm/src/lib.rs +++ b/wasm/src/lib.rs @@ -1,3 +1,4 @@ +use log::Level; /// Takes a STEP file (as an array of bytes), and returns a triangle mesh. /// /// Vertices are packed into rows of 9 floats, representing @@ -8,7 +9,6 @@ /// Vertices are rows of three indexes into the triangle array /// use wasm_bindgen::prelude::*; -use log::{Level}; #[wasm_bindgen] pub fn init_log() { @@ -24,9 +24,9 @@ pub fn step_to_triangle_buf(data: String) -> Vec { let step = StepFile::parse(&flat); let (mut mesh, _stats) = triangulate(&step); - let (mut xmin, mut xmax) = (std::f64::INFINITY, -std::f64::INFINITY); - let (mut ymin, mut ymax) = (std::f64::INFINITY, -std::f64::INFINITY); - let (mut zmin, mut zmax) = (std::f64::INFINITY, -std::f64::INFINITY); + let (mut xmin, mut xmax) = (f64::INFINITY, -f64::INFINITY); + let (mut ymin, mut ymax) = (f64::INFINITY, -f64::INFINITY); + let (mut zmin, mut zmax) = (f64::INFINITY, -f64::INFINITY); for pos in mesh.verts.iter().map(|p| p.pos) { xmin = xmin.min(pos.x); xmax = xmax.max(pos.x); @@ -45,7 +45,8 @@ pub fn step_to_triangle_buf(data: String) -> Vec { pos.z = (pos.z - zc) / scale * 200.0; } - mesh.triangles.iter() + mesh.triangles + .iter() .flat_map(|v| v.verts.iter()) .map(|p| &mesh.verts[*p as usize]) .flat_map(|v| v.pos.iter().chain(&v.norm).chain(&v.color)) From f0de0f79be3665c5b67b71a3674e339bf329f6ea Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 16:34:28 +0200 Subject: [PATCH 17/24] Ran cargo sort. --- Cargo.toml | 2 +- gui/Cargo.toml | 6 +++--- step/Cargo.toml | 2 +- triangulate/Cargo.toml | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 1472c85..ac6bc58 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,9 +7,9 @@ resolver = "2" members = [ "cdt", "express", - "step", "gui", "nurbs", + "step", "triangulate", ] exclude = [ diff --git a/gui/Cargo.toml b/gui/Cargo.toml index 7d7e983..b09e491 100644 --- a/gui/Cargo.toml +++ b/gui/Cargo.toml @@ -5,12 +5,10 @@ authors = ["Matt Keeter "] edition = "2021" [features] -default = [ "bundle-shaders" ] +default = ["bundle-shaders"] bundle-shaders = [] [dependencies] -step = { path = "../step" } -triangulate = { path = "../triangulate" } bytemuck = { version = "1", features = ["derive"] } clap = "3" @@ -18,5 +16,7 @@ env_logger = "0.11" itertools = "0.13" nalgebra-glm = "0.18.0" pollster = "0.3" +step = { path = "../step" } +triangulate = { path = "../triangulate" } wgpu = "0.9" winit = "0.26.0" diff --git a/step/Cargo.toml b/step/Cargo.toml index afcdcb7..73fa4ac 100644 --- a/step/Cargo.toml +++ b/step/Cargo.toml @@ -10,7 +10,7 @@ fast-float = "0.2" log = "0.4" memchr = "2.7" nom = "7" -rayon = {version = "1.10", optional = true } +rayon = { version = "1.10", optional = true } [features] default = ["rayon"] diff --git a/triangulate/Cargo.toml b/triangulate/Cargo.toml index 211ea78..90263e3 100644 --- a/triangulate/Cargo.toml +++ b/triangulate/Cargo.toml @@ -6,16 +6,16 @@ edition = "2021" [dependencies] cdt = { path = "../cdt" } -nurbs = { path = "../nurbs" } -step = { path = "../step" } log = "0.4" nalgebra-glm = "0.18" +nurbs = { path = "../nurbs" } rayon = { version = "1.10", optional = true } +step = { path = "../step" } thiserror = "1.0" [features] -default = [ "rayon" ] +default = ["rayon"] rayon = ["dep:rayon", "step/rayon"] [dev-dependencies] From 8e0bad170e0a9f7e57bd366c253c6ed101eabd1a Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Fri, 17 May 2024 16:34:41 +0200 Subject: [PATCH 18/24] Another exmaple. --- examples/pump_manifold.step | 5899 +++++++++++++++++++++++++++++++++++ 1 file changed, 5899 insertions(+) create mode 100644 examples/pump_manifold.step diff --git a/examples/pump_manifold.step b/examples/pump_manifold.step new file mode 100644 index 0000000..b6b6587 --- /dev/null +++ b/examples/pump_manifold.step @@ -0,0 +1,5899 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION (( 'STEP AP214' ), + '1' ); +FILE_NAME ('Pump Manifold v2 (5-axis).STEP', + '2021-04-23T13:56:38', + ( '' ), + ( '' ), + 'SwSTEP 2.0', + 'SolidWorks 2020', + '' ); +FILE_SCHEMA (( 'AUTOMOTIVE_DESIGN' )); +ENDSEC; + +DATA; +#1 = ORIENTED_EDGE ( 'NONE', *, *, #1713, .F. ) ; +#2 = CARTESIAN_POINT ( 'NONE', ( 0.5349920402363709249, -0.02020266384996500034, 6.159507043090530765 ) ) ; +#3 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#4 = ORIENTED_EDGE ( 'NONE', *, *, #2914, .T. ) ; +#5 = CARTESIAN_POINT ( 'NONE', ( 1.174683493581610394, -0.2451911293397369684, 5.593666288758528005 ) ) ; +#6 = CARTESIAN_POINT ( 'NONE', ( 0.4533260224253247705, 1.114133941910701697, 5.562957933457567172 ) ) ; +#7 = VECTOR ( 'NONE', #3904, 39.37007874015748143 ) ; +#8 = CARTESIAN_POINT ( 'NONE', ( 0.3858400872864291564, 0.05626580631045724479, 5.986163717094036052 ) ) ; +#9 = CARTESIAN_POINT ( 'NONE', ( -0.2128160370557128644, -0.5720155976569526457, 6.248577449783635274 ) ) ; +#10 = CARTESIAN_POINT ( 'NONE', ( 0.6175879818461701420, 0.2419680217477961914, 6.305994169016122974 ) ) ; +#11 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #678 ) ; +#12 = CARTESIAN_POINT ( 'NONE', ( -0.2500000000000003331, -0.5863793521062122815, 6.064721239031350741 ) ) ; +#13 = EDGE_CURVE ( 'NONE', #4846, #784, #3195, .T. ) ; +#14 = CARTESIAN_POINT ( 'NONE', ( 0.2453168506540885641, 0.4408787697997971211, 6.122637038285877686 ) ) ; +#15 = CARTESIAN_POINT ( 'NONE', ( -0.9736823578055235906, -0.3600831771678402182, 5.610249138468685004 ) ) ; +#16 = CARTESIAN_POINT ( 'NONE', ( -0.6969867810375158790, 0.6044780998699881280, 5.470303972386260760 ) ) ; +#17 = VECTOR ( 'NONE', #2539, 39.37007874015748143 ) ; +#18 = CARTESIAN_POINT ( 'NONE', ( -0.6495190528383287809, 0.3750000000000000555, 5.128999999999999559 ) ) ; +#19 = ORIENTED_EDGE ( 'NONE', *, *, #3625, .F. ) ; +#20 = CARTESIAN_POINT ( 'NONE', ( -1.990051048614448869E-16, -1.625000000000000000, 3.104000000000000092 ) ) ; +#21 = ORIENTED_EDGE ( 'NONE', *, *, #4074, .F. ) ; +#22 = CARTESIAN_POINT ( 'NONE', ( 0.9236543808441199932, 0.5332721054185275422, 5.661815083166008122 ) ) ; +#23 = CARTESIAN_POINT ( 'NONE', ( -0.2610131848876089400, -1.171304821102546523, 5.763258631748769290 ) ) ; +#24 = ORIENTED_EDGE ( 'NONE', *, *, #972, .T. ) ; +#25 = CIRCLE ( 'NONE', #2267, 0.2500000000000000000 ) ; +#26 = CARTESIAN_POINT ( 'NONE', ( 0.02721423418933738639, -0.3899206457765539424, 5.903217844721065255 ) ) ; +#27 = EDGE_CURVE ( 'NONE', #2152, #3596, #976, .T. ) ; +#28 = CARTESIAN_POINT ( 'NONE', ( 0.4017768894891085574, 0.03969351421473179403, 6.002107730689083098 ) ) ; +#29 = CARTESIAN_POINT ( 'NONE', ( -0.6135904484930136960, -0.1412060984789980378, 6.271836282905964843 ) ) ; +#30 = ORIENTED_EDGE ( 'NONE', *, *, #2860, .T. ) ; +#31 = CARTESIAN_POINT ( 'NONE', ( -0.05875207217737442311, -1.204307028110113587, 5.825994415577062213 ) ) ; +#32 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, -0.9455000000000001181, 3.479000000000000092 ) ) ; +#33 = VERTEX_POINT ( 'NONE', #1898 ) ; +#34 = CARTESIAN_POINT ( 'NONE', ( 1.167164419797269481, -0.2787910468799476571, 5.661797653372190098 ) ) ; +#35 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#36 = CARTESIAN_POINT ( 'NONE', ( -0.8580018974549624700, 0.8389434441547269916, 5.726267908649916194 ) ) ; +#37 = CARTESIAN_POINT ( 'NONE', ( 0.3812804810703800951, 0.4711274726873457275, 6.243538158947889549 ) ) ; +#38 = CARTESIAN_POINT ( 'NONE', ( 0.2985787446255397382, -1.162257944274837751, 5.725042583526117390 ) ) ; +#39 = CARTESIAN_POINT ( 'NONE', ( -0.2499999999999719669, 0.4827808844384092746, 6.169373990188266710 ) ) ; +#40 = LINE ( 'NONE', #4093, #743 ) ; +#41 = CARTESIAN_POINT ( 'NONE', ( -0.8883796930997036601, -0.8067086624016248653, 5.768205459015388392 ) ) ; +#42 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #1656, #3284, #2112, #1283 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.617993877991495744, 3.665191429188092265 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9106836025229592124, 0.9106836025229592124, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#43 = CARTESIAN_POINT ( 'NONE', ( 0.1845071557944078511, -0.6019879651539370435, 6.271836282905964843 ) ) ; +#44 = EDGE_CURVE ( 'NONE', #2626, #1879, #3180, .T. ) ; +#45 = CIRCLE ( 'NONE', #732, 0.2500000000000000000 ) ; +#46 = EDGE_CURVE ( 'NONE', #4308, #1540, #4302, .T. ) ; +#47 = CARTESIAN_POINT ( 'NONE', ( 0.2353040076608471365, 0.5350761538223037794, 6.218077904449994087 ) ) ; +#48 = VERTEX_POINT ( 'NONE', #1653 ) ; +#49 = FACE_OUTER_BOUND ( 'NONE', #4898, .T. ) ; +#50 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1494, #3069, #3948, #4701, #1041, #284, #4305, #1925, #3116, #630, #5175, #1524, #4773, #2109, #4541, #4143, #2029, #2400, #1685, #5251, #2823, #1627, #3743, #1573, #2878, #1654, #10, #4936, #3631, #3282, #4034, #878, #769, #1281, #2425, #3196, #364 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.06250000000000378864, 0.09375000000000696665, 0.1250000000000101308, 0.1875000000000167089, 0.2187500000000189848, 0.2343750000000199840, 0.2500000000000209832, 0.3750000000000173750, 0.5000000000000138778, 0.6250000000000103251, 0.6875000000000083267, 0.7187500000000065503, 0.7343750000000058842, 0.7500000000000051070, 0.8125000000000041078, 0.8437500000000046629, 0.8750000000000052180, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#51 = EDGE_LOOP ( 'NONE', ( #510, #4230, #2149, #1182, #450, #2575 ) ) ; +#52 = DIRECTION ( 'NONE', ( 0.5000000000000000000, -0.8660254037844385966, 0.000000000000000000 ) ) ; +#53 = CARTESIAN_POINT ( 'NONE', ( 0.5078194151786449284, -0.2931896760531102486, 6.064721239031358735 ) ) ; +#54 = EDGE_CURVE ( 'NONE', #1049, #3205, #987, .T. ) ; +#55 = ORIENTED_EDGE ( 'NONE', *, *, #1447, .T. ) ; +#56 = CARTESIAN_POINT ( 'NONE', ( 0.08212075968755740141, -0.3811737472290716022, 5.928666586421327267 ) ) ; +#57 = EDGE_CURVE ( 'NONE', #3045, #4452, #1902, .T. ) ; +#58 = DIRECTION ( 'NONE', ( -0.5000000000000003331, 0.8660254037844383745, -5.015931217523663082E-16 ) ) ; +#59 = AXIS2_PLACEMENT_3D ( 'NONE', #3232, #444, #391 ) ; +#60 = DIRECTION ( 'NONE', ( 9.480812427427115842E-16, 0.7660444431189776804, -0.6427876096865396960 ) ) ; +#61 = ORIENTED_EDGE ( 'NONE', *, *, #4987, .T. ) ; +#62 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, -1.187171007058380079, 5.805572500925889834 ) ) ; +#63 = CARTESIAN_POINT ( 'NONE', ( 0.4290832926986039575, -0.4607818666749401437, 6.271836282905964843 ) ) ; +#64 = VERTEX_POINT ( 'NONE', #1746 ) ; +#65 = CIRCLE ( 'NONE', #931, 0.1330000000000000626 ) ; +#66 = CARTESIAN_POINT ( 'NONE', ( 1.168790200520257949, -0.2718931576407426776, 5.649528895314560373 ) ) ; +#67 = FACE_BOUND ( 'NONE', #2121, .T. ) ; +#68 = AXIS2_PLACEMENT_3D ( 'NONE', #3250, #3999, #3600 ) ; +#69 = CARTESIAN_POINT ( 'NONE', ( 0.3672144580752281784, 0.1311540876506136766, 5.921530663858309396 ) ) ; +#70 = VECTOR ( 'NONE', #1891, 39.37007874015748143 ) ; +#71 = CARTESIAN_POINT ( 'NONE', ( -1.990051048614448869E-16, -1.491999999999999993, 3.104000000000000092 ) ) ; +#72 = ADVANCED_FACE ( 'NONE', ( #4837 ), #1310, .T. ) ; +#73 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, -1.187171007058380079, 5.805572500925889834 ) ) ; +#74 = DIRECTION ( 'NONE', ( -0.5566703992264196987, -0.3213938048432689043, -0.7660444431189782355 ) ) ; +#75 = CARTESIAN_POINT ( 'NONE', ( 0.2488028066943295535, 0.4566063068286059790, 6.141081488922458753 ) ) ; +#76 = CARTESIAN_POINT ( 'NONE', ( -1.152466486563213266, -0.3343934906475202751, 5.738551864800869318 ) ) ; +#77 = DIRECTION ( 'NONE', ( 0.6634139481689391715, 0.3830222215594882296, 0.6427876096865391409 ) ) ; +#78 = DIRECTION ( 'NONE', ( 0.4999999999999998335, -0.8660254037844388186, 0.000000000000000000 ) ) ; +#79 = EDGE_LOOP ( 'NONE', ( #3434, #4996, #3214, #4554, #4976, #3710, #1274, #4447, #2412, #2787 ) ) ; +#80 = CARTESIAN_POINT ( 'NONE', ( 0.1880857718989288885, -0.3779717125496244168, 6.024604706213823491 ) ) ; +#81 = ORIENTED_EDGE ( 'NONE', *, *, #3599, .F. ) ; +#82 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.941753592594208655, 4.129000000000000448 ) ) ; +#83 = CARTESIAN_POINT ( 'NONE', ( 0.6110545510017614257, 0.1292020995931557337, 6.265682753853949905 ) ) ; +#84 = ORIENTED_EDGE ( 'NONE', *, *, #156, .T. ) ; +#85 = CARTESIAN_POINT ( 'NONE', ( -0.08095659026011758908, -0.3814217031127505320, 5.927934137911858414 ) ) ; +#86 = CARTESIAN_POINT ( 'NONE', ( -0.7795816565475354176, -0.6521642734793838825, 5.195033353103291951 ) ) ; +#87 = EDGE_CURVE ( 'NONE', #1725, #3806, #2808, .T. ) ; +#88 = DIRECTION ( 'NONE', ( -9.381338752702724618E-17, -0.7660444431189782355, 0.6427876096865392519 ) ) ; +#89 = ORIENTED_EDGE ( 'NONE', *, *, #3694, .F. ) ; +#90 = CARTESIAN_POINT ( 'NONE', ( -0.3490175779807502821, -0.4714851564032848663, 6.220568016776845788 ) ) ; +#91 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#92 = VERTEX_POINT ( 'NONE', #4148 ) ; +#93 = CARTESIAN_POINT ( 'NONE', ( 1.165413537852183046, -0.2861116099330604512, 5.674432225319546497 ) ) ; +#94 = FACE_BOUND ( 'NONE', #613, .T. ) ; +#95 = DIRECTION ( 'NONE', ( 0.6634139481689380613, 0.3830222215594881185, -0.6427876096865401401 ) ) ; +#96 = CARTESIAN_POINT ( 'NONE', ( -1.174683493581610394, 0.2451911293397338321, 5.593666288758528005 ) ) ; +#97 = AXIS2_PLACEMENT_3D ( 'NONE', #4928, #3274, #4981 ) ; +#98 = CARTESIAN_POINT ( 'NONE', ( 0.3129319339439105563, -1.158476460817003284, 5.706894369573124237 ) ) ; +#99 = CARTESIAN_POINT ( 'NONE', ( 1.681607939076289693, 0.9708767962971043275, 4.129000000000000448 ) ) ; +#100 = CARTESIAN_POINT ( 'NONE', ( -0.1441924260139419434, 0.3622802205436811418, 5.986163717094036052 ) ) ; +#101 = EDGE_CURVE ( 'NONE', #4722, #5261, #754, .T. ) ; +#102 = CARTESIAN_POINT ( 'NONE', ( -1.875316879142728377, 2.159480987977968463E-16, 4.395566458943346078 ) ) ; +#103 = CARTESIAN_POINT ( 'NONE', ( 0.1833337866915810688, 1.037201647221854817, 5.626845977561663936 ) ) ; +#104 = ORIENTED_EDGE ( 'NONE', *, *, #1131, .T. ) ; +#105 = DIRECTION ( 'NONE', ( -8.741913579725642546E-17, -0.6427876096865391409, -0.7660444431189782355 ) ) ; +#106 = VERTEX_POINT ( 'NONE', #2911 ) ; +#107 = CARTESIAN_POINT ( 'NONE', ( 0.08199867406434753481, 0.6622646858476318732, 6.309402936491323999 ) ) ; +#108 = CARTESIAN_POINT ( 'NONE', ( 1.052513032780921616E-16, 0.8594421130351385107, 6.079000000000000625 ) ) ; +#109 = ORIENTED_EDGE ( 'NONE', *, *, #3102, .F. ) ; +#110 = CARTESIAN_POINT ( 'NONE', ( 0.1027728272521907932, -0.3761643312659375682, 5.943519118018447678 ) ) ; +#111 = CARTESIAN_POINT ( 'NONE', ( 0.4532212584910538800, 0.01066850547945013931, 6.061713407616131200 ) ) ; +#112 = CARTESIAN_POINT ( 'NONE', ( -0.5828218821493366120, -0.06646228943768156538, 6.220550018669189996 ) ) ; +#113 = VERTEX_POINT ( 'NONE', #2385 ) ; +#114 = CARTESIAN_POINT ( 'NONE', ( -0.3763937659076430076, -0.4728864766609821579, 6.241413242728071964 ) ) ; +#115 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#116 = ORIENTED_EDGE ( 'NONE', *, *, #2650, .T. ) ; +#117 = EDGE_CURVE ( 'NONE', #2229, #4068, #1689, .T. ) ; +#118 = FACE_OUTER_BOUND ( 'NONE', #4716, .T. ) ; +#119 = CARTESIAN_POINT ( 'NONE', ( 0.1318118301819133642, -0.6400080469093102353, 6.297086568019218511 ) ) ; +#120 = CARTESIAN_POINT ( 'NONE', ( 0.6250000000000000000, 1.082531754730549300, 4.849972727250857929 ) ) ; +#121 = CARTESIAN_POINT ( 'NONE', ( -1.166758807936108200, -0.2804824736229381554, 5.664700937564727923 ) ) ; +#122 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#123 = CARTESIAN_POINT ( 'NONE', ( 0.9117085864508308601, -0.7802607485546031452, 5.790448158962426817 ) ) ; +#124 = EDGE_LOOP ( 'NONE', ( #4725, #2972, #4390, #632 ) ) ; +#125 = DIRECTION ( 'NONE', ( 1.000000000000000000, -7.284927983104700930E-16, 0.000000000000000000 ) ) ; +#126 = AXIS2_PLACEMENT_3D ( 'NONE', #5094, #3421, #1036 ) ; +#127 = EDGE_CURVE ( 'NONE', #937, #1049, #3184, .T. ) ; +#128 = FACE_OUTER_BOUND ( 'NONE', #4312, .T. ) ; +#129 = ORIENTED_EDGE ( 'NONE', *, *, #1858, .T. ) ; +#130 = DIRECTION ( 'NONE', ( -1.000000000000000000, -3.206354581145229895E-16, -5.280661813753600728E-16 ) ) ; +#131 = EDGE_LOOP ( 'NONE', ( #2809, #780 ) ) ; +#132 = CARTESIAN_POINT ( 'NONE', ( 0.5078194151786440402, -0.2931896760531110258, 6.064721239031358735 ) ) ; +#133 = CARTESIAN_POINT ( 'NONE', ( 0.5744983006260768743, 0.05493878688492387363, 6.209224339581418839 ) ) ; +#134 = EDGE_CURVE ( 'NONE', #2710, #5155, #2317, .T. ) ; +#135 = ORIENTED_EDGE ( 'NONE', *, *, #3025, .T. ) ; +#136 = CIRCLE ( 'NONE', #3820, 0.1329999999999999238 ) ; +#137 = CARTESIAN_POINT ( 'NONE', ( 0.3784719776770349431, -0.09388307426930798949, 5.947863233155842977 ) ) ; +#138 = CARTESIAN_POINT ( 'NONE', ( -0.5654896517568052117, -0.04446015171602393790, 6.197462735090681463 ) ) ; +#139 = VERTEX_POINT ( 'NONE', #2879 ) ; +#140 = CARTESIAN_POINT ( 'NONE', ( -0.2824179910269133953, 0.4516907063371953246, 6.156259057132910328 ) ) ; +#141 = CARTESIAN_POINT ( 'NONE', ( 0.2408186330219852511, 1.175588154601834523, 5.778047900398632919 ) ) ; +#142 = VERTEX_POINT ( 'NONE', #3744 ) ; +#143 = LINE ( 'NONE', #1790, #2138 ) ; +#144 = CARTESIAN_POINT ( 'NONE', ( 0.01730242441871714804, -0.6756856328543110468, 6.316136155439711963 ) ) ; +#145 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4963, #3312, #4176, #935, #1743, #2142, #2588, #531, #4937, #3283, #3394, #3772, #2110, #4908, #469, #2907, #98, #4224, #3716, #1363, #3340, #879, #38, #2564, #2164, #5016, #1256, #2987, #904, #2508, #4623, #3367, #960, #4144, #854, #1333, #2082, #73 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1250000000000670297, 0.1875000000001004474, 0.2187500000001222356, 0.2343750000001279254, 0.2421875000001307565, 0.2460937500001323108, 0.2480468750001275369, 0.2500000000001227907, 0.3750000000002340905, 0.4375000000002896572, 0.4687500000003174683, 0.4843750000003270162, 0.4921875000003319012, 0.4960937500003341771, 0.5000000000003365086, 0.6250000000003073097, 0.6875000000002891021, 0.7187500000002798872, 0.7343750000002754463, 0.7421875000002697842, 0.7460937500002636780, 0.7500000000002574607, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#146 = CIRCLE ( 'NONE', #1430, 0.1874999999999999722 ) ; +#147 = CIRCLE ( 'NONE', #4427, 0.1329999999999999238 ) ; +#148 = CARTESIAN_POINT ( 'NONE', ( -0.8065760819954315153, 0.6773725402578881782, 5.626845977561728773 ) ) ; +#149 = CARTESIAN_POINT ( 'NONE', ( 0.5078194151786449284, 0.2931896760531070845, 6.064721239031358735 ) ) ; +#150 = DIRECTION ( 'NONE', ( -2.239058834696060229E-16, -0.7660444431189782355, -0.6427876096865391409 ) ) ; +#151 = CIRCLE ( 'NONE', #4259, 0.2499999999999997502 ) ; +#152 = CARTESIAN_POINT ( 'NONE', ( 0.9406202507489094256, -0.7451399491914665330, 5.805572500925889834 ) ) ; +#153 = EDGE_CURVE ( 'NONE', #244, #1148, #501, .T. ) ; +#154 = ORIENTED_EDGE ( 'NONE', *, *, #1896, .T. ) ; +#155 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#156 = EDGE_CURVE ( 'NONE', #3330, #64, #145, .T. ) ; +#157 = DIRECTION ( 'NONE', ( -0.3479270227670989701, -0.6026272807587880198, 0.7181832268395659247 ) ) ; +#158 = ORIENTED_EDGE ( 'NONE', *, *, #5019, .F. ) ; +#159 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #5063, #3822, #3009, #96 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 5.759586531581289748, 5.965361603251699840 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9964744966727191455, 0.9964744966727191455, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#160 = CARTESIAN_POINT ( 'NONE', ( 0.8468040777862605450, 0.8502452348555474826, 5.706894369581005932 ) ) ; +#161 = CARTESIAN_POINT ( 'NONE', ( -0.5078194151786449284, -0.2931896760531102486, 6.064721239031358735 ) ) ; +#162 = ORIENTED_EDGE ( 'NONE', *, *, #2700, .F. ) ; +#163 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.305400232354259948E-15, 6.129000000000000448 ) ) ; +#164 = ADVANCED_FACE ( 'NONE', ( #1715 ), #4566, .F. ) ; +#165 = CARTESIAN_POINT ( 'NONE', ( -0.4995670002204923299, -0.4272231195878111176, 6.300697283000245008 ) ) ; +#166 = ORIENTED_EDGE ( 'NONE', *, *, #4074, .T. ) ; +#167 = CARTESIAN_POINT ( 'NONE', ( 0.1441924260139429148, 0.3622802205436811418, 5.986163717094036052 ) ) ; +#168 = CARTESIAN_POINT ( 'NONE', ( -2.622574073917688943E-16, -0.5863793521062189429, 6.064721239031358735 ) ) ; +#169 = ORIENTED_EDGE ( 'NONE', *, *, #448, .F. ) ; +#170 = CARTESIAN_POINT ( 'NONE', ( 1.146287824737969752, -0.3550171052395285631, 5.758966931941142064 ) ) ; +#171 = CARTESIAN_POINT ( 'NONE', ( -0.8386507027534078063, 0.8582877421641494919, 5.691237000054282902 ) ) ; +#172 = DIRECTION ( 'NONE', ( 0.6197348675208463886, 0.7848112473575534764, 0.000000000000000000 ) ) ; +#173 = LINE ( 'NONE', #1306, #3975 ) ; +#174 = CARTESIAN_POINT ( 'NONE', ( -1.170411020691464188, 0.2648293823368776945, 5.636193577738839444 ) ) ; +#175 = CARTESIAN_POINT ( 'NONE', ( -0.2162759239418545476, -0.3968492215508805376, 6.060059581942121021 ) ) ; +#176 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #3360, #3332, #4138, #2951, #929, #2582, #547, #2181, #3815, #141, #1787, #4661, #4267, #2706, #4316, #272, #4345, #643, #3514, #3913, #596, #1937, #1106, #674, #5083, #2332, #2308, #619, #1835, #1913, #5163, #5114, #1862, #3131, #2254, #3459, #3566, #3936 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1250000000000208444, 0.1875000000000314471, 0.2187500000000366929, 0.2343750000000418277, 0.2421875000000444089, 0.2460937500000429934, 0.2500000000000415223, 0.3749999999999914513, 0.4374999999999663602, 0.4687499999999572564, 0.4843749999999527045, 0.4921874999999504841, 0.4960937499999493183, 0.4999999999999482081, 0.6249999999999981126, 0.6875000000000232037, 0.7187500000000397460, 0.7343750000000479616, 0.7421875000000480727, 0.7460937500000481837, 0.7480468750000482947, 0.7500000000000482947, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#177 = CARTESIAN_POINT ( 'NONE', ( 0.8522375873463839957, -0.8448306745001612494, 5.716802663713330901 ) ) ; +#178 = VERTEX_POINT ( 'NONE', #2641 ) ; +#179 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -7.724931805341829553E-16, 3.479000000000000092 ) ) ; +#180 = CYLINDRICAL_SURFACE ( 'NONE', #3489, 0.2500000000000000000 ) ; +#181 = EDGE_CURVE ( 'NONE', #5207, #1212, #681, .T. ) ; +#182 = EDGE_LOOP ( 'NONE', ( #2999, #3612, #3839, #4861, #3373, #1503 ) ) ; +#183 = CARTESIAN_POINT ( 'NONE', ( 0.8552439224233191473, 0.8417541947374405087, 5.721697987463355339 ) ) ; +#184 = DIRECTION ( 'NONE', ( -8.604228440844962202E-16, -0.6427876096865391409, 0.7660444431189782355 ) ) ; +#185 = ORIENTED_EDGE ( 'NONE', *, *, #4935, .F. ) ; +#186 = LINE ( 'NONE', #639, #3645 ) ; +#187 = CARTESIAN_POINT ( 'NONE', ( -0.4887906296192487954, -0.4340111134008607374, 6.297283147373153867 ) ) ; +#188 = ORIENTED_EDGE ( 'NONE', *, *, #4620, .F. ) ; +#189 = CARTESIAN_POINT ( 'NONE', ( 0.2472200199969020462, -0.4179822313542825851, 6.100062796168760570 ) ) ; +#190 = CARTESIAN_POINT ( 'NONE', ( 9.616104937698206923E-16, 0.9441495305713721864, 5.438164591901928802 ) ) ; +#191 = VERTEX_POINT ( 'NONE', #1389 ) ; +#192 = EDGE_CURVE ( 'NONE', #3137, #3096, #1063, .T. ) ; +#193 = VECTOR ( 'NONE', #2690, 39.37007874015748854 ) ; +#194 = CARTESIAN_POINT ( 'NONE', ( 1.158244406827201534, -0.3137803926040474423, 5.714158253678736976 ) ) ; +#195 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4969, #449, #2938, #3802 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#196 = CARTESIAN_POINT ( 'NONE', ( 0.08514161748826275244, -0.6611930406297842344, 6.308844165936527304 ) ) ; +#197 = CARTESIAN_POINT ( 'NONE', ( -0.4290832926986039575, 0.4607818666749370351, 6.271836282905964843 ) ) ; +#198 = CARTESIAN_POINT ( 'NONE', ( -0.3020558858171815686, 1.161354278427377595, 5.720838485057755385 ) ) ; +#199 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, 0.8125000000000000000, 3.479000000000000092 ) ) ; +#200 = CARTESIAN_POINT ( 'NONE', ( -0.2499994067520727725, -0.4730218282470988189, 6.159017837712024601 ) ) ; +#201 = CARTESIAN_POINT ( 'NONE', ( 0.8256951686212817831, -0.8707607534062274945, 5.663349676276620670 ) ) ; +#202 = EDGE_LOOP ( 'NONE', ( #2667, #1402, #2003, #512, #3563, #2265 ) ) ; +#203 = CARTESIAN_POINT ( 'NONE', ( -0.3701311417617450528, -0.1226340845772443122, 5.926640053127418817 ) ) ; +#204 = LINE ( 'NONE', #3478, #4828 ) ; +#205 = ORIENTED_EDGE ( 'NONE', *, *, #2961, .F. ) ; +#206 = CARTESIAN_POINT ( 'NONE', ( -0.4456007110395375226, -0.7718030714092967148, 5.117418135287732817 ) ) ; +#207 = CIRCLE ( 'NONE', #3113, 0.2499999999999998335 ) ; +#208 = EDGE_CURVE ( 'NONE', #3076, #5068, #3370, .T. ) ; +#209 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#210 = ORIENTED_EDGE ( 'NONE', *, *, #392, .T. ) ; +#211 = CARTESIAN_POINT ( 'NONE', ( 0.3842672567342373946, -0.06705141692084949645, 5.973447774158535672 ) ) ; +#212 = AXIS2_PLACEMENT_3D ( 'NONE', #488, #2131, #378 ) ; +#213 = CARTESIAN_POINT ( 'NONE', ( -0.5845096284188066038, 0.06895292275399206305, 6.222892444258360634 ) ) ; +#214 = ORIENTED_EDGE ( 'NONE', *, *, #2037, .F. ) ; +#215 = EDGE_CURVE ( 'NONE', #5186, #3596, #4274, .T. ) ; +#216 = CARTESIAN_POINT ( 'NONE', ( 0.2846492164303445760, -0.4530167513017881453, 6.159017837711830978 ) ) ; +#217 = CYLINDRICAL_SURFACE ( 'NONE', #403, 0.1875000000000000278 ) ; +#218 = CIRCLE ( 'NONE', #389, 0.2499999999999998335 ) ; +#219 = EDGE_CURVE ( 'NONE', #1810, #4111, #3847, .T. ) ; +#220 = AXIS2_PLACEMENT_3D ( 'NONE', #2088, #3721, #3372 ) ; +#221 = CARTESIAN_POINT ( 'NONE', ( -0.4346492031091093722, 0.01829344966260169209, 6.039897479795465429 ) ) ; +#222 = AXIS2_PLACEMENT_3D ( 'NONE', #2463, #1264, #4127 ) ; +#223 = CARTESIAN_POINT ( 'NONE', ( 0.5078194151786449284, 0.2931896760531070845, 6.064721239031358735 ) ) ; +#224 = ORIENTED_EDGE ( 'NONE', *, *, #2271, .T. ) ; +#225 = CYLINDRICAL_SURFACE ( 'NONE', #752, 0.1329999999999999238 ) ; +#226 = CARTESIAN_POINT ( 'NONE', ( -0.3079449032245745177, 1.159806329993145146, 5.713425458227198384 ) ) ; +#227 = CARTESIAN_POINT ( 'NONE', ( -1.165413537853394521, 0.2861116099297640880, 5.674432225314001599 ) ) ; +#228 = FACE_OUTER_BOUND ( 'NONE', #942, .T. ) ; +#229 = CARTESIAN_POINT ( 'NONE', ( -0.1391002259676255848, 0.6358352251400815058, 6.294626711742658642 ) ) ; +#230 = CIRCLE ( 'NONE', #2964, 0.1329999999999999238 ) ; +#231 = ORIENTED_EDGE ( 'NONE', *, *, #215, .F. ) ; +#232 = EDGE_CURVE ( 'NONE', #344, #2229, #4698, .T. ) ; +#233 = CARTESIAN_POINT ( 'NONE', ( 0.5845096284186941382, -0.06895292275382226832, 6.222892444258207867 ) ) ; +#234 = VECTOR ( 'NONE', #3191, 39.37007874015748143 ) ; +#235 = LINE ( 'NONE', #561, #2274 ) ; +#236 = ORIENTED_EDGE ( 'NONE', *, *, #3929, .F. ) ; +#237 = CARTESIAN_POINT ( 'NONE', ( -0.4515683818664330551, 0.7821393804843267406, 5.167302222155944591 ) ) ; +#238 = AXIS2_PLACEMENT_3D ( 'NONE', #99, #74, #3689 ) ; +#239 = CARTESIAN_POINT ( 'NONE', ( -0.2848640191082179585, 0.4531414548971772205, 6.159280621619798168 ) ) ; +#240 = DIRECTION ( 'NONE', ( 0.8627299156628192023, 0.4980973490458731612, -0.08715574274767187712 ) ) ; +#241 = ORIENTED_EDGE ( 'NONE', *, *, #5279, .F. ) ; +#242 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2685, #5092, #1869, #4376, #1060, #4740, #2261, #1516, #3870, #3140, #3966, #4323, #2289, #4299, #5120, #5169, #3165, #1437, #652, #278, #1841, #1919, #5143, #2713, #3110 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4 ), + ( 0.5608568033239038630, 0.6706426024936995578, 0.7255355020785978493, 0.7529819518710445525, 0.7667051767672657947, 0.7735667892153743619, 0.7769975954394305884, 0.7787129985514585906, 0.7795707001074725362, 0.7799995508854775661, 0.7804284016634825960, 0.8353213012476119470, 0.8902142008317412980, 0.9451071004158706490, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#243 = CARTESIAN_POINT ( 'NONE', ( -0.3512883018127999635, 0.1713921047228179895, 5.903217844715160645 ) ) ; +#244 = VERTEX_POINT ( 'NONE', #1011 ) ; +#245 = CARTESIAN_POINT ( 'NONE', ( -0.1441924260139419434, 0.3622802205436811418, 5.986163717094036052 ) ) ; +#246 = CIRCLE ( 'NONE', #1188, 0.1330000000000000626 ) ; +#247 = CARTESIAN_POINT ( 'NONE', ( -0.3750000000000000555, 1.139901311517799387, 5.593666288758528005 ) ) ; +#248 = CARTESIAN_POINT ( 'NONE', ( 1.150490536215369231, -0.3412500157855663518, 5.746097767432615910 ) ) ; +#249 = ADVANCED_FACE ( 'NONE', ( #4645 ), #3470, .F. ) ; +#250 = DIRECTION ( 'NONE', ( 0.8627299156628208676, -0.4980973490458741049, -0.08715574274765018614 ) ) ; +#251 = VERTEX_POINT ( 'NONE', #3011 ) ; +#252 = CARTESIAN_POINT ( 'NONE', ( -0.3348273294608268835, 0.4700606986690569755, 6.209224166971936576 ) ) ; +#253 = CARTESIAN_POINT ( 'NONE', ( -0.2662467208069129176, 1.170092425520665280, 5.758474444297632111 ) ) ; +#254 = CARTESIAN_POINT ( 'NONE', ( -1.157491829951640350, 0.3165543405495147011, 5.717705779770601460 ) ) ; +#255 = CYLINDRICAL_SURFACE ( 'NONE', #1765, 0.2499999999999998335 ) ; +#256 = CARTESIAN_POINT ( 'NONE', ( 0.8125383823855287790, -0.6819928018658871771, 5.635514518684305862 ) ) ; +#257 = ORIENTED_EDGE ( 'NONE', *, *, #3257, .F. ) ; +#258 = CARTESIAN_POINT ( 'NONE', ( -0.4140694151786387112, 0.4555694392626870037, 6.064721239031350741 ) ) ; +#259 = LINE ( 'NONE', #3527, #4180 ) ; +#260 = EDGE_CURVE ( 'NONE', #5261, #3616, #3745, .T. ) ; +#261 = VERTEX_POINT ( 'NONE', #3522 ) ; +#262 = CARTESIAN_POINT ( 'NONE', ( 0.8838582556485348185, 0.8116712453333591037, 5.762979355565394535 ) ) ; +#263 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4587, #926, #2554, #4194, #3383, #5006, #4615, #2177, #4216, #544, #3811, #5110, #1454, #3078, #213, #1859, #3486, #4886, #509, #4125, #3777, #1288, #1232 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.1250000000007974177, 0.2500000000015948354, 0.3750000000023922531, 0.4375000000027909897, 0.4687500000030029867, 0.4843750000031095682, 0.4921875000031626923, 0.4960937500032112091, 0.4980468750032363556, 0.4990234375032242542, 0.5000000000032122083, 0.7500000000016061596, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#264 = ORIENTED_EDGE ( 'NONE', *, *, #1143, .T. ) ; +#265 = PLANE ( 'NONE', #1040 ) ; +#266 = CARTESIAN_POINT ( 'NONE', ( 1.072336516388184835, 0.5512727270244713873, 5.825994415577062213 ) ) ; +#267 = VERTEX_POINT ( 'NONE', #1843 ) ; +#268 = AXIS2_PLACEMENT_3D ( 'NONE', #2327, #1379, #2723 ) ; +#269 = EDGE_LOOP ( 'NONE', ( #484, #3836, #1785, #3320, #990, #3916, #264 ) ) ; +#270 = CARTESIAN_POINT ( 'NONE', ( 0.1911401493098476567, -0.3795460579701929738, 6.027911261261211351 ) ) ; +#271 = CARTESIAN_POINT ( 'NONE', ( 0.2710312578946313944, -0.4437727045444929130, 6.141081488922503162 ) ) ; +#272 = CARTESIAN_POINT ( 'NONE', ( 0.2796954918193170214, 1.166954559958627291, 5.745822387878476434 ) ) ; +#273 = DIRECTION ( 'NONE', ( -0.5566703992264190326, -0.3213938048432700145, 0.7660444431189781245 ) ) ; +#274 = DIRECTION ( 'NONE', ( -0.5566703992264185885, 0.3213938048432689598, -0.7660444431189790127 ) ) ; +#275 = VERTEX_POINT ( 'NONE', #4324 ) ; +#276 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#277 = ADVANCED_FACE ( 'NONE', ( #580 ), #5144, .F. ) ; +#278 = CARTESIAN_POINT ( 'NONE', ( 0.3685226087119476412, -0.4719818425186307342, 6.234904180713414235 ) ) ; +#279 = CARTESIAN_POINT ( 'NONE', ( 0.4217441856961334223, -0.02585780004560671655, 6.025025194223067260 ) ) ; +#280 = CARTESIAN_POINT ( 'NONE', ( 0.2340212420469630905, 0.3420443734431751204, 6.015278229243145702 ) ) ; +#281 = CARTESIAN_POINT ( 'NONE', ( 0.8172713167688109293, -0.6868535790665607488, 5.643187812979941320 ) ) ; +#282 = CARTESIAN_POINT ( 'NONE', ( 1.199999999999999956, -1.461283649571129740E-15, 5.473691469039889235 ) ) ; +#283 = ADVANCED_FACE ( 'NONE', ( #5121 ), #2612, .F. ) ; +#284 = CARTESIAN_POINT ( 'NONE', ( 0.4664504729606303579, 0.4458233889320717958, 6.289040576133233529 ) ) ; +#285 = CARTESIAN_POINT ( 'NONE', ( -0.3654310284211287896, -0.1359952837798688863, 5.918960724778254523 ) ) ; +#286 = AXIS2_PLACEMENT_3D ( 'NONE', #3390, #3868, #5117 ) ; +#287 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'part', '', ( #831 ) ) ; +#288 = FACE_OUTER_BOUND ( 'NONE', #4765, .T. ) ; +#289 = ORIENTED_EDGE ( 'NONE', *, *, #372, .T. ) ; +#290 = PLANE ( 'NONE', #3401 ) ; +#291 = EDGE_CURVE ( 'NONE', #1592, #5052, #1942, .T. ) ; +#292 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 3.623233072825515118E-16 ) ) ; +#293 = CARTESIAN_POINT ( 'NONE', ( 1.155754876073056048, 0.3228187007987294299, 5.725358237441380282 ) ) ; +#294 = EDGE_LOOP ( 'NONE', ( #3792, #1755, #4527, #2050 ) ) ; +#295 = ORIENTED_EDGE ( 'NONE', *, *, #156, .F. ) ; +#296 = CARTESIAN_POINT ( 'NONE', ( 0.3081251330067746319, -0.2389995228382663373, 5.913477138492607033 ) ) ; +#297 = EDGE_CURVE ( 'NONE', #587, #1847, #3338, .T. ) ; +#298 = CARTESIAN_POINT ( 'NONE', ( -0.2405747446558747782, 0.4287596476353859876, 6.107280644753268817 ) ) ; +#299 = CYLINDRICAL_SURFACE ( 'NONE', #3908, 0.2500000000000000000 ) ; +#300 = CARTESIAN_POINT ( 'NONE', ( -0.3858400872864291564, -0.05626580631045993014, 5.986163717094036052 ) ) ; +#301 = LINE ( 'NONE', #2786, #3726 ) ; +#302 = ORIENTED_EDGE ( 'NONE', *, *, #219, .T. ) ; +#303 = CARTESIAN_POINT ( 'NONE', ( -0.6181270907459244235, 0.1686913507049758731, 6.284344565544738082 ) ) ; +#304 = CARTESIAN_POINT ( 'NONE', ( -0.3419752191374325068, 1.150240376165132528, 5.662091642671142289 ) ) ; +#305 = AXIS2_PLACEMENT_3D ( 'NONE', #1149, #2776, #778 ) ; +#306 = CARTESIAN_POINT ( 'NONE', ( -1.150490536215902138, 0.3412500157846979909, 5.746097767431919578 ) ) ; +#307 = DIRECTION ( 'NONE', ( 0.4999999999999998335, -0.8660254037844388186, 0.000000000000000000 ) ) ; +#308 = VECTOR ( 'NONE', #1671, 39.37007874015748854 ) ; +#309 = CARTESIAN_POINT ( 'NONE', ( -0.03460167114088224388, 0.6756856571182423554, 6.316136173767020523 ) ) ; +#310 = ORIENTED_EDGE ( 'NONE', *, *, #940, .F. ) ; +#311 = LINE ( 'NONE', #4746, #3123 ) ; +#312 = CARTESIAN_POINT ( 'NONE', ( -0.2888212883480412163, -0.2619536148944441867, 5.928874456620044420 ) ) ; +#313 = CARTESIAN_POINT ( 'NONE', ( 0.7996834935816121703, -0.8947101821780669706, 5.593666288758528005 ) ) ; +#314 = VERTEX_POINT ( 'NONE', #2421 ) ; +#315 = EDGE_CURVE ( 'NONE', #587, #5033, #791, .T. ) ; +#316 = CARTESIAN_POINT ( 'NONE', ( -0.2332949138249995336, 0.3458072453185633277, 6.018156986634450867 ) ) ; +#317 = AXIS2_PLACEMENT_3D ( 'NONE', #4947, #4188, #2519 ) ; +#318 = CARTESIAN_POINT ( 'NONE', ( 1.164919406963354387, 0.2880262327817013635, 5.677157056013872882 ) ) ; +#319 = ORIENTED_EDGE ( 'NONE', *, *, #46, .T. ) ; +#320 = ORIENTED_EDGE ( 'NONE', *, *, #4572, .T. ) ; +#321 = CARTESIAN_POINT ( 'NONE', ( 0.2981746652742749970, -0.2512735282016045901, 5.920736677564257811 ) ) ; +#322 = AXIS2_PLACEMENT_3D ( 'NONE', #3891, #624, #577 ) ; +#323 = CARTESIAN_POINT ( 'NONE', ( -1.119772438397324876, -0.4315515575172477192, 5.803613436556244842 ) ) ; +#324 = FACE_OUTER_BOUND ( 'NONE', #2652, .T. ) ; +#325 = CARTESIAN_POINT ( 'NONE', ( -0.3357777433373527187, -1.152063697526807484, 5.672674617213519177 ) ) ; +#326 = VERTEX_POINT ( 'NONE', #1976 ) ; +#327 = DIRECTION ( 'NONE', ( -0.001951631098638388368, 0.9226336559632448697, 0.3856725658119226630 ) ) ; +#328 = ADVANCED_FACE ( 'NONE', ( #2762 ), #1221, .F. ) ; +#329 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #939, #559, #4181, #4650 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.617993877991494855, 3.665191429188091377 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9106836025229592124, 0.9106836025229592124, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#330 = DIRECTION ( 'NONE', ( 0.4999999999999998890, 0.8660254037844387076, 2.331034670843834533E-16 ) ) ; +#331 = ORIENTED_EDGE ( 'NONE', *, *, #4961, .F. ) ; +#332 = CARTESIAN_POINT ( 'NONE', ( -0.5653191310670587777, 0.3682113508943465896, 6.315181427568044903 ) ) ; +#333 = DIRECTION ( 'NONE', ( 3.571570303986756206E-16, 0.7660444431189782355, 0.6427876096865391409 ) ) ; +#334 = DIRECTION ( 'NONE', ( -0.5000000000000003331, -0.8660254037844383745, 0.000000000000000000 ) ) ; +#335 = CARTESIAN_POINT ( 'NONE', ( 0.2330380499654057525, 0.3616189034012223247, 6.034154198208051767 ) ) ; +#336 = DIRECTION ( 'NONE', ( -0.4044817466520058136, 0.7005829359354777131, -0.5878588831525547453 ) ) ; +#337 = DIRECTION ( 'NONE', ( -1.000000000000000000, 2.731847993664263218E-16, 0.000000000000000000 ) ) ; +#338 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, 0.8125000000000000000, 3.479000000000000092 ) ) ; +#339 = DIRECTION ( 'NONE', ( -3.059669752903970762E-16, -0.6427876096865391409, 0.7660444431189782355 ) ) ; +#340 = FILL_AREA_STYLE_COLOUR ( '', #2191 ) ; +#341 = CARTESIAN_POINT ( 'NONE', ( -0.07004992722955320772, -0.6682625613586063995, 6.312748047420823738 ) ) ; +#342 = ADVANCED_FACE ( 'NONE', ( #4460 ), #4795, .F. ) ; +#343 = CARTESIAN_POINT ( 'NONE', ( 1.115620250748909470, 0.4420310578669094381, 5.805572500925889834 ) ) ; +#344 = VERTEX_POINT ( 'NONE', #2370 ) ; +#345 = ORIENTED_EDGE ( 'NONE', *, *, #2256, .F. ) ; +#346 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -6.892264536872972008E-16, 3.104000000000000092 ) ) ; +#347 = CARTESIAN_POINT ( 'NONE', ( -1.149088973804076375, -0.3458411738391030665, 5.750389552697988904 ) ) ; +#348 = ORIENTED_EDGE ( 'NONE', *, *, #1302, .F. ) ; +#349 = CARTESIAN_POINT ( 'NONE', ( -0.6328194151786388222, 0.07668332510699554794, 6.064721239031350741 ) ) ; +#350 = VECTOR ( 'NONE', #3680, 39.37007874015748854 ) ; +#351 = LINE ( 'NONE', #2015, #2793 ) ; +#352 = ORIENTED_EDGE ( 'NONE', *, *, #3556, .F. ) ; +#353 = CARTESIAN_POINT ( 'NONE', ( 1.021234122634727903, -0.8537658773652762045, 4.658015363927715313 ) ) ; +#354 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, -1.001219655634210559, 5.195033353103291951 ) ) ; +#355 = ORIENTED_EDGE ( 'NONE', *, *, #578, .T. ) ; +#356 = LINE ( 'NONE', #5271, #582 ) ; +#357 = CARTESIAN_POINT ( 'NONE', ( 0.6151920504568360037, -0.1487874886004974528, 6.275722679831771345 ) ) ; +#358 = EDGE_CURVE ( 'NONE', #3551, #3292, #2376, .T. ) ; +#359 = CARTESIAN_POINT ( 'NONE', ( -1.139057466930894380, 0.3775574074409471792, 5.776875333988858330 ) ) ; +#360 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #1745, #4178, #2553, #2098 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 3.459416357517675067, 3.665191429188095373 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9964744966727187014, 0.9964744966727187014, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#361 = DIRECTION ( 'NONE', ( 0.5000000000000002220, 0.8660254037844384856, 0.000000000000000000 ) ) ; +#362 = DIRECTION ( 'NONE', ( -0.5000000000000003331, -0.8660254037844384856, 0.000000000000000000 ) ) ; +#363 = CARTESIAN_POINT ( 'NONE', ( 4.808052468849102476E-16, 0.5863793521062165004, 6.064721239031358735 ) ) ; +#364 = CARTESIAN_POINT ( 'NONE', ( 0.6135904484930136960, 0.1412060984789950679, 6.271836282905964843 ) ) ; +#365 = CARTESIAN_POINT ( 'NONE', ( -0.2341816733435310161, -0.3367544682959475177, 6.010184871980221999 ) ) ; +#366 = CARTESIAN_POINT ( 'NONE', ( 0.8508281758544096185, -0.4912258763636622727, 5.406025211417605725 ) ) ; +#367 = CARTESIAN_POINT ( 'NONE', ( -0.1218977037776715483, -0.6453800459070538897, 6.300202147577771861 ) ) ; +#368 = CARTESIAN_POINT ( 'NONE', ( 1.155882679270866742, 0.3223606410457488525, 5.724809866151842286 ) ) ; +#369 = ORIENTED_EDGE ( 'NONE', *, *, #3722, .F. ) ; +#370 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#371 = AXIS2_PLACEMENT_3D ( 'NONE', #199, #3111, #1894 ) ; +#372 = EDGE_CURVE ( 'NONE', #4846, #326, #4992, .T. ) ; +#373 = ORIENTED_EDGE ( 'NONE', *, *, #1608, .F. ) ; +#374 = CARTESIAN_POINT ( 'NONE', ( -0.2266775239231308969, 0.4074991769765889948, 6.077142145744436341 ) ) ; +#375 = DIRECTION ( 'NONE', ( -0.8089634933040130704, 0.000000000000000000, 0.5878588831525539682 ) ) ; +#376 = ORIENTED_EDGE ( 'NONE', *, *, #4649, .T. ) ; +#377 = CARTESIAN_POINT ( 'NONE', ( -0.1833398300830851035, -1.095876675478056672, 5.696772153281560058 ) ) ; +#378 = DIRECTION ( 'NONE', ( 0.5000000000000003331, 0.8660254037844383745, 0.000000000000000000 ) ) ; +#379 = ORIENTED_EDGE ( 'NONE', *, *, #2747, .F. ) ; +#380 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#381 = EDGE_CURVE ( 'NONE', #777, #1243, #3363, .T. ) ; +#382 = CARTESIAN_POINT ( 'NONE', ( -0.2467607314474010716, 1.174354929511327583, 5.773940416536653686 ) ) ; +#383 = EDGE_LOOP ( 'NONE', ( #3876, #898 ) ) ; +#384 = CARTESIAN_POINT ( 'NONE', ( 0.4538787052150047296, -0.01027673665683064702, 6.062477588664916262 ) ) ; +#385 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#386 = CARTESIAN_POINT ( 'NONE', ( 0.3076125737268690652, 0.2411303338827663623, 5.911557156134464641 ) ) ; +#387 = CARTESIAN_POINT ( 'NONE', ( -0.8464806836144033175, -0.8505647115793101287, 5.706295872969529448 ) ) ; +#388 = CARTESIAN_POINT ( 'NONE', ( 0.3536301452796408729, 0.4718032707868223263, 6.224142810813360960 ) ) ; +#389 = AXIS2_PLACEMENT_3D ( 'NONE', #1648, #5245, #4817 ) ; +#390 = VECTOR ( 'NONE', #3044, 39.37007874015748854 ) ; +#391 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#392 = EDGE_CURVE ( 'NONE', #3883, #2725, #3750, .T. ) ; +#393 = FACE_OUTER_BOUND ( 'NONE', #2683, .T. ) ; +#394 = DIRECTION ( 'NONE', ( -0.6634139481689379503, -0.3830222215594885626, -0.6427876096865400291 ) ) ; +#395 = ORIENTED_EDGE ( 'NONE', *, *, #44, .T. ) ; +#396 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#397 = ORIENTED_EDGE ( 'NONE', *, *, #3849, .T. ) ; +#398 = AXIS2_PLACEMENT_3D ( 'NONE', #690, #1575, #1071 ) ; +#399 = PLANE ( 'NONE', #5097 ) ; +#400 = CARTESIAN_POINT ( 'NONE', ( -0.2750372446884246647, -1.168060829441363913, 5.750389552692810824 ) ) ; +#401 = ORIENTED_EDGE ( 'NONE', *, *, #5079, .T. ) ; +#402 = DIRECTION ( 'NONE', ( 0.6634139481689388385, 0.3830222215594888957, -0.6427876096865389188 ) ) ; +#403 = AXIS2_PLACEMENT_3D ( 'NONE', #1483, #3104, #2679 ) ; +#404 = CARTESIAN_POINT ( 'NONE', ( 0.3477280203617504339, 0.4172672171067401403, 6.129000000000000448 ) ) ; +#405 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#406 = EDGE_LOOP ( 'NONE', ( #4407, #2675 ) ) ; +#407 = CARTESIAN_POINT ( 'NONE', ( -0.6004768888150479045, 0.3080914456980196059, 6.315368908634740208 ) ) ; +#408 = CARTESIAN_POINT ( 'NONE', ( -1.017611827438179128, 0.3710121115558701055, 5.661614086336346219 ) ) ; +#409 = ORIENTED_EDGE ( 'NONE', *, *, #3186, .T. ) ; +#410 = EDGE_CURVE ( 'NONE', #2741, #2677, #4429, .T. ) ; +#411 = CARTESIAN_POINT ( 'NONE', ( 0.4449245162833033729, -0.7706318677356902569, 5.130805054534240739 ) ) ; +#412 = LINE ( 'NONE', #4904, #4059 ) ; +#413 = CARTESIAN_POINT ( 'NONE', ( -0.8633556549893828258, 0.8334389726837512224, 5.734811671459599580 ) ) ; +#414 = CARTESIAN_POINT ( 'NONE', ( -0.8567040990440947246, -0.8402613195393172640, 5.724132036576539129 ) ) ; +#415 = CARTESIAN_POINT ( 'NONE', ( 0.3577250873060696668, 0.4719495202659375055, 6.227167535551730637 ) ) ; +#416 = DIRECTION ( 'NONE', ( 0.5000000000000001110, 0.8660254037844384856, 0.000000000000000000 ) ) ; +#417 = CARTESIAN_POINT ( 'NONE', ( -0.9442786809891654531, 0.2565044160643059068, 5.518181750081197379 ) ) ; +#418 = CARTESIAN_POINT ( 'NONE', ( -0.1730504566739426153, -0.6119107120298202807, 6.279085895439539655 ) ) ; +#419 = CARTESIAN_POINT ( 'NONE', ( -5.783046526498795293E-17, -1.337116258361070674E-15, 6.271836282905964843 ) ) ; +#420 = ADVANCED_FACE ( 'NONE', ( #525 ), #1249, .F. ) ; +#421 = CARTESIAN_POINT ( 'NONE', ( 0.2009521206314035247, 0.5860280785303642048, 6.259648185238702922 ) ) ; +#422 = ORIENTED_EDGE ( 'NONE', *, *, #3118, .F. ) ; +#423 = DIRECTION ( 'NONE', ( 0.5566703992264190326, 0.3213938048432700145, 0.7660444431189781245 ) ) ; +#424 = ORIENTED_EDGE ( 'NONE', *, *, #3438, .F. ) ; +#425 = DIRECTION ( 'NONE', ( -0.4999999999999997224, -0.8660254037844388186, 0.000000000000000000 ) ) ; +#426 = CARTESIAN_POINT ( 'NONE', ( -0.3419452013912530619, -1.150248062292925644, 5.662142407377229958 ) ) ; +#427 = ORIENTED_EDGE ( 'NONE', *, *, #1369, .T. ) ; +#428 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4026, #357, #1192, #4509, #4459, #434, #4051, #3248, #5273, #2160, #4197, #491, #4638, #1380, #2604, #5009, #4168, #5058, #4982, #2102, #2134, #2557, #4590, #1300, #462, #977, #4559, #1404, #3791, #4219, #3737, #3386, #4618, #4238, #872, #63 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.06249999999999659994, 0.09374999999999619749, 0.1249999999999958089, 0.1874999999999949762, 0.2187499999999944489, 0.2343749999999943101, 0.2499999999999941713, 0.3749999999999945599, 0.4999999999999950040, 0.6249999999999954481, 0.6874999999999960032, 0.7187499999999963363, 0.7343749999999973355, 0.7499999999999983347, 0.8124999999999997780, 0.8437500000000003331, 0.8750000000000007772, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#429 = LINE ( 'NONE', #1321, #308 ) ; +#430 = CARTESIAN_POINT ( 'NONE', ( 0.5044708431356464962, 0.007988804229500665391, 6.122637281667960174 ) ) ; +#431 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.305400232354259948E-15, 6.129000000000000448 ) ) ; +#432 = ORIENTED_EDGE ( 'NONE', *, *, #949, .F. ) ; +#433 = LINE ( 'NONE', #2556, #2579 ) ; +#434 = CARTESIAN_POINT ( 'NONE', ( 0.6193196168973038596, -0.1810462647282537196, 6.289040576134657279 ) ) ; +#435 = VERTEX_POINT ( 'NONE', #2928 ) ; +#436 = CARTESIAN_POINT ( 'NONE', ( 1.167179158736206368, -0.2787293713493233516, 5.661691036252678444 ) ) ; +#437 = CARTESIAN_POINT ( 'NONE', ( -0.7887281695052992259, 0.2532998267649559376, 5.355730255524930428 ) ) ; +#438 = CARTESIAN_POINT ( 'NONE', ( 0.7105232702080964691, -0.4102208013201386061, 5.135162841671623291 ) ) ; +#439 = ADVANCED_FACE ( 'NONE', ( #4984 ), #4611, .T. ) ; +#440 = EDGE_CURVE ( 'NONE', #1523, #1750, #4288, .T. ) ; +#441 = CARTESIAN_POINT ( 'NONE', ( 0.3858400872864291564, 0.05626580631045724479, 5.986163717094036052 ) ) ; +#442 = CARTESIAN_POINT ( 'NONE', ( -0.8508281758544096185, -0.4912258763636622727, 5.406025211417605725 ) ) ; +#443 = CARTESIAN_POINT ( 'NONE', ( -0.2322730025073351245, 0.5411972490038473582, 6.223335101062728469 ) ) ; +#444 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#445 = ADVANCED_FACE ( 'NONE', ( #1680 ), #4593, .F. ) ; +#446 = CARTESIAN_POINT ( 'NONE', ( -0.8950482739747007699, -0.7993046167186390605, 5.775397075566196747 ) ) ; +#447 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, -0.8125000000000000000, 3.104000000000000092 ) ) ; +#448 = EDGE_CURVE ( 'NONE', #92, #2583, #4932, .T. ) ; +#449 = CARTESIAN_POINT ( 'NONE', ( 0.8171929182987434093, 0.6883099015442029067, 5.643834550590912436 ) ) ; +#450 = ORIENTED_EDGE ( 'NONE', *, *, #1766, .F. ) ; +#451 = CARTESIAN_POINT ( 'NONE', ( 0.1792084956003166807, -0.3736905273596546340, 6.015278229243611108 ) ) ; +#452 = ORIENTED_EDGE ( 'NONE', *, *, #3400, .F. ) ; +#453 = DIRECTION ( 'NONE', ( -0.6634139481689386164, -0.3830222215594889512, -0.6427876096865391409 ) ) ; +#454 = CARTESIAN_POINT ( 'NONE', ( 0.5836213689555572737, 0.06759081300042281415, 6.221651771460616764 ) ) ; +#455 = VERTEX_POINT ( 'NONE', #3793 ) ; +#456 = CARTESIAN_POINT ( 'NONE', ( 1.191531308125826305, -0.1644751193384711707, 5.562957933457569837 ) ) ; +#457 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#458 = EDGE_CURVE ( 'NONE', #3409, #4973, #464, .T. ) ; +#459 = CYLINDRICAL_SURFACE ( 'NONE', #5078, 0.2500000000000000000 ) ; +#460 = ORIENTED_EDGE ( 'NONE', *, *, #1713, .T. ) ; +#461 = DIRECTION ( 'NONE', ( -0.4999999999999998890, 0.8660254037844388186, 0.000000000000000000 ) ) ; +#462 = CARTESIAN_POINT ( 'NONE', ( 0.5217981895830533512, -0.4111482819099276931, 6.306870712084058361 ) ) ; +#463 = ORIENTED_EDGE ( 'NONE', *, *, #2116, .F. ) ; +#464 = LINE ( 'NONE', #5012, #938 ) ; +#465 = CARTESIAN_POINT ( 'NONE', ( 0.8628402680797480073, -0.7002336552598621422, 5.309607069964629389 ) ) ; +#466 = CARTESIAN_POINT ( 'NONE', ( -0.8522375873319645301, 0.8448306745128322248, 5.716802663689994901 ) ) ; +#467 = AXIS2_PLACEMENT_3D ( 'NONE', #1440, #2240, #4275 ) ; +#468 = CARTESIAN_POINT ( 'NONE', ( 0.3541973862626373037, 0.4718278813396263316, 6.224565724080914464 ) ) ; +#469 = CARTESIAN_POINT ( 'NONE', ( 0.3276502907664861630, -1.154418592143521494, 5.685938387769840396 ) ) ; +#470 = CARTESIAN_POINT ( 'NONE', ( 0.8898490325666070788, -1.005500461357157865E-15, 5.130805054534240739 ) ) ; +#471 = VECTOR ( 'NONE', #4737, 39.37007874015748143 ) ; +#472 = CARTESIAN_POINT ( 'NONE', ( 0.2162759239418181045, 0.3968492215508483967, 6.060059581942064177 ) ) ; +#473 = CARTESIAN_POINT ( 'NONE', ( -0.7996834935816140577, -0.8947101821780649722, 5.593666288758528005 ) ) ; +#474 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.250000000000000000, 6.378999999999999559 ) ) ; +#475 = AXIS2_PLACEMENT_3D ( 'NONE', #1254, #3227, #795 ) ; +#476 = VECTOR ( 'NONE', #1803, 39.37007874015748854 ) ; +#477 = DIRECTION ( 'NONE', ( 0.6634139481689381723, 0.3830222215594881741, -0.6427876096865402511 ) ) ; +#478 = ORIENTED_EDGE ( 'NONE', *, *, #458, .F. ) ; +#479 = DIRECTION ( 'NONE', ( -0.6634139481689370621, 0.3830222215594901169, -0.6427876096865401401 ) ) ; +#480 = AXIS2_PLACEMENT_3D ( 'NONE', #4950, #3296, #4073 ) ; +#481 = ORIENTED_EDGE ( 'NONE', *, *, #4343, .T. ) ; +#482 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, -0.8125000000000000000, 3.479000000000000092 ) ) ; +#483 = CARTESIAN_POINT ( 'NONE', ( -1.013584444210809066, 0.6530343010856415331, 5.825994415577062213 ) ) ; +#484 = ORIENTED_EDGE ( 'NONE', *, *, #3955, .T. ) ; +#485 = CARTESIAN_POINT ( 'NONE', ( -0.08032840626614123902, -0.3815542715136057139, 5.927542632677030632 ) ) ; +#486 = CARTESIAN_POINT ( 'NONE', ( 0.4486025758629294535, 0.01221928642393219425, 6.056259222844406764 ) ) ; +#487 = AXIS2_PLACEMENT_3D ( 'NONE', #2695, #1529, #1173 ) ; +#488 = CARTESIAN_POINT ( 'NONE', ( -0.5078194151786440402, 0.2931896760531078616, 6.064721239031358735 ) ) ; +#489 = ORIENTED_EDGE ( 'NONE', *, *, #4889, .F. ) ; +#490 = LINE ( 'NONE', #3359, #530 ) ; +#491 = CARTESIAN_POINT ( 'NONE', ( 0.6187777601870509958, -0.2317915372330237866, 6.303783207328006455 ) ) ; +#492 = ORIENTED_EDGE ( 'NONE', *, *, #4678, .T. ) ; +#493 = AXIS2_PLACEMENT_3D ( 'NONE', #1075, #184, #4683 ) ; +#494 = ADVANCED_FACE ( 'NONE', ( #118 ), #899, .F. ) ; +#495 = CARTESIAN_POINT ( 'NONE', ( 0.4013323545794917346, -0.04128708720030292018, 6.002172553030669100 ) ) ; +#496 = FACE_BOUND ( 'NONE', #2232, .T. ) ; +#497 = AXIS2_PLACEMENT_3D ( 'NONE', #2646, #5102, #1878 ) ; +#498 = CARTESIAN_POINT ( 'NONE', ( 0.2800840434869670270, 0.2712873903550433452, 5.937453763996215272 ) ) ; +#499 = VECTOR ( 'NONE', #845, 39.37007874015748854 ) ; +#500 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#501 = LINE ( 'NONE', #442, #2080 ) ; +#502 = DIRECTION ( 'NONE', ( -0.5566703992264192546, 0.3213938048432691819, 0.7660444431189783465 ) ) ; +#503 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4434, #789, #2789, #4848 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.5000032659764718224, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#504 = DIRECTION ( 'NONE', ( 0.6634139481689380613, -0.3830222215594901169, 0.6427876096865391409 ) ) ; +#505 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #5051, #1398, #3021, #4654 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.268928027592570729, 3.054326190990071854 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9492530216741844606, 0.9492530216741844606, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#506 = DIRECTION ( 'NONE', ( -1.418747724434797878E-31, -2.577215088362509940E-16, 1.000000000000000000 ) ) ; +#507 = AXIS2_PLACEMENT_3D ( 'NONE', #1511, #4453, #1130 ) ; +#508 = DIRECTION ( 'NONE', ( -6.250248031976811775E-16, -0.7660444431189782355, 0.6427876096865391409 ) ) ; +#509 = CARTESIAN_POINT ( 'NONE', ( -0.5767116935040599301, 0.05690533217072192562, 6.211979336403640417 ) ) ; +#510 = ORIENTED_EDGE ( 'NONE', *, *, #2860, .F. ) ; +#511 = CARTESIAN_POINT ( 'NONE', ( -0.7986823578055256556, -0.6631920684923938714, 5.610249138468685004 ) ) ; +#512 = ORIENTED_EDGE ( 'NONE', *, *, #611, .F. ) ; +#513 = EDGE_CURVE ( 'NONE', #4475, #142, #1359, .T. ) ; +#514 = EDGE_CURVE ( 'NONE', #696, #314, #2755, .T. ) ; +#515 = CARTESIAN_POINT ( 'NONE', ( 0.03504346540213704869, 0.6738610763234920142, 6.315266343562555562 ) ) ; +#516 = CARTESIAN_POINT ( 'NONE', ( -0.9406202507489094256, 0.7451399491914646456, 5.805572500925889834 ) ) ; +#517 = ORIENTED_EDGE ( 'NONE', *, *, #1215, .F. ) ; +#518 = CARTESIAN_POINT ( 'NONE', ( -0.04790561249305236996, -0.3869956233910656906, 5.911591706037251370 ) ) ; +#519 = CARTESIAN_POINT ( 'NONE', ( 0.4726936103948219392, 0.005673110905847884855, 6.084725784281053151 ) ) ; +#520 = CARTESIAN_POINT ( 'NONE', ( -0.5152665960576197079, -0.4162091211171808358, 6.305186707021286807 ) ) ; +#521 = EDGE_LOOP ( 'NONE', ( #422, #3766, #2172, #993 ) ) ; +#522 = DIRECTION ( 'NONE', ( 0.001951631098638388368, -0.9226336559632448697, 0.3856725658119226630 ) ) ; +#523 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#524 = ORIENTED_EDGE ( 'NONE', *, *, #2833, .T. ) ; +#525 = FACE_OUTER_BOUND ( 'NONE', #5098, .T. ) ; +#526 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #3433, #974, #4236, #2948, #2205, #4686, #3838, #1377, #187, #165, #3001, #2654, #1809, #520, #1425, #2578, #1401, #3026, #4636, #1000, #4291, #4658, #3788, #2629, #2976, #4264, #616, #1758, #2251, #593, #3882, #1732, #3357, #1323, #1832, #3456, #5080 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.06249999999999532319, 0.09374999999999297784, 0.1249999999999906464, 0.1874999999999859557, 0.2187499999999839573, 0.2343749999999839850, 0.2499999999999840128, 0.3749999999999835687, 0.4999999999999832356, 0.6249999999999827915, 0.6874999999999826805, 0.7187499999999821254, 0.7343749999999825695, 0.7499999999999830136, 0.8124999999999865663, 0.8437499999999883427, 0.8749999999999901190, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#527 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, -1.036320247523033950E-15 ) ) ; +#528 = EDGE_CURVE ( 'NONE', #5024, #563, #2704, .T. ) ; +#529 = DIRECTION ( 'NONE', ( -3.059669752903970762E-16, -0.6427876096865391409, 0.7660444431189782355 ) ) ; +#530 = VECTOR ( 'NONE', #2527, 39.37007874015748854 ) ; +#531 = CARTESIAN_POINT ( 'NONE', ( 0.3444392370439303686, -1.149504233141981802, 5.657733989962353327 ) ) ; +#532 = CYLINDRICAL_SURFACE ( 'NONE', #126, 0.1874999999999999167 ) ; +#533 = ORIENTED_EDGE ( 'NONE', *, *, #513, .F. ) ; +#534 = EDGE_CURVE ( 'NONE', #685, #1269, #3666, .T. ) ; +#535 = CARTESIAN_POINT ( 'NONE', ( 4.808052468849102476E-16, 0.5863793521062165004, 6.064721239031358735 ) ) ; +#536 = LINE ( 'NONE', #2169, #1773 ) ; +#537 = VERTEX_POINT ( 'NONE', #4241 ) ; +#538 = CARTESIAN_POINT ( 'NONE', ( -0.4442483215270714991, 0.7694606640620821336, 5.144191973780745997 ) ) ; +#539 = EDGE_LOOP ( 'NONE', ( #185, #1120, #3243, #3022 ) ) ; +#540 = FACE_OUTER_BOUND ( 'NONE', #1291, .T. ) ; +#541 = CARTESIAN_POINT ( 'NONE', ( -1.072336516388181726, 0.5512727270244796030, 5.825994415577063101 ) ) ; +#542 = ORIENTED_EDGE ( 'NONE', *, *, #2833, .F. ) ; +#543 = LINE ( 'NONE', #3810, #2617 ) ; +#544 = CARTESIAN_POINT ( 'NONE', ( -0.5857136245876821690, 0.07082999379151948272, 6.224565724084250462 ) ) ; +#545 = ORIENTED_EDGE ( 'NONE', *, *, #3462, .T. ) ; +#546 = CARTESIAN_POINT ( 'NONE', ( -0.6673867744249555312, 0.3853159338678433521, 5.130805054534240739 ) ) ; +#547 = CARTESIAN_POINT ( 'NONE', ( 0.2324649957795975330, 1.177272519673962625, 5.783407949540905868 ) ) ; +#548 = ORIENTED_EDGE ( 'NONE', *, *, #3663, .F. ) ; +#549 = CARTESIAN_POINT ( 'NONE', ( 1.004698486686727232, 0.3635600742712477573, 5.643846109717022941 ) ) ; +#550 = EDGE_CURVE ( 'NONE', #975, #2710, #143, .T. ) ; +#551 = CARTESIAN_POINT ( 'NONE', ( 0.06853574135259118960, -0.6664752597658064603, 6.311575843690929055 ) ) ; +#552 = ADVANCED_FACE ( 'NONE', ( #3417 ), #1383, .F. ) ; +#553 = CARTESIAN_POINT ( 'NONE', ( 0.3805951229840598415, 0.6592100901213169273, 5.020800798730772563 ) ) ; +#554 = CARTESIAN_POINT ( 'NONE', ( -1.162624339844679167, -0.2971489424154670211, 5.691237000071150298 ) ) ; +#555 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -6.892264536872972008E-16, 3.104000000000000092 ) ) ; +#556 = CARTESIAN_POINT ( 'NONE', ( 0.9264160033237391900, -0.7628027731110228471, 5.800274753243595427 ) ) ; +#557 = ORIENTED_EDGE ( 'NONE', *, *, #528, .F. ) ; +#558 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1886, #4762, #699, #4734 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#559 = CARTESIAN_POINT ( 'NONE', ( 0.2287658773652739563, -1.311297632095825394, 4.658015363927715313 ) ) ; +#560 = CIRCLE ( 'NONE', #3549, 0.8594421130351397320 ) ; +#561 = CARTESIAN_POINT ( 'NONE', ( 0.6673867744249554201, 0.3853159338678434076, 5.130805054534240739 ) ) ; +#562 = EDGE_CURVE ( 'NONE', #3889, #4470, #1239, .T. ) ; +#563 = VERTEX_POINT ( 'NONE', #4370 ) ; +#564 = CARTESIAN_POINT ( 'NONE', ( 0.8440869661787239187, 0.8529414020523438111, 5.701826644400905586 ) ) ; +#565 = ORIENTED_EDGE ( 'NONE', *, *, #4468, .F. ) ; +#566 = AXIS2_PLACEMENT_3D ( 'NONE', #163, #1808, #3432 ) ; +#567 = CARTESIAN_POINT ( 'NONE', ( 0.5930096105782221017, 0.08315909596899372092, 6.234904240597850311 ) ) ; +#568 = VERTEX_POINT ( 'NONE', #3621 ) ; +#569 = AXIS2_PLACEMENT_3D ( 'NONE', #962, #656, #4699 ) ; +#570 = CARTESIAN_POINT ( 'NONE', ( -3.581366610240468148E-17, -1.249889081122999952E-15, 5.879000000000000448 ) ) ; +#571 = CARTESIAN_POINT ( 'NONE', ( -0.5528668453645674274, -0.03210161468876451818, 6.181402328632901622 ) ) ; +#572 = EDGE_LOOP ( 'NONE', ( #2773, #1612, #2374, #4391, #4480, #1737 ) ) ; +#573 = CARTESIAN_POINT ( 'NONE', ( -0.6826897502467756951, 0.3941511110779740146, 5.096860619515669377 ) ) ; +#574 = ORIENTED_EDGE ( 'NONE', *, *, #1431, .T. ) ; +#575 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, 0.8125000000000000000, 3.953999999999999737 ) ) ; +#576 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.9221302479016255660, 0.3868795754558342348 ) ) ; +#577 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#578 = EDGE_CURVE ( 'NONE', #4983, #2399, #246, .T. ) ; +#579 = LINE ( 'NONE', #3034, #4663 ) ; +#580 = FACE_OUTER_BOUND ( 'NONE', #2277, .T. ) ; +#581 = CARTESIAN_POINT ( 'NONE', ( -0.1441924260139429148, -0.3622802205436830847, 5.986163717094036052 ) ) ; +#582 = VECTOR ( 'NONE', #2158, 39.37007874015748143 ) ; +#583 = CARTESIAN_POINT ( 'NONE', ( 0.8359301572090055421, -0.8609392696199501538, 5.685712360077300076 ) ) ; +#584 = ORIENTED_EDGE ( 'NONE', *, *, #2622, .T. ) ; +#585 = FACE_OUTER_BOUND ( 'NONE', #1752, .T. ) ; +#586 = DIRECTION ( 'NONE', ( 0.4999999999999998890, 0.8660254037844387076, 2.331034670843834533E-16 ) ) ; +#587 = VERTEX_POINT ( 'NONE', #2414 ) ; +#588 = CARTESIAN_POINT ( 'NONE', ( 8.371932006857165704E-16, 1.066544210837059081, 5.661815083166008122 ) ) ; +#589 = EDGE_CURVE ( 'NONE', #1212, #3148, #1709, .T. ) ; +#590 = FACE_BOUND ( 'NONE', #5270, .T. ) ; +#591 = ORIENTED_EDGE ( 'NONE', *, *, #181, .T. ) ; +#592 = CARTESIAN_POINT ( 'NONE', ( -0.3724837612980612112, 0.1153158768970109355, 5.931430154263412469 ) ) ; +#593 = CARTESIAN_POINT ( 'NONE', ( -0.6197617335398699634, -0.2207690457491480740, 6.301207040981362084 ) ) ; +#594 = ORIENTED_EDGE ( 'NONE', *, *, #2735, .T. ) ; +#595 = CARTESIAN_POINT ( 'NONE', ( -0.08408373475607579250, 0.3807477961367727870, 5.929924902837993450 ) ) ; +#596 = CARTESIAN_POINT ( 'NONE', ( 0.2969747929130269193, 1.162669148667691665, 5.726939577286271010 ) ) ; +#597 = ORIENTED_EDGE ( 'NONE', *, *, #3187, .T. ) ; +#598 = CARTESIAN_POINT ( 'NONE', ( -0.4215335734628834485, 0.02599544383222536503, 6.024784635834353530 ) ) ; +#599 = FACE_OUTER_BOUND ( 'NONE', #3375, .T. ) ; +#600 = DIRECTION ( 'NONE', ( -3.571570303986756206E-16, -0.7660444431189782355, -0.6427876096865391409 ) ) ; +#601 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, -0.8097085448544685260, 5.355730255524930428 ) ) ; +#602 = DIRECTION ( 'NONE', ( 0.6634139481689371731, -0.3830222215594895618, -0.6427876096865402511 ) ) ; +#603 = CARTESIAN_POINT ( 'NONE', ( -0.2211370310381483573, -0.4014505745557485072, 6.067633472859232491 ) ) ; +#604 = ADVANCED_FACE ( 'NONE', ( #4735 ), #4843, .F. ) ; +#605 = ADVANCED_FACE ( 'NONE', ( #3567 ), #2309, .F. ) ; +#606 = DIRECTION ( 'NONE', ( 8.741913579725642546E-17, 0.6427876096865391409, 0.7660444431189782355 ) ) ; +#607 = ORIENTED_EDGE ( 'NONE', *, *, #2486, .T. ) ; +#608 = CIRCLE ( 'NONE', #3255, 0.1875000000000000278 ) ; +#609 = DIRECTION ( 'NONE', ( -1.000000000000000000, 1.110223024625159992E-16, 2.465190328815659976E-32 ) ) ; +#610 = ORIENTED_EDGE ( 'NONE', *, *, #1171, .T. ) ; +#611 = EDGE_CURVE ( 'NONE', #4104, #5261, #1355, .T. ) ; +#612 = CARTESIAN_POINT ( 'NONE', ( 0.9406202507489094256, 0.7451399491914626472, 5.805572500925889834 ) ) ; +#613 = EDGE_LOOP ( 'NONE', ( #2362, #4749 ) ) ; +#614 = EDGE_CURVE ( 'NONE', #3041, #5108, #4763, .T. ) ; +#615 = CARTESIAN_POINT ( 'NONE', ( 0.3542143018087770545, -0.1630893551873201786, 5.907833537787413825 ) ) ; +#616 = CARTESIAN_POINT ( 'NONE', ( -0.6175879818461342818, -0.2419680217481939288, 6.305994169016219786 ) ) ; +#617 = EDGE_LOOP ( 'NONE', ( #3079, #3544 ) ) ; +#618 = CARTESIAN_POINT ( 'NONE', ( 0.07592211955846867033, 0.3824571612683640431, 5.924878623414131518 ) ) ; +#619 = CARTESIAN_POINT ( 'NONE', ( 0.3330695001705769598, 1.152846936858416216, 5.677078363336527822 ) ) ; +#620 = CARTESIAN_POINT ( 'NONE', ( 1.139605238168176049, -0.3759014824841714342, 5.775699719081629269 ) ) ; +#621 = EDGE_CURVE ( 'NONE', #3756, #3479, #5281, .T. ) ; +#622 = CARTESIAN_POINT ( 'NONE', ( 0.1845071557944078511, -0.6019879651539370435, 6.271836282905964843 ) ) ; +#623 = ORIENTED_EDGE ( 'NONE', *, *, #4249, .T. ) ; +#624 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#625 = CARTESIAN_POINT ( 'NONE', ( -0.3466273600205239114, 1.148847323114439378, 5.653796199867342942 ) ) ; +#626 = CARTESIAN_POINT ( 'NONE', ( -1.167179158736221023, 0.2787293713492152158, 5.661691036252489262 ) ) ; +#627 = CARTESIAN_POINT ( 'NONE', ( -0.2160801229187599426, -0.3966749475283659621, 6.059766075025364351 ) ) ; +#628 = CARTESIAN_POINT ( 'NONE', ( -0.1727243494840770555, 0.6121830750256134213, 6.279279236240930651 ) ) ; +#629 = ORIENTED_EDGE ( 'NONE', *, *, #2347, .T. ) ; +#630 = CARTESIAN_POINT ( 'NONE', ( 0.4995670002119779740, 0.4272231195929702130, 6.300697282997403725 ) ) ; +#631 = DIRECTION ( 'NONE', ( 1.000000000000000000, -7.284927983104700930E-16, 0.000000000000000000 ) ) ; +#632 = ORIENTED_EDGE ( 'NONE', *, *, #2681, .T. ) ; +#633 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#634 = CIRCLE ( 'NONE', #4994, 0.3899210354891941011 ) ; +#635 = CARTESIAN_POINT ( 'NONE', ( -0.2412598035633612692, 0.4065279755430372677, 6.084725601151980356 ) ) ; +#636 = EDGE_CURVE ( 'NONE', #3551, #1725, #3185, .T. ) ; +#637 = FACE_OUTER_BOUND ( 'NONE', #692, .T. ) ; +#638 = ORIENTED_EDGE ( 'NONE', *, *, #4970, .T. ) ; +#639 = CARTESIAN_POINT ( 'NONE', ( -0.3477280203617504339, 0.4172672171067411950, 6.129000000000000448 ) ) ; +#640 = CIRCLE ( 'NONE', #3637, 0.3899210354891941011 ) ; +#641 = ORIENTED_EDGE ( 'NONE', *, *, #4189, .F. ) ; +#642 = CARTESIAN_POINT ( 'NONE', ( -0.08212075968786665403, 0.3811737472289117856, 5.928666586421600826 ) ) ; +#643 = CARTESIAN_POINT ( 'NONE', ( 0.2901014953518605277, 1.164407416063079737, 5.734811671460230187 ) ) ; +#644 = AXIS2_PLACEMENT_3D ( 'NONE', #836, #2465, #1317 ) ; +#645 = AXIS2_PLACEMENT_3D ( 'NONE', #2487, #477, #78 ) ; +#646 = CARTESIAN_POINT ( 'NONE', ( -0.4220600189941659530, 0.02565194563910034448, 6.025386023353350495 ) ) ; +#647 = AXIS2_PLACEMENT_3D ( 'NONE', #1103, #370, #2011 ) ; +#648 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000, 0.000000000000000000, 0.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ; +#649 = FACE_OUTER_BOUND ( 'NONE', #4213, .T. ) ; +#650 = EDGE_LOOP ( 'NONE', ( #1443, #5250, #1147, #3682, #1884, #2595 ) ) ; +#651 = CARTESIAN_POINT ( 'NONE', ( 0.1874999999999997502, -0.5097749077943205531, 6.129000000000000448 ) ) ; +#652 = CARTESIAN_POINT ( 'NONE', ( 0.3634531436717379216, -0.4720219717317143959, 6.231306833138597234 ) ) ; +#653 = ADVANCED_FACE ( 'NONE', ( #3542 ), #5165, .F. ) ; +#654 = CARTESIAN_POINT ( 'NONE', ( 1.250000000000002220, 0.4575317547305481347, 4.658015363927714425 ) ) ; +#655 = CARTESIAN_POINT ( 'NONE', ( 1.115620250748909470, -0.4420310578669133794, 5.805572500925889834 ) ) ; +#656 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#657 = AXIS2_PLACEMENT_3D ( 'NONE', #2943, #3376, #4528 ) ; +#658 = CARTESIAN_POINT ( 'NONE', ( 1.191531308125826527, 0.1644751193384636490, 5.562957933457567172 ) ) ; +#659 = CARTESIAN_POINT ( 'NONE', ( 0.5683684002397907387, -0.04705188851280655421, 6.201038154601325125 ) ) ; +#660 = CIRCLE ( 'NONE', #3406, 0.2500000000000000000 ) ; +#661 = DIRECTION ( 'NONE', ( 0.6634139481689380613, -0.3830222215594901169, 0.6427876096865391409 ) ) ; +#662 = ORIENTED_EDGE ( 'NONE', *, *, #87, .F. ) ; +#663 = DIRECTION ( 'NONE', ( -0.3479270227670989701, 0.6026272807587880198, -0.7181832268395659247 ) ) ; +#664 = VECTOR ( 'NONE', #3926, 39.37007874015748854 ) ; +#665 = EDGE_LOOP ( 'NONE', ( #978, #4945, #4, #4591, #1955, #524, #533, #162 ) ) ; +#666 = PLANE ( 'NONE', #4630 ) ; +#667 = FACE_BOUND ( 'NONE', #1528, .T. ) ; +#668 = ORIENTED_EDGE ( 'NONE', *, *, #2217, .F. ) ; +#669 = CARTESIAN_POINT ( 'NONE', ( 0.2500000000000405787, -0.4596218850615266249, 6.144968119816495822 ) ) ; +#670 = ADVANCED_FACE ( 'NONE', ( #5215 ), #1156, .F. ) ; +#671 = EDGE_CURVE ( 'NONE', #2945, #92, #2439, .T. ) ; +#672 = DIRECTION ( 'NONE', ( -3.061616997868379936E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +#673 = AXIS2_PLACEMENT_3D ( 'NONE', #2017, #675, #327 ) ; +#674 = CARTESIAN_POINT ( 'NONE', ( 0.3055260323513815379, 1.160474737948729462, 5.716802663699662723 ) ) ; +#675 = DIRECTION ( 'NONE', ( 0.5566703992264189216, 0.3213938048432689598, -0.7660444431189787906 ) ) ; +#676 = PLANE ( 'NONE', #1917 ) ; +#677 = ORIENTED_EDGE ( 'NONE', *, *, #3306, .F. ) ; +#678 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #3602, #801 ) ; +#679 = CARTESIAN_POINT ( 'NONE', ( -0.8931626737340070399, -4.719674071447354351E-16, 5.157008074717787771 ) ) ; +#680 = CARTESIAN_POINT ( 'NONE', ( -0.3529131148971625387, 1.146930911132388653, 5.641989472844064935 ) ) ; +#681 = LINE ( 'NONE', #5042, #3105 ) ; +#682 = CARTESIAN_POINT ( 'NONE', ( 0.2334055081128495468, 0.3709080446762118566, 6.043708584761944280 ) ) ; +#683 = EDGE_CURVE ( 'NONE', #3725, #3379, #2784, .T. ) ; +#684 = LINE ( 'NONE', #1138, #4413 ) ; +#685 = VERTEX_POINT ( 'NONE', #3785 ) ; +#686 = DIRECTION ( 'NONE', ( -0.8627299156628220889, -0.4980973490458718844, -0.08715574274765004736 ) ) ; +#687 = CARTESIAN_POINT ( 'NONE', ( -0.3591008472507402627, -0.1520103343118869021, 5.911591706028461957 ) ) ; +#688 = DIRECTION ( 'NONE', ( 0.5566703992264190326, -0.3213938048432700145, 0.7660444431189781245 ) ) ; +#689 = ORIENTED_EDGE ( 'NONE', *, *, #5290, .F. ) ; +#690 = CARTESIAN_POINT ( 'NONE', ( -5.783046526498795293E-17, -1.337116258361070674E-15, 6.271836282905964843 ) ) ; +#691 = EDGE_CURVE ( 'NONE', #4366, #3423, #2910, .T. ) ; +#692 = EDGE_LOOP ( 'NONE', ( #345, #3262, #5148, #1670 ) ) ; +#693 = CARTESIAN_POINT ( 'NONE', ( -0.2364570729316255449, 0.3898244432170504536, 6.064788160726966915 ) ) ; +#694 = DIRECTION ( 'NONE', ( 6.250248031976811775E-16, 0.7660444431189782355, -0.6427876096865391409 ) ) ; +#695 = VERTEX_POINT ( 'NONE', #3326 ) ; +#696 = VERTEX_POINT ( 'NONE', #1729 ) ; +#697 = CARTESIAN_POINT ( 'NONE', ( 0.3395699821791369755, -0.1916538970205251824, 5.903268396137073992 ) ) ; +#698 = CARTESIAN_POINT ( 'NONE', ( -0.2475878252593703144, 0.4465997224833250234, 6.129935593172243458 ) ) ; +#699 = CARTESIAN_POINT ( 'NONE', ( -0.8430331626936470313, -0.7032287736015480073, 5.679393789334459264 ) ) ; +#700 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#701 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #4794, #1489, #1944, #2760 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 6.136830048234790169, 6.429540566124390288 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9928727816990980948, 0.9928727816990980948, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#702 = CARTESIAN_POINT ( 'NONE', ( -0.9102530003290353333, -3.749563932074838795E-16, 5.096860619515669377 ) ) ; +#703 = EDGE_LOOP ( 'NONE', ( #2515, #3217, #4626, #4304, #2013, #3675, #1324, #3518, #4781, #4495 ) ) ; +#704 = CARTESIAN_POINT ( 'NONE', ( -0.4577015327250554821, 0.4503044012593899192, 6.285725290086653594 ) ) ; +#705 = CARTESIAN_POINT ( 'NONE', ( -0.3348331666646469640, 1.152362380347049298, 5.674568478629609558 ) ) ; +#706 = VECTOR ( 'NONE', #506, 39.37007874015748143 ) ; +#707 = EDGE_CURVE ( 'NONE', #3049, #2546, #429, .T. ) ; +#708 = CARTESIAN_POINT ( 'NONE', ( 0.4414780203617504339, -0.2548874538971618309, 6.129000000000000448 ) ) ; +#709 = CARTESIAN_POINT ( 'NONE', ( 0.1845071557944078511, -0.6019879651539370435, 6.271836282905964843 ) ) ; +#710 = EDGE_CURVE ( 'NONE', #1523, #4104, #1270, .T. ) ; +#711 = CARTESIAN_POINT ( 'NONE', ( -0.1053493747042477807, 0.6532432094999145455, 6.304589945585336253 ) ) ; +#712 = CARTESIAN_POINT ( 'NONE', ( -0.2489020555364736265, -0.4931661567619420872, 6.179690170098861124 ) ) ; +#713 = CARTESIAN_POINT ( 'NONE', ( 0.5845516360633431496, -0.06901785760568791839, 6.222951153440251737 ) ) ; +#714 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) ); +#715 = CIRCLE ( 'NONE', #1659, 0.1875000000000000555 ) ; +#716 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 0.000000000000000000 ) ) ; +#717 = ORIENTED_EDGE ( 'NONE', *, *, #2256, .T. ) ; +#718 = DIRECTION ( 'NONE', ( -1.000000000000000000, 1.014505260391146087E-15, 0.000000000000000000 ) ) ; +#719 = DIRECTION ( 'NONE', ( -3.885780586188050850E-16, -0.7660444431189782355, -0.6427876096865392519 ) ) ; +#720 = CARTESIAN_POINT ( 'NONE', ( 1.155355399620333401, 0.3242466499637008392, 5.727056746289673761 ) ) ; +#721 = EDGE_CURVE ( 'NONE', #3506, #3100, #2838, .T. ) ; +#722 = ORIENTED_EDGE ( 'NONE', *, *, #710, .T. ) ; +#723 = EDGE_LOOP ( 'NONE', ( #4265, #2383, #1667, #749 ) ) ; +#724 = CARTESIAN_POINT ( 'NONE', ( 0.2500000000000000000, -0.4734180295921480153, 6.159507043090530765 ) ) ; +#725 = DIRECTION ( 'NONE', ( -1.000000000000000000, 1.014505260391146087E-15, 0.000000000000000000 ) ) ; +#726 = PLANE ( 'NONE', #3828 ) ; +#727 = ORIENTED_EDGE ( 'NONE', *, *, #2347, .F. ) ; +#728 = CARTESIAN_POINT ( 'NONE', ( 0.9545816565475355731, -0.3490553821548311175, 5.195033353103291951 ) ) ; +#729 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.9221302479016264542, 0.3868795754558317368 ) ) ; +#730 = ORIENTED_EDGE ( 'NONE', *, *, #4182, .T. ) ; +#731 = CARTESIAN_POINT ( 'NONE', ( -0.6183250774701977148, 0.2360515692448369174, 6.304736219313429757 ) ) ; +#732 = AXIS2_PLACEMENT_3D ( 'NONE', #4565, #3846, #2587 ) ; +#733 = CARTESIAN_POINT ( 'NONE', ( -0.2990255889399988654, 1.162138026541865266, 5.724503263314558055 ) ) ; +#734 = CARTESIAN_POINT ( 'NONE', ( -1.115620250748909470, 0.4420310578669109924, 5.805572500925889834 ) ) ; +#735 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #4689, #3081, #1509, #247 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 5.759586531581289748, 5.965361603251709610 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9964744966727187014, 0.9964744966727187014, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#736 = CARTESIAN_POINT ( 'NONE', ( 0.2345346899833603282, 0.3814331840408032859, 6.055046826850326802 ) ) ; +#737 = CIRCLE ( 'NONE', #4918, 0.1875000000000000278 ) ; +#738 = CARTESIAN_POINT ( 'NONE', ( -0.5078194151786440402, 0.2931896760531078616, 6.064721239031358735 ) ) ; +#739 = ADVANCED_FACE ( 'NONE', ( #2551 ), #4667, .T. ) ; +#740 = ORIENTED_EDGE ( 'NONE', *, *, #4401, .F. ) ; +#741 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, 0.9058473084154233801, 5.470303972386260760 ) ) ; +#742 = LINE ( 'NONE', #2346, #664 ) ; +#743 = VECTOR ( 'NONE', #2085, 39.37007874015748854 ) ; +#744 = CARTESIAN_POINT ( 'NONE', ( 0.9118057218679826992, 0.7804631996566975261, 5.792207704862554429 ) ) ; +#745 = CARTESIAN_POINT ( 'NONE', ( 0.2321173084465558700, -0.5414995229949844946, 6.223590640882386005 ) ) ; +#746 = CIRCLE ( 'NONE', #1606, 0.1874999999999999167 ) ; +#747 = CARTESIAN_POINT ( 'NONE', ( 0.9031367637328661102, -1.292850939085921155E-15, 5.167302222155944591 ) ) ; +#748 = ORIENTED_EDGE ( 'NONE', *, *, #4720, .T. ) ; +#749 = ORIENTED_EDGE ( 'NONE', *, *, #4935, .T. ) ; +#750 = VECTOR ( 'NONE', #2560, 39.37007874015748143 ) ; +#751 = DIRECTION ( 'NONE', ( 0.6634139481689388385, 0.3830222215594888957, 0.6427876096865389188 ) ) ; +#752 = AXIS2_PLACEMENT_3D ( 'NONE', #2712, #276, #2212 ) ; +#753 = ADVANCED_FACE ( 'NONE', ( #892 ), #2440, .F. ) ; +#754 = LINE ( 'NONE', #2357, #3014 ) ; +#755 = ORIENTED_EDGE ( 'NONE', *, *, #4121, .F. ) ; +#756 = LINE ( 'NONE', #806, #5262 ) ; +#757 = CARTESIAN_POINT ( 'NONE', ( -0.3276302000208811682, -1.154406386737796719, 5.685712360048904124 ) ) ; +#758 = EDGE_LOOP ( 'NONE', ( #1641, #2312 ) ) ; +#759 = CARTESIAN_POINT ( 'NONE', ( -0.4087760300409839509, -0.03429865399946920024, 6.010231776191740316 ) ) ; +#760 = VECTOR ( 'NONE', #273, 39.37007874015748854 ) ; +#761 = FACE_OUTER_BOUND ( 'NONE', #833, .T. ) ; +#762 = VERTEX_POINT ( 'NONE', #3730 ) ; +#763 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, -1.109813176013889846, 5.713381027863315254 ) ) ; +#764 = DIRECTION ( 'NONE', ( -0.5566703992264199208, -0.3213938048432689598, 0.7660444431189777914 ) ) ; +#765 = CARTESIAN_POINT ( 'NONE', ( 0.4242666027707584497, -0.02424080399519720763, 6.027911261269286669 ) ) ; +#766 = CARTESIAN_POINT ( 'NONE', ( 0.2730442285983030737, 0.4463172934767622446, 6.144968119816192065 ) ) ; +#767 = CARTESIAN_POINT ( 'NONE', ( -0.1034430428882485015, 0.6540696441766413738, 6.305040518010207151 ) ) ; +#768 = ORIENTED_EDGE ( 'NONE', *, *, #3378, .F. ) ; +#769 = CARTESIAN_POINT ( 'NONE', ( 0.6200730500983222537, 0.1957305247145680605, 6.294010020238524739 ) ) ; +#770 = CARTESIAN_POINT ( 'NONE', ( -0.2463976707159253599, -0.4167425903832578382, 6.098440029974719678 ) ) ; +#771 = EDGE_CURVE ( 'NONE', #3596, #696, #1320, .T. ) ; +#772 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#773 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#774 = CARTESIAN_POINT ( 'NONE', ( 1.169766350372122732, 0.2679190983741348009, 5.643079299725071607 ) ) ; +#775 = VERTEX_POINT ( 'NONE', #2044 ) ; +#776 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4990, #5282, #2031, #2908, #2143, #880, #3746, #2454, #1628, #1308, #3773, #4518, #443, #1687, #3256, #2934, #4882, #1744, #3313, #2083, #1226, #3717, #39, #4938 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999983971433, 0.2499999999967942865, 0.3749999999951914020, 0.4374999999943821605, 0.4687499999939911954, 0.4843749999937968509, 0.4921874999937000950, 0.4960937499936520778, 0.4980468749936297623, 0.4990234374936435291, 0.4999999999936571848, 0.7499999999968285369, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#777 = VERTEX_POINT ( 'NONE', #4613 ) ; +#778 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#779 = EDGE_CURVE ( 'NONE', #1148, #1049, #5003, .T. ) ; +#780 = ORIENTED_EDGE ( 'NONE', *, *, #4793, .F. ) ; +#781 = CARTESIAN_POINT ( 'NONE', ( -0.2500000000000000000, 0.4734180295921449066, 6.159507043090530765 ) ) ; +#782 = CIRCLE ( 'NONE', #97, 0.2499999999999998612 ) ; +#783 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, 1.109813176013880076, 5.713381027863315254 ) ) ; +#784 = VERTEX_POINT ( 'NONE', #3380 ) ; +#785 = CARTESIAN_POINT ( 'NONE', ( -0.5291152704489694436, -0.01707628791101063748, 6.152375382308374441 ) ) ; +#786 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#787 = ORIENTED_EDGE ( 'NONE', *, *, #3378, .T. ) ; +#788 = CARTESIAN_POINT ( 'NONE', ( -0.6197695747572726788, 0.2190261532853183535, 6.300697282998950932 ) ) ; +#789 = CARTESIAN_POINT ( 'NONE', ( -1.030525505591920687, -0.3784643435476458539, 5.679382527200088404 ) ) ; +#790 = EDGE_CURVE ( 'NONE', #1316, #1395, #737, .T. ) ; +#791 = LINE ( 'NONE', #1136, #3994 ) ; +#792 = DIRECTION ( 'NONE', ( 1.000000000000000000, -1.224646799147351975E-16, -6.018531076210109851E-32 ) ) ; +#793 = DIRECTION ( 'NONE', ( -0.5000000000000003331, -0.8660254037844383745, 0.000000000000000000 ) ) ; +#794 = CARTESIAN_POINT ( 'NONE', ( -0.8243929888428096486, -0.8719954812018015922, 5.660336885743872948 ) ) ; +#795 = DIRECTION ( 'NONE', ( -0.5000000000000000000, 0.8660254037844385966, 0.000000000000000000 ) ) ; +#796 = CARTESIAN_POINT ( 'NONE', ( -1.200000000000001732, -0.08245558274271776178, 5.522824837521429941 ) ) ; +#797 = CARTESIAN_POINT ( 'NONE', ( 0.2314336523865720141, 0.4122011065679088149, 6.084725601150273278 ) ) ; +#798 = AXIS2_PLACEMENT_3D ( 'NONE', #354, #4348, #2365 ) ; +#799 = CARTESIAN_POINT ( 'NONE', ( 0.2325046000303956084, -0.5407454954574049122, 6.222951153440211769 ) ) ; +#800 = CARTESIAN_POINT ( 'NONE', ( -0.5664780203617503229, -0.03838110295105131436, 6.129000000000000448 ) ) ; +#801 = PRODUCT_DEFINITION_CONTEXT ( 'detailed design', #2204, 'design' ) ; +#802 = ORIENTED_EDGE ( 'NONE', *, *, #4240, .T. ) ; +#803 = CARTESIAN_POINT ( 'NONE', ( 0.1882540719898715409, -0.3780565050829018947, 6.024784635834122604 ) ) ; +#804 = ORIENTED_EDGE ( 'NONE', *, *, #3010, .F. ) ; +#805 = EDGE_CURVE ( 'NONE', #3610, #1678, #1938, .T. ) ; +#806 = CARTESIAN_POINT ( 'NONE', ( -0.8508281758544096185, 0.4912258763636598857, 5.406025211417605725 ) ) ; +#807 = CARTESIAN_POINT ( 'NONE', ( -0.2282712182305711712, -1.178088855335439167, 5.785842532528668869 ) ) ; +#808 = ORIENTED_EDGE ( 'NONE', *, *, #3066, .F. ) ; +#809 = CARTESIAN_POINT ( 'NONE', ( 0.9376584395713641884, -1.624072057483360476, 4.395566458943346078 ) ) ; +#810 = LINE ( 'NONE', #869, #1157 ) ; +#811 = ORIENTED_EDGE ( 'NONE', *, *, #215, .T. ) ; +#812 = VECTOR ( 'NONE', #4539, 39.37007874015748143 ) ; +#813 = CARTESIAN_POINT ( 'NONE', ( -0.6165465526022826381, 0.1566132624892026537, 6.279327844347485588 ) ) ; +#814 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, 1.187171007058380079, 5.805572500925889834 ) ) ; +#815 = EDGE_LOOP ( 'NONE', ( #4759, #348, #891, #5089 ) ) ; +#816 = CARTESIAN_POINT ( 'NONE', ( 0.5105606176386884298, -0.008882514903962634989, 6.129935593188698739 ) ) ; +#817 = CARTESIAN_POINT ( 'NONE', ( -0.5800695643221936981, 0.7679160210023464606, 5.291451494556268287 ) ) ; +#818 = CARTESIAN_POINT ( 'NONE', ( 0.3507153230635924879, 0.1708971118926179977, 5.905295428022799165 ) ) ; +#819 = CARTESIAN_POINT ( 'NONE', ( -0.2319532662628901731, -0.5418234279103769646, 6.223871975216532348 ) ) ; +#820 = ADVANCED_FACE ( 'NONE', ( #4327 ), #2216, .F. ) ; +#821 = AXIS2_PLACEMENT_3D ( 'NONE', #570, #2577, #3860 ) ; +#822 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#823 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ; +#824 = CARTESIAN_POINT ( 'NONE', ( -0.9545816565475355731, 0.3490553821548291191, 5.195033353103291951 ) ) ; +#825 = AXIS2_PLACEMENT_3D ( 'NONE', #482, #3352, #1726 ) ; +#826 = FACE_OUTER_BOUND ( 'NONE', #5045, .T. ) ; +#827 = CARTESIAN_POINT ( 'NONE', ( 1.038328175854409618, -0.1664663499444990202, 5.406025211417605725 ) ) ; +#828 = CARTESIAN_POINT ( 'NONE', ( 1.138985337741845960, 0.3777717739897765159, 5.777025144230559128 ) ) ; +#829 = CARTESIAN_POINT ( 'NONE', ( 0.2307889170285063185, 0.5441127590885911358, 6.225791725380307895 ) ) ; +#830 = VERTEX_POINT ( 'NONE', #1467 ) ; +#831 = PRODUCT ( 'Pump Manifold v2 (5-axis)', 'Pump Manifold v2 (5-axis)', '', ( #3228 ) ) ; +#832 = CARTESIAN_POINT ( 'NONE', ( 0.7887281695053012243, 0.2532998267649559376, 5.355730255524930428 ) ) ; +#833 = EDGE_LOOP ( 'NONE', ( #1238, #2566, #847, #2382 ) ) ; +#834 = VECTOR ( 'NONE', #5235, 39.37007874015748143 ) ; +#835 = CONICAL_SURFACE ( 'NONE', #1522, 0.5097749077943197760, 0.6981317007977323463 ) ; +#836 = CARTESIAN_POINT ( 'NONE', ( 0.9442786809891654531, -0.2565044160643090154, 5.518181750081197379 ) ) ; +#837 = CARTESIAN_POINT ( 'NONE', ( -0.2324649957791623534, -1.177272519673949525, 5.783407949541054194 ) ) ; +#838 = ORIENTED_EDGE ( 'NONE', *, *, #4852, .T. ) ; +#839 = CARTESIAN_POINT ( 'NONE', ( -0.07592211956401868911, -0.3824571612676340715, 5.924878623417083823 ) ) ; +#840 = VECTOR ( 'NONE', #394, 39.37007874015748854 ) ; +#841 = EDGE_CURVE ( 'NONE', #3951, #1762, #3161, .T. ) ; +#842 = CARTESIAN_POINT ( 'NONE', ( 0.3858400872864291564, 0.05626580631045724479, 5.986163717094036052 ) ) ; +#843 = CARTESIAN_POINT ( 'NONE', ( 0.9094867810375137918, -0.2364173032616039560, 5.470303972386260760 ) ) ; +#844 = ORIENTED_EDGE ( 'NONE', *, *, #5123, .F. ) ; +#845 = DIRECTION ( 'NONE', ( 0.5566703992264190326, 0.3213938048432700145, 0.7660444431189781245 ) ) ; +#846 = CARTESIAN_POINT ( 'NONE', ( -0.6015694151786388222, 0.1308099128435228631, 6.064721239031350741 ) ) ; +#847 = ORIENTED_EDGE ( 'NONE', *, *, #2295, .T. ) ; +#848 = CARTESIAN_POINT ( 'NONE', ( 0.4491831713700184525, -0.7780080747177920975, 5.105498434834316868 ) ) ; +#849 = CARTESIAN_POINT ( 'NONE', ( 0.5999999999999999778, 1.039230484541320942, 5.473691469039889235 ) ) ; +#850 = CARTESIAN_POINT ( 'NONE', ( -0.8604725617319851638, 0.8364110830494284610, 5.730263837021020379 ) ) ; +#851 = EDGE_CURVE ( 'NONE', #3249, #3880, #4625, .T. ) ; +#852 = CARTESIAN_POINT ( 'NONE', ( -0.8251497766489058749, -0.8712794153202672032, 5.662091642671263969 ) ) ; +#853 = CARTESIAN_POINT ( 'NONE', ( 0.3376373100160182106, 0.4709943111486551981, 6.211979336397605245 ) ) ; +#854 = CARTESIAN_POINT ( 'NONE', ( 0.2425544272345685204, -1.175231406452980965, 5.776875333988872541 ) ) ; +#855 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, 1.023275245660230315, 5.610249138468685004 ) ) ; +#856 = EDGE_CURVE ( 'NONE', #267, #3045, #1014, .T. ) ; +#857 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, 1.109813176013880076, 5.713381027863315254 ) ) ; +#858 = CARTESIAN_POINT ( 'NONE', ( -0.8956503781502138661, -0.7986296702689602567, 5.776011653735409368 ) ) ; +#859 = CYLINDRICAL_SURFACE ( 'NONE', #2827, 0.1875000000000000555 ) ; +#860 = CARTESIAN_POINT ( 'NONE', ( 0.2329246058579281242, 0.5399212967441867628, 6.222246818971364668 ) ) ; +#861 = EDGE_CURVE ( 'NONE', #4361, #2868, #5011, .T. ) ; +#862 = ORIENTED_EDGE ( 'NONE', *, *, #4189, .T. ) ; +#863 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, 0.8097085448544666386, 5.355730255524930428 ) ) ; +#864 = VERTEX_POINT ( 'NONE', #1115 ) ; +#865 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.6427876096865392519, -0.7660444431189782355 ) ) ; +#866 = EDGE_LOOP ( 'NONE', ( #4321, #2939, #2598, #517 ) ) ; +#867 = CARTESIAN_POINT ( 'NONE', ( 1.200000000000002176, -0.08245558274272168919, 5.522824837521431718 ) ) ; +#868 = CARTESIAN_POINT ( 'NONE', ( 0.5337062854582841354, 0.01946996657569617650, 6.157868832631293365 ) ) ; +#869 = CARTESIAN_POINT ( 'NONE', ( 0.2500000000000003886, 0.5097749077943186657, 6.129000000000000448 ) ) ; +#870 = ORIENTED_EDGE ( 'NONE', *, *, #3362, .F. ) ; +#871 = CARTESIAN_POINT ( 'NONE', ( -0.4024021152658380784, -0.4694878823170181015, 6.257759860757973414 ) ) ; +#872 = CARTESIAN_POINT ( 'NONE', ( 0.4432250771588719940, -0.4561674302607995890, 6.279297187826305304 ) ) ; +#873 = EDGE_LOOP ( 'NONE', ( #4234, #1204, #3587, #4608, #3873, #997 ) ) ; +#874 = CARTESIAN_POINT ( 'NONE', ( -0.6673867744249555312, -0.3853159338678449064, 5.130805054534239851 ) ) ; +#875 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.305400232354259948E-15, 6.129000000000000448 ) ) ; +#876 = CARTESIAN_POINT ( 'NONE', ( 0.2743814532503254799, 0.2770860448503633666, 5.943519118015720970 ) ) ; +#877 = EDGE_CURVE ( 'NONE', #4425, #2733, #684, .T. ) ; +#878 = CARTESIAN_POINT ( 'NONE', ( 0.6201777508029306940, 0.2040449126820413905, 6.296557675059804460 ) ) ; +#879 = CARTESIAN_POINT ( 'NONE', ( 0.2990420152023330891, -1.162138707273709493, 5.724489629098495236 ) ) ; +#880 = CARTESIAN_POINT ( 'NONE', ( -0.2244875911522393186, 0.5551399342147370630, 6.234903360087704627 ) ) ; +#881 = CARTESIAN_POINT ( 'NONE', ( 0.2492480367529909258, 0.4598761190954787637, 6.144755415749981964 ) ) ; +#882 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#883 = CARTESIAN_POINT ( 'NONE', ( -0.2800840434774876653, -0.2712873903614316795, 5.937453764005901746 ) ) ; +#884 = CARTESIAN_POINT ( 'NONE', ( 0.2326717791904274468, 0.5404184114451106025, 6.222671864549639942 ) ) ; +#885 = ORIENTED_EDGE ( 'NONE', *, *, #2359, .F. ) ; +#886 = DIRECTION ( 'NONE', ( 0.5566703992264179224, 0.3213938048432699590, -0.7660444431189790127 ) ) ; +#887 = ORIENTED_EDGE ( 'NONE', *, *, #358, .T. ) ; +#888 = EDGE_CURVE ( 'NONE', #2765, #4758, #4569, .T. ) ; +#889 = PLANE ( 'NONE', #644 ) ; +#890 = CYLINDRICAL_SURFACE ( 'NONE', #317, 0.1330000000000000626 ) ; +#891 = ORIENTED_EDGE ( 'NONE', *, *, #3400, .T. ) ; +#892 = FACE_OUTER_BOUND ( 'NONE', #4139, .T. ) ; +#893 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#894 = CARTESIAN_POINT ( 'NONE', ( 1.017612079093787258, 0.3710122568151794642, 5.661614435832778014 ) ) ; +#895 = EDGE_LOOP ( 'NONE', ( #1122, #3939 ) ) ; +#896 = LINE ( 'NONE', #1647, #3691 ) ; +#897 = CARTESIAN_POINT ( 'NONE', ( 2.250000000000000000, -6.892264536872972008E-16, 3.104000000000000092 ) ) ; +#898 = ORIENTED_EDGE ( 'NONE', *, *, #805, .T. ) ; +#899 = PLANE ( 'NONE', #3498 ) ; +#900 = DIRECTION ( 'NONE', ( -3.061616997868378704E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +#901 = CARTESIAN_POINT ( 'NONE', ( 0.3826982880406211152, 0.07781054501995253447, 5.960763053386933130 ) ) ; +#902 = VECTOR ( 'NONE', #502, 39.37007874015748143 ) ; +#903 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, 0.9455000000000001181, 3.953999999999999737 ) ) ; +#904 = CARTESIAN_POINT ( 'NONE', ( 0.2539539685887379772, -1.172821473520246682, 5.768586320659391475 ) ) ; +#905 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#906 = CIRCLE ( 'NONE', #212, 0.1874999999999998612 ) ; +#907 = ADVANCED_FACE ( 'NONE', ( #3603, #1520 ), #4379, .F. ) ; +#908 = EDGE_CURVE ( 'NONE', #3292, #5186, #2342, .T. ) ; +#909 = CARTESIAN_POINT ( 'NONE', ( 0.9236543808441181058, -0.5332721054185314280, 5.661815083166008122 ) ) ; +#910 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#911 = DIRECTION ( 'NONE', ( -0.5566703992264190326, -0.3213938048432700145, 0.7660444431189781245 ) ) ; +#912 = VECTOR ( 'NONE', #4499, 39.37007874015748143 ) ; +#913 = AXIS2_PLACEMENT_3D ( 'NONE', #3448, #4281, #631 ) ; +#914 = AXIS2_PLACEMENT_3D ( 'NONE', #4750, #772, #1098 ) ; +#915 = CARTESIAN_POINT ( 'NONE', ( 0.2448110671172435138, 0.5100778972004638145, 6.195676070664101864 ) ) ; +#916 = ORIENTED_EDGE ( 'NONE', *, *, #4161, .F. ) ; +#917 = DIRECTION ( 'NONE', ( 0.6958540455341970521, -2.327668197565650330E-16, -0.7181832268395659247 ) ) ; +#918 = ORIENTED_EDGE ( 'NONE', *, *, #1406, .T. ) ; +#919 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000000555, -1.139901311517799387, 5.593666288758528005 ) ) ; +#920 = DIRECTION ( 'NONE', ( -0.5000000000000001110, -0.8660254037844384856, 0.000000000000000000 ) ) ; +#921 = VERTEX_POINT ( 'NONE', #4851 ) ; +#922 = DIRECTION ( 'NONE', ( 0.4044817466520060911, -0.7005829359354771579, -0.5878588831525550784 ) ) ; +#923 = ADVANCED_FACE ( 'NONE', ( #2792 ), #4463, .F. ) ; +#924 = CARTESIAN_POINT ( 'NONE', ( 0.4518195872491115872, 0.01112412755536139851, 6.060059721076717310 ) ) ; +#925 = CIRCLE ( 'NONE', #3207, 0.1875000000000001110 ) ; +#926 = CARTESIAN_POINT ( 'NONE', ( -0.6110546648443621054, 0.1292026384818416307, 6.265683030100824169 ) ) ; +#927 = EDGE_LOOP ( 'NONE', ( #2996, #3354, #4580, #2745, #1070, #4340, #3816 ) ) ; +#928 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.327604692846759648E-15, 6.229000000000000981 ) ) ; +#929 = CARTESIAN_POINT ( 'NONE', ( 0.2198713366042393258, 1.179693170992081486, 5.790448158960780134 ) ) ; +#930 = EDGE_LOOP ( 'NONE', ( #2491, #545, #2920, #4835 ) ) ; +#931 = AXIS2_PLACEMENT_3D ( 'NONE', #3765, #523, #115 ) ; +#932 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#933 = FACE_OUTER_BOUND ( 'NONE', #4629, .T. ) ; +#934 = CARTESIAN_POINT ( 'NONE', ( -0.8999999999999999112, -1.360911383585519550E-15, 6.378999999999999559 ) ) ; +#935 = CARTESIAN_POINT ( 'NONE', ( 0.3558565375742854808, -1.146020367956213315, 5.636193577737117266 ) ) ; +#936 = CARTESIAN_POINT ( 'NONE', ( -3.933861110876538837E-16, -0.5863793521062189429, 6.064721239031358735 ) ) ; +#937 = VERTEX_POINT ( 'NONE', #3923 ) ; +#938 = VECTOR ( 'NONE', #3334, 39.37007874015748143 ) ; +#939 = CARTESIAN_POINT ( 'NONE', ( 0.6250000000000000000, -1.082531754730549300, 4.849972727250857929 ) ) ; +#940 = EDGE_CURVE ( 'NONE', #3670, #5059, #1257, .T. ) ; +#941 = PLANE ( 'NONE', #3644 ) ; +#942 = EDGE_LOOP ( 'NONE', ( #1015, #3264, #1053, #3623, #1987, #968 ) ) ; +#943 = CARTESIAN_POINT ( 'NONE', ( 0.7611902459681201272, -1.212314066175399425E-15, 5.020800798730772563 ) ) ; +#944 = ORIENTED_EDGE ( 'NONE', *, *, #3584, .F. ) ; +#945 = FACE_OUTER_BOUND ( 'NONE', #521, .T. ) ; +#946 = EDGE_CURVE ( 'NONE', #864, #1675, #4437, .T. ) ; +#947 = LINE ( 'NONE', #3353, #2035 ) ; +#948 = ORIENTED_EDGE ( 'NONE', *, *, #1954, .T. ) ; +#949 = EDGE_CURVE ( 'NONE', #2546, #1301, #3388, .T. ) ; +#950 = DIRECTION ( 'NONE', ( -0.6634139481689388385, -0.3830222215594890622, 0.6427876096865390299 ) ) ; +#951 = CARTESIAN_POINT ( 'NONE', ( -0.5811186119672199224, -0.06396778276401836327, 6.218202174055928566 ) ) ; +#952 = ORIENTED_EDGE ( 'NONE', *, *, #4920, .F. ) ; +#953 = DIRECTION ( 'NONE', ( -0.6634139481689388385, -0.3830222215594890622, 0.6427876096865390299 ) ) ; +#954 = VERTEX_POINT ( 'NONE', #2717 ) ; +#955 = CARTESIAN_POINT ( 'NONE', ( -0.4179235492853024536, 0.02836726909596570465, 6.020663318475742543 ) ) ; +#956 = CARTESIAN_POINT ( 'NONE', ( 0.1390412961633347433, -0.6357704072096990178, 6.294558382368192540 ) ) ; +#957 = CARTESIAN_POINT ( 'NONE', ( -0.3750000000000000555, -1.139901311517799387, 5.593666288758528005 ) ) ; +#958 = ADVANCED_FACE ( 'NONE', ( #3337 ), #4934, .F. ) ; +#959 = AXIS2_PLACEMENT_3D ( 'NONE', #2698, #5156, #4337 ) ; +#960 = CARTESIAN_POINT ( 'NONE', ( 0.2433816254194469952, -1.175060377179061089, 5.776307826044730476 ) ) ; +#961 = CARTESIAN_POINT ( 'NONE', ( -0.2314336523878842145, -0.4122011065692460230, 6.084725601152782382 ) ) ; +#962 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -7.724931805341829553E-16, 3.479000000000000092 ) ) ; +#963 = VERTEX_POINT ( 'NONE', #4173 ) ; +#964 = CARTESIAN_POINT ( 'NONE', ( 0.2500000000000000000, -0.4734180295921480153, 6.159507043090530765 ) ) ; +#965 = LINE ( 'NONE', #3875, #3392 ) ; +#966 = ORIENTED_EDGE ( 'NONE', *, *, #3187, .F. ) ; +#967 = CARTESIAN_POINT ( 'NONE', ( -0.6137281695052991815, 0.5564087180895094242, 5.355730255524930428 ) ) ; +#968 = ORIENTED_EDGE ( 'NONE', *, *, #3739, .F. ) ; +#969 = CARTESIAN_POINT ( 'NONE', ( 0.5852095152515435217, 0.07003433817798319916, 6.223872015502927901 ) ) ; +#970 = ORIENTED_EDGE ( 'NONE', *, *, #1255, .F. ) ; +#971 = CARTESIAN_POINT ( 'NONE', ( -0.3711665281998654531, 0.1194682095469575961, 5.928666586421383222 ) ) ; +#972 = EDGE_CURVE ( 'NONE', #4205, #3528, #2139, .T. ) ; +#973 = EDGE_CURVE ( 'NONE', #4068, #3487, #3119, .T. ) ; +#974 = CARTESIAN_POINT ( 'NONE', ( -0.4364497701201500712, -0.4583781996021284444, 6.275722679830934680 ) ) ; +#975 = VERTEX_POINT ( 'NONE', #3365 ) ; +#976 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #5201, #658, #1572, #282 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 3.459416357517675067, 3.665191429188095373 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9964744966727187014, 0.9964744966727187014, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#977 = CARTESIAN_POINT ( 'NONE', ( 0.5183444446604962286, -0.4138628704765820454, 6.305994169016219786 ) ) ; +#978 = ORIENTED_EDGE ( 'NONE', *, *, #771, .T. ) ; +#979 = AXIS2_PLACEMENT_3D ( 'NONE', #1361, #1838, #1432 ) ; +#980 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#981 = DIRECTION ( 'NONE', ( 6.661338147750936284E-16, 0.7660444431189782355, -0.6427876096865392519 ) ) ; +#982 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2593, #4546, #4228, #3424, #2219, #883, #991, #4774, #2345, #1016, #312, #4747, #4675, #1042, #3477, #4358, #4382, #687, #2669, #285, #1094, #2720, #203, #3580, #3973, #1951, #2322, #5176, #1067, #3949 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1250000000001107170, 0.1875000000001692535, 0.2187500000001985079, 0.2343750000002100820, 0.2421875000002187972, 0.2460937500002260969, 0.2480468750002297884, 0.2500000000002334244, 0.5000000000003013145, 0.6250000000003350653, 0.6875000000003506084, 0.7187500000003584910, 0.7343750000003603784, 0.7421875000003633760, 0.7460937500003627099, 0.7480468750003601563, 0.7500000000003574918, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#983 = CARTESIAN_POINT ( 'NONE', ( -0.3487990591050359468, 0.4715399903827470762, 6.220460831038935545 ) ) ; +#984 = LINE ( 'NONE', #601, #1594 ) ; +#985 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, 0.8125000000000000000, 3.953999999999999737 ) ) ; +#986 = CARTESIAN_POINT ( 'NONE', ( -0.6250000000000000000, 1.082531754730549300, 4.849972727250857929 ) ) ; +#987 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4464, #3281, #4115, #2028, #1224, #4906, #3226, #1252, #794, #3661, #2424, #852, #5278, #1197, #2821, #387, #4880, #2479, #4485, #2452, #4088, #414, #2054, #3687, #1964, #3590, #4940, #2511, #41, #3775, #4521, #446, #858, #4570, #3344, #4123, #1286, #2936 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999996270483, 0.1874999999994356459, 0.2187499999993396671, 0.2343749999992972843, 0.2421874999992760791, 0.2460937499992657262, 0.2499999999992553734, 0.3749999999991052713, 0.4374999999990261679, 0.4687499999989866439, 0.4843749999989627186, 0.4921874999989466204, 0.4960937499989430677, 0.4980468749989454547, 0.4999999999989478416, 0.6249999999992661426, 0.6874999999994252375, 0.7187499999995043964, 0.7343749999995435873, 0.7421874999995665689, 0.7460937499995747846, 0.7499999999995830002, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#988 = EDGE_CURVE ( 'NONE', #3809, #4890, #2616, .T. ) ; +#989 = CARTESIAN_POINT ( 'NONE', ( 0.8969375655989106910, -0.7971852833009931416, 5.777310701146174843 ) ) ; +#990 = ORIENTED_EDGE ( 'NONE', *, *, #1500, .T. ) ; +#991 = CARTESIAN_POINT ( 'NONE', ( -0.2828974090793761054, -0.2683658126220803686, 5.934561472122973136 ) ) ; +#992 = CARTESIAN_POINT ( 'NONE', ( -1.174683493581610394, 0.2451911293397338321, 5.593666288758528005 ) ) ; +#993 = ORIENTED_EDGE ( 'NONE', *, *, #710, .F. ) ; +#994 = CARTESIAN_POINT ( 'NONE', ( 0.8232802491369675124, 0.8730452459109829810, 5.657733989962864030 ) ) ; +#995 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1865, #3418, #3494, #2585 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 0.5000032659714995775 ), + .UNSPECIFIED. ) ; +#996 = CARTESIAN_POINT ( 'NONE', ( 1.013584444210813285, 0.6530343010856334285, 5.825994415577062213 ) ) ; +#997 = ORIENTED_EDGE ( 'NONE', *, *, #4642, .F. ) ; +#998 = AXIS2_PLACEMENT_3D ( 'NONE', #5238, #4895, #3244 ) ; +#999 = FACE_OUTER_BOUND ( 'NONE', #3933, .T. ) ; +#1000 = CARTESIAN_POINT ( 'NONE', ( -0.6015399493655437801, -0.3054750533200743523, 6.315181427571380013 ) ) ; +#1001 = ORIENTED_EDGE ( 'NONE', *, *, #1431, .F. ) ; +#1002 = CARTESIAN_POINT ( 'NONE', ( 0.07886133826694058380, 0.3818600137859758936, 5.926640053127383290 ) ) ; +#1003 = ORIENTED_EDGE ( 'NONE', *, *, #3945, .T. ) ; +#1004 = EDGE_CURVE ( 'NONE', #5068, #3076, #715, .T. ) ; +#1005 = CARTESIAN_POINT ( 'NONE', ( 1.157491829950872075, -0.3165543405525962917, 5.717705779774497010 ) ) ; +#1006 = CIRCLE ( 'NONE', #4421, 0.8999999999999999112 ) ; +#1007 = CARTESIAN_POINT ( 'NONE', ( -0.8080795832187656069, 0.8872058367182654726, 5.620048901746856451 ) ) ; +#1008 = AXIS2_PLACEMENT_3D ( 'NONE', #1829, #1048, #2651 ) ; +#1009 = DIRECTION ( 'NONE', ( -0.5000000000000003331, 0.8660254037844384856, 3.035766082959412415E-16 ) ) ; +#1010 = EDGE_CURVE ( 'NONE', #4805, #1212, #995, .T. ) ; +#1011 = CARTESIAN_POINT ( 'NONE', ( -1.038328175854409618, -0.1664663499444970496, 5.406025211417605725 ) ) ; +#1012 = CARTESIAN_POINT ( 'NONE', ( -0.2499676822388576802, -0.4734477930975866666, 6.159485386716847977 ) ) ; +#1013 = ADVANCED_FACE ( 'NONE', ( #2985 ), #1459, .F. ) ; +#1014 = LINE ( 'NONE', #4303, #1423 ) ; +#1015 = ORIENTED_EDGE ( 'NONE', *, *, #3426, .F. ) ; +#1016 = CARTESIAN_POINT ( 'NONE', ( -0.2884842293442124173, -0.2623255908293708472, 5.929187335110643886 ) ) ; +#1017 = DIRECTION ( 'NONE', ( 0.4999999999999998335, -0.8660254037844385966, -3.035766082959409457E-16 ) ) ; +#1018 = ORIENTED_EDGE ( 'NONE', *, *, #3669, .F. ) ; +#1019 = CARTESIAN_POINT ( 'NONE', ( 0.8564180695733003557, 0.8405596136497256454, 5.723657599040928190 ) ) ; +#1020 = CYLINDRICAL_SURFACE ( 'NONE', #1008, 0.05000000000000003053 ) ; +#1021 = ADVANCED_FACE ( 'NONE', ( #3084 ), #4666, .F. ) ; +#1022 = VERTEX_POINT ( 'NONE', #4296 ) ; +#1023 = CARTESIAN_POINT ( 'NONE', ( 0.3712032306386413572, -0.1193557985899549589, 5.928739394247881656 ) ) ; +#1024 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1665, #3350, #4100, #3671 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#1025 = CARTESIAN_POINT ( 'NONE', ( -0.5440491015563622135, -0.02546392456818047725, 6.170530478065334279 ) ) ; +#1026 = ORIENTED_EDGE ( 'NONE', *, *, #232, .T. ) ; +#1027 = CARTESIAN_POINT ( 'NONE', ( -0.08293851104906124760, 0.3809974666178613800, 5.929187335110797541 ) ) ; +#1028 = CARTESIAN_POINT ( 'NONE', ( 1.017611827438179128, -0.3710121115558720484, 5.661614086336346219 ) ) ; +#1029 = AXIS2_PLACEMENT_3D ( 'NONE', #3547, #4403, #1517 ) ; +#1030 = CARTESIAN_POINT ( 'NONE', ( 1.123925224380727839, -0.4210705470596008415, 5.801654089883178322 ) ) ; +#1031 = DIRECTION ( 'NONE', ( 0.5566703992264190326, -0.3213938048432699590, -0.7660444431189780135 ) ) ; +#1032 = EDGE_LOOP ( 'NONE', ( #4101, #409, #320, #30, #1371, #2558 ) ) ; +#1033 = CARTESIAN_POINT ( 'NONE', ( -0.4174195504497613674, 0.4645877227965174439, 6.265682740389567407 ) ) ; +#1034 = CARTESIAN_POINT ( 'NONE', ( -0.2897037111099637352, 1.164536429019641606, 5.735635065153118717 ) ) ; +#1035 = CARTESIAN_POINT ( 'NONE', ( -1.172309096782232274, 0.2563451719098365222, 5.619127258109169354 ) ) ; +#1036 = DIRECTION ( 'NONE', ( 0.5000000000000001110, 0.8660254037844384856, 0.000000000000000000 ) ) ; +#1037 = CARTESIAN_POINT ( 'NONE', ( 0.8167817854768673058, -0.8792052620611257030, 5.642743906624262173 ) ) ; +#1038 = EDGE_LOOP ( 'NONE', ( #169, #2197, #460, #2348 ) ) ; +#1039 = ADVANCED_FACE ( 'NONE', ( #933, #5039 ), #4271, .F. ) ; +#1040 = AXIS2_PLACEMENT_3D ( 'NONE', #2748, #719, #3532 ) ; +#1041 = CARTESIAN_POINT ( 'NONE', ( 0.4589159624903639267, 0.4493180394968681046, 6.285951639675423586 ) ) ; +#1042 = CARTESIAN_POINT ( 'NONE', ( -0.3076125737084228762, -0.2411303339149450664, 5.911557156151132197 ) ) ; +#1043 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#1044 = VERTEX_POINT ( 'NONE', #4200 ) ; +#1045 = CARTESIAN_POINT ( 'NONE', ( -0.8301118274381791284, -0.6957716379750354951, 5.661614086336346219 ) ) ; +#1046 = ADVANCED_FACE ( 'NONE', ( #599 ), #2185, .F. ) ; +#1047 = CARTESIAN_POINT ( 'NONE', ( 0.8736264038827166178, -0.7064610336692204173, 5.713381027863315254 ) ) ; +#1048 = DIRECTION ( 'NONE', ( 0.4999999999999998890, -0.8660254037844387076, -3.035766082959409950E-16 ) ) ; +#1049 = VERTEX_POINT ( 'NONE', #3794 ) ; +#1050 = CYLINDRICAL_SURFACE ( 'NONE', #821, 0.3899210354891938790 ) ; +#1051 = EDGE_CURVE ( 'NONE', #2175, #2677, #1250, .T. ) ; +#1052 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #612, #996, #266, #3858 ), + .UNSPECIFIED., .F., .F. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.995237394644995277, 3.287947912534595396 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9928727816990980948, 0.9928727816990980948, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#1053 = ORIENTED_EDGE ( 'NONE', *, *, #2420, .T. ) ; +#1054 = CARTESIAN_POINT ( 'NONE', ( 0.2842746611838707915, -0.4527977475290859699, 6.158558140301082062 ) ) ; +#1055 = FACE_OUTER_BOUND ( 'NONE', #4077, .T. ) ; +#1056 = CARTESIAN_POINT ( 'NONE', ( -0.5105606176343082669, 0.008882514902632638112, 6.129935593184004716 ) ) ; +#1057 = DIRECTION ( 'NONE', ( -0.5566703992264182554, 0.3213938048432686823, 0.7660444431189793457 ) ) ; +#1058 = ORIENTED_EDGE ( 'NONE', *, *, #3821, .T. ) ; +#1059 = CARTESIAN_POINT ( 'NONE', ( -0.3889720204112193658, 0.4703118932504085081, 6.248577449788193405 ) ) ; +#1060 = CARTESIAN_POINT ( 'NONE', ( 0.3252932938088284320, -0.4684460457702162572, 6.201076894132129702 ) ) ; +#1061 = DIRECTION ( 'NONE', ( -0.4999999999999997780, 0.8660254037844387076, 0.000000000000000000 ) ) ; +#1062 = DIRECTION ( 'NONE', ( 1.000000000000000000, -1.224646799147351975E-16, -6.018531076210109851E-32 ) ) ; +#1063 = CIRCLE ( 'NONE', #371, 0.1330000000000000626 ) ; +#1064 = CARTESIAN_POINT ( 'NONE', ( 0.8080795832308326210, -0.8872058367074828755, 5.620048901784774564 ) ) ; +#1065 = ORIENTED_EDGE ( 'NONE', *, *, #2700, .T. ) ; +#1066 = CARTESIAN_POINT ( 'NONE', ( 0.5852562238022189778, -0.07011158405047718256, 6.223931354179763176 ) ) ; +#1067 = CARTESIAN_POINT ( 'NONE', ( -0.3826982880395904396, -0.07781054502701946485, 5.960763053378606457 ) ) ; +#1068 = DIRECTION ( 'NONE', ( -0.4999999999999998335, 0.8660254037844388186, 0.000000000000000000 ) ) ; +#1069 = ADVANCED_FACE ( 'NONE', ( #2659 ), #1084, .F. ) ; +#1070 = ORIENTED_EDGE ( 'NONE', *, *, #1557, .T. ) ; +#1071 = DIRECTION ( 'NONE', ( -3.061616997868379936E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +#1072 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1456, #3435, #4266, #3054, #1078, #3080, #5137, #2307, #4344, #1885, #3863, #1834, #2631, #3935, #2207, #1427, #189, #4712, #4688, #271, #5082, #1403, #5057, #3028, #1912, #1054, #216, #3540, #2280 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 4 ), + ( 0.000000000000000000, 0.1402142008311951793, 0.2103213012467957110, 0.2453748514545959214, 0.2497565452305685052, 0.2519473921185503840, 0.2541382390065322072, 0.2629016265584546708, 0.2804284016623051490, 0.4206426024931044783, 0.4907497029085043372, 0.5258032531162042389, 0.5433300282200541620, 0.5520934157719763480, 0.5564751095479373300, 0.5586659564359206520, 0.5608568033239038630 ), + .UNSPECIFIED. ) ; +#1073 = VECTOR ( 'NONE', #2371, 39.37007874015748143 ) ; +#1074 = CARTESIAN_POINT ( 'NONE', ( 0.4140694151786393218, 0.4555694392626861711, 6.064721239031350741 ) ) ; +#1075 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, -1.001219655634210559, 5.195033353103291951 ) ) ; +#1076 = VERTEX_POINT ( 'NONE', #3107 ) ; +#1077 = CARTESIAN_POINT ( 'NONE', ( 0.3123856728603049970, -0.2333987215919898217, 5.910896262438023463 ) ) ; +#1078 = CARTESIAN_POINT ( 'NONE', ( 0.2335254650949830091, -0.3724053744901814067, 6.045168944973140057 ) ) ; +#1079 = PLANE ( 'NONE', #3747 ) ; +#1080 = AXIS2_PLACEMENT_3D ( 'NONE', #2049, #333, #4479 ) ; +#1081 = ADVANCED_FACE ( 'NONE', ( #5140 ), #676, .F. ) ; +#1082 = VECTOR ( 'NONE', #5055, 39.37007874015748143 ) ; +#1083 = CARTESIAN_POINT ( 'NONE', ( -0.4580285136051597261, -0.009300968604476163304, 6.067443363689248415 ) ) ; +#1084 = CYLINDRICAL_SURFACE ( 'NONE', #798, 0.2499999999999998612 ) ; +#1085 = ORIENTED_EDGE ( 'NONE', *, *, #3362, .T. ) ; +#1086 = FACE_OUTER_BOUND ( 'NONE', #4612, .T. ) ; +#1087 = CARTESIAN_POINT ( 'NONE', ( -0.3640761468465839590, 1.143446381760210295, 5.619299322894154791 ) ) ; +#1088 = EDGE_CURVE ( 'NONE', #2733, #3528, #4894, .T. ) ; +#1089 = CARTESIAN_POINT ( 'NONE', ( -1.174683493581610394, 0.2451911293397338321, 5.593666288758528005 ) ) ; +#1090 = CARTESIAN_POINT ( 'NONE', ( 0.7986823578055235462, -0.6631920684923938714, 5.610249138468685004 ) ) ; +#1091 = CIRCLE ( 'NONE', #59, 0.1330000000000000626 ) ; +#1092 = ORIENTED_EDGE ( 'NONE', *, *, #707, .F. ) ; +#1093 = CARTESIAN_POINT ( 'NONE', ( 0.5875828175075327175, -0.07382425304560831514, 6.227167535552164956 ) ) ; +#1094 = CARTESIAN_POINT ( 'NONE', ( -0.3672144580713526674, -0.1311540876597756533, 5.921530663853438625 ) ) ; +#1095 = CIRCLE ( 'NONE', #5018, 0.2499999999999998057 ) ; +#1096 = CARTESIAN_POINT ( 'NONE', ( -1.174683493581610394, -0.2451911293397350255, 5.593666288758528005 ) ) ; +#1097 = ORIENTED_EDGE ( 'NONE', *, *, #3493, .T. ) ; +#1098 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#1099 = CARTESIAN_POINT ( 'NONE', ( -0.2356302444112926553, 0.3861373756488483688, 6.060531982410108043 ) ) ; +#1100 = CARTESIAN_POINT ( 'NONE', ( -0.1845071557944078511, 0.6019879651539330467, 6.271836282905964843 ) ) ; +#1101 = VERTEX_POINT ( 'NONE', #5166 ) ; +#1102 = ORIENTED_EDGE ( 'NONE', *, *, #2974, .F. ) ; +#1103 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.360911383585519550E-15, 6.378999999999999559 ) ) ; +#1104 = ADVANCED_FACE ( 'NONE', ( #3543 ), #5151, .F. ) ; +#1105 = CARTESIAN_POINT ( 'NONE', ( 0.08032840626469232859, 0.3815542715137810181, 5.927542632676238377 ) ) ; +#1106 = CARTESIAN_POINT ( 'NONE', ( 0.2978839202398633756, 1.162436383553466346, 5.725867636601022603 ) ) ; +#1107 = ADVANCED_FACE ( 'NONE', ( #1485 ), #1996, .F. ) ; +#1108 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#1109 = DIRECTION ( 'NONE', ( 0.5566703992264190326, -0.3213938048432680161, -0.7660444431189790127 ) ) ; +#1110 = ORIENTED_EDGE ( 'NONE', *, *, #4757, .F. ) ; +#1111 = CARTESIAN_POINT ( 'NONE', ( -0.4432250771592181060, 0.4561674302606844589, 6.279297187826488269 ) ) ; +#1112 = CARTESIAN_POINT ( 'NONE', ( -0.3421057481042488191, 1.150201544703755463, 5.661862876582480553 ) ) ; +#1113 = CARTESIAN_POINT ( 'NONE', ( -1.139605238168240886, 0.3759014824840310465, 5.775699719081546668 ) ) ; +#1114 = CARTESIAN_POINT ( 'NONE', ( 0.2849920402363720906, 0.4532153657421811310, 6.159507043090530765 ) ) ; +#1115 = CARTESIAN_POINT ( 'NONE', ( -0.4551265001645165009, 0.7883022221559489173, 5.096860619515669377 ) ) ; +#1116 = CARTESIAN_POINT ( 'NONE', ( -0.2332754083404116607, -0.5392261685443078267, 6.221651625992221213 ) ) ; +#1117 = EDGE_CURVE ( 'NONE', #1860, #3756, #1513, .T. ) ; +#1118 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, 1.109813176013880076, 5.713381027863315254 ) ) ; +#1119 = CARTESIAN_POINT ( 'NONE', ( -0.2618883284449622373, -0.4367508499888687612, 6.128373129173223965 ) ) ; +#1120 = ORIENTED_EDGE ( 'NONE', *, *, #5197, .T. ) ; +#1121 = CARTESIAN_POINT ( 'NONE', ( 0.8805977442839733049, 0.8152058236523431756, 5.758966931940549649 ) ) ; +#1122 = ORIENTED_EDGE ( 'NONE', *, *, #1370, .F. ) ; +#1123 = FACE_BOUND ( 'NONE', #4052, .T. ) ; +#1124 = CARTESIAN_POINT ( 'NONE', ( 1.150643910168750672, 0.3406145973664645443, 5.745167907154300480 ) ) ; +#1125 = EDGE_LOOP ( 'NONE', ( #1601, #2319 ) ) ; +#1126 = VERTEX_POINT ( 'NONE', #3136 ) ; +#1127 = CARTESIAN_POINT ( 'NONE', ( 0.2475878252595770379, -0.4465997224842114810, 6.129935593173174269 ) ) ; +#1128 = LINE ( 'NONE', #4393, #5014 ) ; +#1129 = CARTESIAN_POINT ( 'NONE', ( -0.1973985779347096348, -1.183701179905906731, 5.800274753242378623 ) ) ; +#1130 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.9961946980917461003, -0.08715574274765000573 ) ) ; +#1131 = EDGE_CURVE ( 'NONE', #4506, #2161, #25, .T. ) ; +#1132 = PLANE ( 'NONE', #4822 ) ; +#1133 = ORIENTED_EDGE ( 'NONE', *, *, #4481, .T. ) ; +#1134 = CARTESIAN_POINT ( 'NONE', ( -0.5416161303081306055, 0.3938669003535145707, 6.311327930655067142 ) ) ; +#1135 = DIRECTION ( 'NONE', ( -0.3479270227670989701, -0.6026272807587880198, -0.7181832268395659247 ) ) ; +#1136 = CARTESIAN_POINT ( 'NONE', ( 0.2500000000000000000, -0.9058473084154252675, 5.470303972386260760 ) ) ; +#1137 = DIRECTION ( 'NONE', ( 6.250248031976811775E-16, 0.7660444431189782355, -0.6427876096865391409 ) ) ; +#1138 = CARTESIAN_POINT ( 'NONE', ( 0.3164780203617503784, 0.4713938048432675942, 6.129000000000000448 ) ) ; +#1139 = ORIENTED_EDGE ( 'NONE', *, *, #4961, .T. ) ; +#1140 = DIRECTION ( 'NONE', ( -0.6634139481689379503, 0.3830222215594900614, -0.6427876096865390299 ) ) ; +#1141 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #655, #3143, #1599, #4770 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.995237394644995277, 3.287947912534595396 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9928727816990980948, 0.9928727816990980948, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#1142 = CARTESIAN_POINT ( 'NONE', ( -1.004698486686860681, -0.3635600742712274402, 5.643846109717141069 ) ) ; +#1143 = EDGE_CURVE ( 'NONE', #3348, #4452, #1915, .T. ) ; +#1144 = CARTESIAN_POINT ( 'NONE', ( 0.8963400721820798944, 0.7978571077386669153, 5.776711110814392036 ) ) ; +#1145 = CARTESIAN_POINT ( 'NONE', ( -0.2591537893097038969, 0.4328900095436615802, 6.122637038287267686 ) ) ; +#1146 = CARTESIAN_POINT ( 'NONE', ( 1.137499919822241079, 0.3822245222125375541, 5.780084441974747911 ) ) ; +#1147 = ORIENTED_EDGE ( 'NONE', *, *, #2513, .F. ) ; +#1148 = VERTEX_POINT ( 'NONE', #3595 ) ; +#1149 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, -0.8125000000000000000, 3.479000000000000092 ) ) ; +#1150 = VECTOR ( 'NONE', #3251, 39.37007874015748854 ) ; +#1151 = CARTESIAN_POINT ( 'NONE', ( -1.138851489661153238, -0.3781780757669389592, 5.777310701146330274 ) ) ; +#1152 = ORIENTED_EDGE ( 'NONE', *, *, #2877, .T. ) ; +#1153 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#1154 = CARTESIAN_POINT ( 'NONE', ( -0.3129487185774643687, -1.158489620790104313, 5.707125196581827709 ) ) ; +#1155 = ORIENTED_EDGE ( 'NONE', *, *, #1576, .F. ) ; +#1156 = PLANE ( 'NONE', #2363 ) ; +#1157 = VECTOR ( 'NONE', #60, 39.37007874015748143 ) ; +#1158 = DIRECTION ( 'NONE', ( -0.5000000000000002220, -0.8660254037844384856, 0.000000000000000000 ) ) ; +#1159 = ORIENTED_EDGE ( 'NONE', *, *, #5149, .T. ) ; +#1160 = DIRECTION ( 'NONE', ( 0.6634139481689380613, -0.3830222215594901169, 0.6427876096865391409 ) ) ; +#1161 = ADVANCED_FACE ( 'NONE', ( #761 ), #4715, .F. ) ; +#1162 = VECTOR ( 'NONE', #2314, 39.37007874015748143 ) ; +#1163 = CARTESIAN_POINT ( 'NONE', ( -0.2432180576168639641, 1.175093201800288201, 5.776419217797005956 ) ) ; +#1164 = CIRCLE ( 'NONE', #4493, 0.1875000000000000278 ) ; +#1165 = CARTESIAN_POINT ( 'NONE', ( -0.6942786809891673405, -0.6895171179565275921, 5.518181750081197379 ) ) ; +#1166 = CARTESIAN_POINT ( 'NONE', ( 0.2395658773214802140, 0.4000580826728198369, 6.077142145744569568 ) ) ; +#1167 = CARTESIAN_POINT ( 'NONE', ( 0.4414780203617504339, -0.2548874538971618309, 6.129000000000000448 ) ) ; +#1168 = CARTESIAN_POINT ( 'NONE', ( -3.933861110876538837E-16, -0.5863793521062189429, 6.064721239031358735 ) ) ; +#1169 = CARTESIAN_POINT ( 'NONE', ( -1.990051048614448869E-16, -1.625000000000000000, 3.104000000000000092 ) ) ; +#1170 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.305400232354259948E-15, 6.129000000000000448 ) ) ; +#1171 = EDGE_CURVE ( 'NONE', #5293, #2583, #2988, .T. ) ; +#1172 = CIRCLE ( 'NONE', #1783, 2.250000000000000000 ) ; +#1173 = DIRECTION ( 'NONE', ( -0.001951631098638388368, -0.9226336559632448697, 0.3856725658119226630 ) ) ; +#1174 = CARTESIAN_POINT ( 'NONE', ( 0.2325644156228977577, -0.5406285906850234468, 6.222851426380342943 ) ) ; +#1175 = VECTOR ( 'NONE', #1614, 39.37007874015748143 ) ; +#1176 = DIRECTION ( 'NONE', ( 0.5000000000000000000, -0.8660254037844385966, 0.000000000000000000 ) ) ; +#1177 = VERTEX_POINT ( 'NONE', #4373 ) ; +#1178 = VERTEX_POINT ( 'NONE', #3188 ) ; +#1179 = AXIS2_PLACEMENT_3D ( 'NONE', #1170, #4748, #716 ) ; +#1180 = CARTESIAN_POINT ( 'NONE', ( -0.7996834935816121703, 0.8947101821780649722, 5.593666288758528005 ) ) ; +#1181 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.360911383585519550E-15, 6.378999999999999559 ) ) ; +#1182 = ORIENTED_EDGE ( 'NONE', *, *, #3452, .F. ) ; +#1183 = ADVANCED_FACE ( 'NONE', ( #2285 ), #4320, .F. ) ; +#1184 = CARTESIAN_POINT ( 'NONE', ( -0.2180394375823631881, 0.3982088572695824946, 6.062477588643520043 ) ) ; +#1185 = CARTESIAN_POINT ( 'NONE', ( -0.2975453862490042289, -1.162523161768565849, 5.726267908649792737 ) ) ; +#1186 = ORIENTED_EDGE ( 'NONE', *, *, #153, .T. ) ; +#1187 = CARTESIAN_POINT ( 'NONE', ( -1.050000000000000044, -1.327604692846759648E-15, 6.229000000000000981 ) ) ; +#1188 = AXIS2_PLACEMENT_3D ( 'NONE', #2707, #1108, #700 ) ; +#1189 = PLANE ( 'NONE', #4406 ) ; +#1190 = ORIENTED_EDGE ( 'NONE', *, *, #3531, .T. ) ; +#1191 = CARTESIAN_POINT ( 'NONE', ( -0.5269278749871758594, 0.4070171327351178592, 6.308137190453800613 ) ) ; +#1192 = CARTESIAN_POINT ( 'NONE', ( 0.6165465526027780196, -0.1566132624916952432, 6.279327844348703280 ) ) ; +#1193 = CARTESIAN_POINT ( 'NONE', ( 0.4709763281263483758, -0.006632725435705033590, 6.082756626985330151 ) ) ; +#1194 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#1195 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #3164, #3624, #813, #303, #3247, #5218, #4873, #4078, #4816, #788, #1565, #2337, #731, #3997, #1218, #4792, #407, #2444, #3545, #332, #4375, #1134, #2417, #1191, #3597, #5168, #1515, #3139, #4766, #4400, #1541, #3573, #5244, #704, #1111, #2734 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.06249999999999834854, 0.09374999999999757139, 0.1249999999999968081, 0.1874999999999954758, 0.2187499999999948375, 0.2343749999999953093, 0.2499999999999957812, 0.3749999999999971689, 0.4999999999999983347, 0.6249999999999994449, 0.6875000000000002220, 0.7187500000000001110, 0.7343749999999997780, 0.7499999999999994449, 0.8125000000000012212, 0.8437500000000021094, 0.8750000000000031086, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#1196 = DIRECTION ( 'NONE', ( 0.6634139481689382833, -0.3830222215594896729, -0.6427876096865393629 ) ) ; +#1197 = CARTESIAN_POINT ( 'NONE', ( -0.8358658893210064722, -0.8610271046411289708, 5.685789647164447125 ) ) ; +#1198 = CARTESIAN_POINT ( 'NONE', ( 0.3889726471469338587, 0.4703118188112476172, 6.248577832844812718 ) ) ; +#1199 = CARTESIAN_POINT ( 'NONE', ( 0.2850339750687379548, -0.4532022594927843651, 6.159485386716857747 ) ) ; +#1200 = CARTESIAN_POINT ( 'NONE', ( -0.4290832926986039575, 0.4607818666749370351, 6.271836282905964843 ) ) ; +#1201 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #408, #4535, #2842, #3304 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#1202 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#1203 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 0.000000000000000000 ) ) ; +#1204 = ORIENTED_EDGE ( 'NONE', *, *, #2931, .F. ) ; +#1205 = AXIS2_PLACEMENT_3D ( 'NONE', #2912, #2145, #2540 ) ; +#1206 = EDGE_CURVE ( 'NONE', #3060, #695, #301, .T. ) ; +#1207 = LINE ( 'NONE', #4575, #3732 ) ; +#1208 = ORIENTED_EDGE ( 'NONE', *, *, #2201, .T. ) ; +#1209 = CARTESIAN_POINT ( 'NONE', ( -0.1966521318526645301, 0.3826263230198909682, 6.034154198209389364 ) ) ; +#1210 = AXIS2_PLACEMENT_3D ( 'NONE', #928, #2472, #3331 ) ; +#1211 = CARTESIAN_POINT ( 'NONE', ( -0.1861516073475307509, -1.185527156868124710, 5.803613436555975724 ) ) ; +#1212 = VERTEX_POINT ( 'NONE', #1940 ) ; +#1213 = CARTESIAN_POINT ( 'NONE', ( 0.05501870790305182779, -0.3869654703137601626, 5.911557156133743440 ) ) ; +#1214 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1635, #4185, #2490, #511 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#1215 = EDGE_CURVE ( 'NONE', #2887, #2399, #1539, .T. ) ; +#1216 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, 0.6794999999999999929, 3.104000000000000092 ) ) ; +#1217 = ORIENTED_EDGE ( 'NONE', *, *, #4028, .T. ) ; +#1218 = CARTESIAN_POINT ( 'NONE', ( -0.6155368898845879899, 0.2577812653545613619, 6.309308791428457575 ) ) ; +#1219 = CARTESIAN_POINT ( 'NONE', ( -0.1974484299773150986, 1.183861900600522210, 5.801628861416469718 ) ) ; +#1220 = ORIENTED_EDGE ( 'NONE', *, *, #3757, .T. ) ; +#1221 = CYLINDRICAL_SURFACE ( 'NONE', #4681, 0.1874999999999998612 ) ; +#1222 = DIRECTION ( 'NONE', ( -0.7980483689013623261, -0.4630069900918596382, 0.3856725658119224964 ) ) ; +#1223 = CARTESIAN_POINT ( 'NONE', ( -0.8707645480759205192, 0.8257006812217888569, 5.745822387877431048 ) ) ; +#1224 = CARTESIAN_POINT ( 'NONE', ( -0.8168147479732110749, -0.8790971783995097377, 5.641989472833116359 ) ) ; +#1225 = CYLINDRICAL_SURFACE ( 'NONE', #1338, 0.1330000000000000626 ) ; +#1226 = CARTESIAN_POINT ( 'NONE', ( -0.2434360693720017954, 0.5157474175717301490, 6.201038154600642116 ) ) ; +#1227 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, -0.8097085448544685260, 5.355730255524930428 ) ) ; +#1228 = VECTOR ( 'NONE', #336, 39.37007874015748143 ) ; +#1229 = CARTESIAN_POINT ( 'NONE', ( -0.1789361946023549088, -0.6069915240977800108, 6.275591952322140621 ) ) ; +#1230 = ADVANCED_FACE ( 'NONE', ( #649, #4789 ), #1132, .F. ) ; +#1231 = LINE ( 'NONE', #4389, #3568 ) ; +#1232 = CARTESIAN_POINT ( 'NONE', ( -0.5349920402363717020, 0.02020266384996271397, 6.159507043090530765 ) ) ; +#1233 = ORIENTED_EDGE ( 'NONE', *, *, #841, .F. ) ; +#1234 = CYLINDRICAL_SURFACE ( 'NONE', #1684, 0.04999999999999994726 ) ; +#1235 = ORIENTED_EDGE ( 'NONE', *, *, #4620, .T. ) ; +#1236 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -0.8204416026402776563, 5.135162841671623291 ) ) ; +#1237 = CARTESIAN_POINT ( 'NONE', ( -0.2901014953544326924, -1.164407416063035550, 5.734811671458079907 ) ) ; +#1238 = ORIENTED_EDGE ( 'NONE', *, *, #4869, .T. ) ; +#1239 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2210, #5060, #785, #3991, #3133, #3215, #1562, #4047, #3962, #1083, #2785, #3649, #5193, #4426, #4787, #5266, #1616, #759, #4812, #300 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 2, 2, 2, 2, 4 ), + ( 0.4372849875323155944, 0.4724546758115522049, 0.5076243640907888155, 0.5779637406492621476, 0.7186424937662083678, 0.7362273379058212885, 0.7538121820454342092, 0.7889818703246548326, 0.8593212468831015194, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#1240 = CARTESIAN_POINT ( 'NONE', ( 0.1441924260139419434, -0.3622802205436830847, 5.986163717094036052 ) ) ; +#1241 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#1242 = DIRECTION ( 'NONE', ( 9.480812427427117815E-16, 0.7660444431189777914, -0.6427876096865398070 ) ) ; +#1243 = VERTEX_POINT ( 'NONE', #2415 ) ; +#1244 = VECTOR ( 'NONE', #385, 39.37007874015748143 ) ; +#1245 = CARTESIAN_POINT ( 'NONE', ( -0.3515453943290150485, -0.4716320350929139593, 6.222505541098886539 ) ) ; +#1246 = DIRECTION ( 'NONE', ( -0.6634139481689388385, -0.3830222215594888957, -0.6427876096865389188 ) ) ; +#1247 = ORIENTED_EDGE ( 'NONE', *, *, #1088, .T. ) ; +#1248 = ADVANCED_FACE ( 'NONE', ( #4076 ), #1189, .F. ) ; +#1249 = CYLINDRICAL_SURFACE ( 'NONE', #3063, 0.1330000000000000626 ) ; +#1250 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #622, #1791, #2211, #2609, #956, #119, #1385, #3844, #1764, #2235, #4222, #196, #5088, #551, #3819, #3059, #144, #3007 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.1241550302482394008, 0.1551937878102991886, 0.1862325453723590041, 0.2483100604964786906, 0.2793488180585384506, 0.3103875756205981551, 0.3724650907447187853, 0.4966201209929598237 ), + .UNSPECIFIED. ) ; +#1251 = CARTESIAN_POINT ( 'NONE', ( 0.2501907686845391554, 0.2992682551305670402, 5.973464259752288896 ) ) ; +#1252 = CARTESIAN_POINT ( 'NONE', ( -0.8234699464503569821, -0.8728672571486052467, 5.658180384897133486 ) ) ; +#1253 = AXIS2_PLACEMENT_3D ( 'NONE', #2819, #792, #2026 ) ; +#1254 = CARTESIAN_POINT ( 'NONE', ( -0.9236543808441199932, -0.5332721054185314280, 5.661815083166008122 ) ) ; +#1255 = EDGE_CURVE ( 'NONE', #1178, #921, #3536, .T. ) ; +#1256 = CARTESIAN_POINT ( 'NONE', ( 0.2656900804584078624, -1.170222928890829239, 5.758966931937215428 ) ) ; +#1257 = CIRCLE ( 'NONE', #3799, 0.1874999999999999722 ) ; +#1258 = CARTESIAN_POINT ( 'NONE', ( -0.4414780203617504339, 0.2548874538971590553, 6.129000000000000448 ) ) ; +#1259 = CARTESIAN_POINT ( 'NONE', ( 0.2211370310376274684, 0.4014505745552783278, 6.067633472858342536 ) ) ; +#1260 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#1261 = DIRECTION ( 'NONE', ( -4.440892098500626162E-16, -0.6427876096865391409, -0.7660444431189782355 ) ) ; +#1262 = CARTESIAN_POINT ( 'NONE', ( 0.2128160370413535174, 0.5720155976751732929, 6.248577449798141892 ) ) ; +#1263 = ORIENTED_EDGE ( 'NONE', *, *, #946, .T. ) ; +#1264 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#1265 = ORIENTED_EDGE ( 'NONE', *, *, #888, .T. ) ; +#1266 = CIRCLE ( 'NONE', #5106, 0.1875000000000001110 ) ; +#1267 = CARTESIAN_POINT ( 'NONE', ( -1.007915077231789379E-16, 0.6756856571182421334, 6.316136173767027628 ) ) ; +#1268 = CARTESIAN_POINT ( 'NONE', ( -0.4551265001645181107, -0.7883022221559508047, 5.096860619515669377 ) ) ; +#1269 = VERTEX_POINT ( 'NONE', #894 ) ; +#1270 = LINE ( 'NONE', #809, #3558 ) ; +#1271 = AXIS2_PLACEMENT_3D ( 'NONE', #419, #1811, #672 ) ; +#1272 = CARTESIAN_POINT ( 'NONE', ( 0.4515707175263978246, 0.01120657334205637547, 6.059766162840594994 ) ) ; +#1273 = CARTESIAN_POINT ( 'NONE', ( 0.4491831713700187301, 0.7780080747177897660, 5.105498434834315091 ) ) ; +#1274 = ORIENTED_EDGE ( 'NONE', *, *, #4537, .T. ) ; +#1275 = DIRECTION ( 'NONE', ( -0.5566703992264191436, -0.3213938048432695704, -0.7660444431189782355 ) ) ; +#1276 = DIRECTION ( 'NONE', ( 0.7980483689013624371, -0.4630069900918591941, 0.3856725658119230515 ) ) ; +#1277 = ORIENTED_EDGE ( 'NONE', *, *, #5095, .F. ) ; +#1278 = CARTESIAN_POINT ( 'NONE', ( 0.4132297376645283071, -0.03164615390276761392, 6.015278229263477883 ) ) ; +#1279 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, -0.6794999999999999929, 3.104000000000000092 ) ) ; +#1280 = CARTESIAN_POINT ( 'NONE', ( 0.2704785715055960105, 0.2808926139206699424, 5.947937117738706370 ) ) ; +#1281 = CARTESIAN_POINT ( 'NONE', ( 0.6199293919873386516, 0.1915254737542065600, 6.292649740054752527 ) ) ; +#1282 = CARTESIAN_POINT ( 'NONE', ( -1.167116643295134759, -0.2789908000394016874, 5.662142407377139364 ) ) ; +#1283 = CARTESIAN_POINT ( 'NONE', ( -0.6250000000000000000, -1.082531754730549300, 4.849972727250857929 ) ) ; +#1284 = CARTESIAN_POINT ( 'NONE', ( 0.2498668801368406633, 0.4674255048932464129, 6.153038823643956157 ) ) ; +#1285 = EDGE_CURVE ( 'NONE', #1577, #1592, #2896, .T. ) ; +#1286 = CARTESIAN_POINT ( 'NONE', ( -0.9265302655052922720, -0.7629263065962458290, 5.801628861416853411 ) ) ; +#1287 = CARTESIAN_POINT ( 'NONE', ( 0.2306134812475046647, -0.5443678407415282194, 6.225996798344826111 ) ) ; +#1288 = CARTESIAN_POINT ( 'NONE', ( -0.5431005103904412712, 0.02488409127616299232, 6.169373990194682023 ) ) ; +#1289 = ORIENTED_EDGE ( 'NONE', *, *, #1807, .F. ) ; +#1290 = CARTESIAN_POINT ( 'NONE', ( 2.392615395102125430E-08, -0.6756856458982761771, 6.316136183440345775 ) ) ; +#1291 = EDGE_LOOP ( 'NONE', ( #3358, #2206 ) ) ; +#1292 = DIRECTION ( 'NONE', ( 0.6634139481689382833, -0.3830222215594891733, -0.6427876096865393629 ) ) ; +#1293 = DIRECTION ( 'NONE', ( -0.4999999999999998890, 0.8660254037844388186, 0.000000000000000000 ) ) ; +#1294 = EDGE_LOOP ( 'NONE', ( #4574, #4251, #3571, #584, #4498, #2968, #4108 ) ) ; +#1295 = CARTESIAN_POINT ( 'NONE', ( 0.1340785271488555419, -0.3663056890377339725, 5.973464259754562633 ) ) ; +#1296 = CARTESIAN_POINT ( 'NONE', ( 0.8301118274381791284, 0.6957716379750336078, 5.661614086336346219 ) ) ; +#1297 = CARTESIAN_POINT ( 'NONE', ( 0.4449245162833033729, -0.7706318677356902569, 5.130805054534240739 ) ) ; +#1298 = VERTEX_POINT ( 'NONE', #1674 ) ; +#1299 = FACE_OUTER_BOUND ( 'NONE', #2580, .T. ) ; +#1300 = CARTESIAN_POINT ( 'NONE', ( 0.5269278749944342755, -0.4070171327292042007, 6.308137190455584964 ) ) ; +#1301 = VERTEX_POINT ( 'NONE', #3245 ) ; +#1302 = EDGE_CURVE ( 'NONE', #5230, #1358, #3202, .T. ) ; +#1303 = CARTESIAN_POINT ( 'NONE', ( 0.3858400872864291564, -0.05626580631046031872, 5.986163717094036052 ) ) ; +#1304 = CARTESIAN_POINT ( 'NONE', ( -2.250000000000000000, -4.136809238791426737E-16, 3.104000000000000092 ) ) ; +#1305 = CARTESIAN_POINT ( 'NONE', ( 0.2890457685123660747, 0.2617055376819956702, 5.928666586421268647 ) ) ; +#1306 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 1.758000000000000007, 3.953999999999999737 ) ) ; +#1307 = CARTESIAN_POINT ( 'NONE', ( 0.7795816565475354176, -0.6521642734793838825, 5.195033353103291951 ) ) ; +#1308 = CARTESIAN_POINT ( 'NONE', ( -0.2315162383225881082, 0.5426578751273087864, 6.224565724080916240 ) ) ; +#1309 = CARTESIAN_POINT ( 'NONE', ( -0.6250000000000000000, 1.082531754730549300, 4.849972727250857929 ) ) ; +#1310 = CYLINDRICAL_SURFACE ( 'NONE', #1568, 1.199999999999999956 ) ; +#1311 = DIRECTION ( 'NONE', ( -0.6634139481689380613, 0.3830222215594901169, -0.6427876096865391409 ) ) ; +#1312 = ADVANCED_FACE ( 'NONE', ( #3763 ), #459, .F. ) ; +#1313 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, 1.023275245660230315, 5.610249138468685004 ) ) ; +#1314 = VERTEX_POINT ( 'NONE', #5268 ) ; +#1315 = DIRECTION ( 'NONE', ( 1.165734175856411015E-15, 0.7660444431189782355, 0.6427876096865392519 ) ) ; +#1316 = VERTEX_POINT ( 'NONE', #2046 ) ; +#1317 = DIRECTION ( 'NONE', ( 0.4999999999999998890, 0.8660254037844388186, 0.000000000000000000 ) ) ; +#1318 = CARTESIAN_POINT ( 'NONE', ( 0.5795461192328367206, 0.06165604429111140594, 6.216034277308246203 ) ) ; +#1319 = EDGE_LOOP ( 'NONE', ( #3593, #1534 ) ) ; +#1320 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #3676, #867, #456, #1348 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.617993877991494855, 2.823768949661914718 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9964744966727187014, 0.9964744966727187014, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#1321 = CARTESIAN_POINT ( 'NONE', ( 0.3477280203617504339, -0.4172672171067439151, 6.129000000000000448 ) ) ; +#1322 = CARTESIAN_POINT ( 'NONE', ( 0.5198342877831413356, 0.01283368957706290323, 6.141081757245908435 ) ) ; +#1323 = CARTESIAN_POINT ( 'NONE', ( -0.6199293919871092795, -0.1915254737528470086, 6.292649740054136132 ) ) ; +#1324 = ORIENTED_EDGE ( 'NONE', *, *, #3878, .T. ) ; +#1325 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, -0.9455000000000001181, 3.479000000000000092 ) ) ; +#1326 = DIRECTION ( 'NONE', ( -1.000000000000000000, 3.642463991552350465E-16, 0.000000000000000000 ) ) ; +#1327 = ORIENTED_EDGE ( 'NONE', *, *, #721, .F. ) ; +#1328 = CARTESIAN_POINT ( 'NONE', ( 0.4456007110395360238, -0.7718030714092968259, 5.117418135287732817 ) ) ; +#1329 = CARTESIAN_POINT ( 'NONE', ( -0.3771542805002375820, 0.09907828641066833419, 5.943519118021251657 ) ) ; +#1330 = CARTESIAN_POINT ( 'NONE', ( -0.9033154113265213780, 0.7899568516702191179, 5.783407949541870430 ) ) ; +#1331 = EDGE_CURVE ( 'NONE', #1750, #142, #2613, .T. ) ; +#1332 = DIRECTION ( 'NONE', ( 0.5566703992264180334, 0.3213938048432695149, 0.7660444431189790127 ) ) ; +#1333 = CARTESIAN_POINT ( 'NONE', ( 0.2199980966872109589, -1.179878518282008626, 5.792207704862696538 ) ) ; +#1334 = CARTESIAN_POINT ( 'NONE', ( -0.2416476612724857975, 0.3060144142332220651, 5.986163717094036052 ) ) ; +#1335 = VECTOR ( 'NONE', #2470, 39.37007874015748854 ) ; +#1336 = CARTESIAN_POINT ( 'NONE', ( 0.05875207217737669907, 1.204307028110111588, 5.825994415577062213 ) ) ; +#1337 = DIRECTION ( 'NONE', ( -0.7980483689013628812, 0.4630069900918588610, 0.3856725658119227740 ) ) ; +#1338 = AXIS2_PLACEMENT_3D ( 'NONE', #2507, #3254, #822 ) ; +#1339 = EDGE_CURVE ( 'NONE', #455, #3053, #3467, .T. ) ; +#1340 = CIRCLE ( 'NONE', #4829, 0.1329999999999999238 ) ; +#1341 = CYLINDRICAL_SURFACE ( 'NONE', #645, 0.2500000000000000000 ) ; +#1342 = VERTEX_POINT ( 'NONE', #4165 ) ; +#1343 = CARTESIAN_POINT ( 'NONE', ( -0.4465813368670031314, 0.7735015651656818036, 5.157008074717787771 ) ) ; +#1344 = ORIENTED_EDGE ( 'NONE', *, *, #2739, .F. ) ; +#1345 = CARTESIAN_POINT ( 'NONE', ( 0.6135904484930136960, -0.1412060984789980378, 6.271836282905964843 ) ) ; +#1346 = CARTESIAN_POINT ( 'NONE', ( 0.4515683818664338323, 0.7821393804843267406, 5.167302222155944591 ) ) ; +#1347 = ORIENTED_EDGE ( 'NONE', *, *, #1804, .F. ) ; +#1348 = CARTESIAN_POINT ( 'NONE', ( 1.174683493581610394, -0.2451911293397369684, 5.593666288758528005 ) ) ; +#1349 = CARTESIAN_POINT ( 'NONE', ( 0.4582350407166203010, 0.009214966800775830844, 6.067633625604387682 ) ) ; +#1350 = VECTOR ( 'NONE', #4134, 39.37007874015748143 ) ; +#1351 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1527, #3147, #1142, #4004 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 0.5000032659764718224 ), + .UNSPECIFIED. ) ; +#1352 = EDGE_CURVE ( 'NONE', #1354, #3053, #810, .T. ) ; +#1353 = CARTESIAN_POINT ( 'NONE', ( -0.5775113686838942995, -0.05898353284288665455, 6.213304116564563273 ) ) ; +#1354 = VERTEX_POINT ( 'NONE', #1645 ) ; +#1355 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #1589, #353, #4397, #3594 ), + .UNSPECIFIED., .F., .F. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 5.759586531581287971, 6.806784082777883604 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9106836025229594345, 0.9106836025229594345, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#1356 = CARTESIAN_POINT ( 'NONE', ( -0.3510929804865408621, -0.4716078149472742731, 6.222160285838281624 ) ) ; +#1357 = CARTESIAN_POINT ( 'NONE', ( 0.9442786809891654531, -0.2565044160643090154, 5.518181750081197379 ) ) ; +#1358 = VERTEX_POINT ( 'NONE', #1216 ) ; +#1359 = LINE ( 'NONE', #3740, #2301 ) ; +#1360 = AXIS2_PLACEMENT_3D ( 'NONE', #3172, #2323, #2401 ) ; +#1361 = CARTESIAN_POINT ( 'NONE', ( 0.7795816565475354176, 0.6521642734793818841, 5.195033353103291951 ) ) ; +#1362 = CARTESIAN_POINT ( 'NONE', ( 0.6328194151786392663, 0.07668332510699407689, 6.064721239031350741 ) ) ; +#1363 = CARTESIAN_POINT ( 'NONE', ( 0.3013585551747638425, -1.161540060618920123, 5.721697987461060286 ) ) ; +#1364 = CARTESIAN_POINT ( 'NONE', ( -0.2008208592751637711, -0.3851193759463317212, 6.038823248738005134 ) ) ; +#1365 = CARTESIAN_POINT ( 'NONE', ( 0.8298275571744210266, -0.8668239045113043106, 5.672674617229609417 ) ) ; +#1366 = ORIENTED_EDGE ( 'NONE', *, *, #4279, .F. ) ; +#1367 = CARTESIAN_POINT ( 'NONE', ( 0.2488962534506801438, -0.4931890884472844849, 6.179736733210541288 ) ) ; +#1368 = CARTESIAN_POINT ( 'NONE', ( -0.3164780203617504339, 0.4713938048432685379, 6.129000000000000448 ) ) ; +#1369 = EDGE_CURVE ( 'NONE', #1750, #92, #2923, .T. ) ; +#1370 = EDGE_CURVE ( 'NONE', #3379, #3725, #906, .T. ) ; +#1371 = ORIENTED_EDGE ( 'NONE', *, *, #1352, .T. ) ; +#1372 = DIRECTION ( 'NONE', ( 1.000000000000000000, -1.224646799147351975E-16, -6.018531076210109851E-32 ) ) ; +#1373 = ORIENTED_EDGE ( 'NONE', *, *, #3569, .T. ) ; +#1374 = CARTESIAN_POINT ( 'NONE', ( 0.5840479651815008166, 0.06824218056873350424, 6.222246963095932060 ) ) ; +#1375 = ORIENTED_EDGE ( 'NONE', *, *, #841, .T. ) ; +#1376 = CARTESIAN_POINT ( 'NONE', ( -0.3717791312673252024, 0.1175552477264045770, 5.929924902836521738 ) ) ; +#1377 = CARTESIAN_POINT ( 'NONE', ( -0.4814499563015591233, -0.4381907727454242285, 6.294752585730345906 ) ) ; +#1378 = EDGE_LOOP ( 'NONE', ( #158, #492, #1235, #379 ) ) ; +#1379 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#1380 = CARTESIAN_POINT ( 'NONE', ( 0.6180809702029892438, -0.2381294013490750372, 6.305186707021285919 ) ) ; +#1381 = ORIENTED_EDGE ( 'NONE', *, *, #3556, .T. ) ; +#1382 = EDGE_CURVE ( 'NONE', #1678, #3610, #1590, .T. ) ; +#1383 = CYLINDRICAL_SURFACE ( 'NONE', #4440, 0.1330000000000000626 ) ; +#1384 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #2576 ), #4118 ) ; +#1385 = CARTESIAN_POINT ( 'NONE', ( 0.1281406053573195813, -0.6420561451607403880, 6.298284964318915158 ) ) ; +#1386 = CARTESIAN_POINT ( 'NONE', ( 0.7382052857005018121, 0.9496588225722351062, 5.562957933457567172 ) ) ; +#1387 = PLANE ( 'NONE', #3037 ) ; +#1388 = AXIS2_PLACEMENT_3D ( 'NONE', #2060, #2087, #3692 ) ; +#1389 = CARTESIAN_POINT ( 'NONE', ( -0.7986823578055235462, 0.6631920684923917619, 5.610249138468685004 ) ) ; +#1390 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#1391 = DIRECTION ( 'NONE', ( -6.250248031976811775E-16, -0.7660444431189782355, 0.6427876096865391409 ) ) ; +#1392 = ORIENTED_EDGE ( 'NONE', *, *, #671, .T. ) ; +#1393 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#1394 = CYLINDRICAL_SURFACE ( 'NONE', #2291, 0.2500000000000000000 ) ; +#1395 = VERTEX_POINT ( 'NONE', #2442 ) ; +#1396 = CARTESIAN_POINT ( 'NONE', ( -0.4449245162833049272, -0.7706318677356902569, 5.130805054534240739 ) ) ; +#1397 = EDGE_CURVE ( 'NONE', #4943, #3423, #640, .T. ) ; +#1398 = CARTESIAN_POINT ( 'NONE', ( 0.8983663427400374601, -8.008459942383085671E-16, 5.105498434834316868 ) ) ; +#1399 = ORIENTED_EDGE ( 'NONE', *, *, #5279, .T. ) ; +#1400 = CARTESIAN_POINT ( 'NONE', ( -1.990051048614448869E-16, -1.625000000000000000, 3.953999999999999737 ) ) ; +#1401 = CARTESIAN_POINT ( 'NONE', ( -0.5670534630605188475, -0.3659825172583427988, 6.315368908631488587 ) ) ; +#1402 = ORIENTED_EDGE ( 'NONE', *, *, #1382, .F. ) ; +#1403 = CARTESIAN_POINT ( 'NONE', ( 0.2777591748957324302, -0.4486897630718342800, 6.150277400613521017 ) ) ; +#1404 = CARTESIAN_POINT ( 'NONE', ( 0.5080486355296394141, -0.4216019846867635756, 6.303252268755775489 ) ) ; +#1405 = ORIENTED_EDGE ( 'NONE', *, *, #5189, .F. ) ; +#1406 = EDGE_CURVE ( 'NONE', #1022, #695, #4897, .T. ) ; +#1407 = CARTESIAN_POINT ( 'NONE', ( 1.140261818004015826, -0.3739071483843401933, 5.774258526520696932 ) ) ; +#1408 = DIRECTION ( 'NONE', ( -0.6634139481689388385, -0.3830222215594888957, 0.6427876096865389188 ) ) ; +#1409 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#1410 = CARTESIAN_POINT ( 'NONE', ( -1.163580972779800771, 0.2934558207139675301, 5.685938387774950975 ) ) ; +#1411 = FACE_OUTER_BOUND ( 'NONE', #2837, .T. ) ; +#1412 = CARTESIAN_POINT ( 'NONE', ( 0.8577574783204203746, -0.8391932340836039117, 5.725867636600595389 ) ) ; +#1413 = ORIENTED_EDGE ( 'NONE', *, *, #805, .F. ) ; +#1414 = ADVANCED_FACE ( 'NONE', ( #4107 ), #3897, .F. ) ; +#1415 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) ); +#1416 = AXIS2_PLACEMENT_3D ( 'NONE', #2019, #1617, #405 ) ; +#1417 = CYLINDRICAL_SURFACE ( 'NONE', #913, 0.1875000000000000278 ) ; +#1418 = ORIENTED_EDGE ( 'NONE', *, *, #1636, .F. ) ; +#1419 = CARTESIAN_POINT ( 'NONE', ( -0.5664780203617503229, 0.03838110295104957270, 6.129000000000000448 ) ) ; +#1420 = VECTOR ( 'NONE', #4156, 39.37007874015748143 ) ; +#1421 = CARTESIAN_POINT ( 'NONE', ( -0.6594867810375157902, -0.6694300051538228935, 5.470303972386260760 ) ) ; +#1422 = ORIENTED_EDGE ( 'NONE', *, *, #4649, .F. ) ; +#1423 = VECTOR ( 'NONE', #606, 39.37007874015748143 ) ; +#1424 = CARTESIAN_POINT ( 'NONE', ( 0.3711230302373700329, -0.1196051239169569069, 5.928576692832387529 ) ) ; +#1425 = CARTESIAN_POINT ( 'NONE', ( -0.5310135693519293376, -0.4041799509338553920, 6.309308791426150087 ) ) ; +#1426 = ORIENTED_EDGE ( 'NONE', *, *, #297, .F. ) ; +#1427 = CARTESIAN_POINT ( 'NONE', ( 0.2412598035621797421, -0.4065279755405133977, 6.084725601149478358 ) ) ; +#1428 = LINE ( 'NONE', #1537, #3225 ) ; +#1429 = CARTESIAN_POINT ( 'NONE', ( -0.4630943741226560273, 0.008056690813975204979, 6.073407060712692207 ) ) ; +#1430 = AXIS2_PLACEMENT_3D ( 'NONE', #909, #2483, #4544 ) ; +#1431 = EDGE_CURVE ( 'NONE', #106, #3889, #3129, .T. ) ; +#1432 = DIRECTION ( 'NONE', ( -0.7980483689013628812, 0.4630069900918588610, 0.3856725658119227740 ) ) ; +#1433 = EDGE_CURVE ( 'NONE', #1178, #864, #3861, .T. ) ; +#1434 = ORIENTED_EDGE ( 'NONE', *, *, #1543, .F. ) ; +#1435 = VECTOR ( 'NONE', #3453, 39.37007874015748143 ) ; +#1436 = CARTESIAN_POINT ( 'NONE', ( -0.3532562198070238191, 0.4717891350297715447, 6.223871975218390418 ) ) ; +#1437 = CARTESIAN_POINT ( 'NONE', ( 0.3558210133698777589, -0.4719254446024727656, 6.225791725373126972 ) ) ; +#1438 = AXIS2_PLACEMENT_3D ( 'NONE', #2873, #4199, #2449 ) ; +#1439 = CARTESIAN_POINT ( 'NONE', ( -1.681607939076289693, -0.9708767962971043275, 4.129000000000000448 ) ) ; +#1440 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 1.625000000000000000, 3.953999999999999737 ) ) ; +#1441 = AXIS2_PLACEMENT_3D ( 'NONE', #4433, #380, #2021 ) ; +#1442 = CARTESIAN_POINT ( 'NONE', ( 0.8590312445040919620, -0.8378900261117836479, 5.727943781061470396 ) ) ; +#1443 = ORIENTED_EDGE ( 'NONE', *, *, #4564, .F. ) ; +#1444 = CARTESIAN_POINT ( 'NONE', ( -0.6015694151786392663, -0.1308099128435247227, 6.064721239031350741 ) ) ; +#1445 = SURFACE_STYLE_USAGE ( .BOTH. , #5100 ) ; +#1446 = LINE ( 'NONE', #2268, #4602 ) ; +#1447 = EDGE_CURVE ( 'NONE', #3076, #1269, #5032, .T. ) ; +#1448 = ORIENTED_EDGE ( 'NONE', *, *, #1051, .F. ) ; +#1449 = CARTESIAN_POINT ( 'NONE', ( -0.8301120790642141367, 0.6957717832855144779, 5.661614435832748704 ) ) ; +#1450 = AXIS2_PLACEMENT_3D ( 'NONE', #1167, #2372, #793 ) ; +#1451 = CYLINDRICAL_SURFACE ( 'NONE', #1867, 0.05000000000000004441 ) ; +#1452 = ORIENTED_EDGE ( 'NONE', *, *, #636, .F. ) ; +#1453 = CARTESIAN_POINT ( 'NONE', ( -0.3714227403930644988, 0.1186718757893289317, 5.929187335110050583 ) ) ; +#1454 = CARTESIAN_POINT ( 'NONE', ( -0.5846389981181833173, 0.06915298363256819347, 6.223073101854077471 ) ) ; +#1455 = ORIENTED_EDGE ( 'NONE', *, *, #3663, .T. ) ; +#1456 = CARTESIAN_POINT ( 'NONE', ( 0.2416476612724857975, -0.3060144142332251738, 5.986163717094036052 ) ) ; +#1457 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, 0.9058473084154233801, 5.470303972386260760 ) ) ; +#1458 = CARTESIAN_POINT ( 'NONE', ( -0.4013323545595173791, 0.04128708721783357072, 6.002172553009027745 ) ) ; +#1459 = CYLINDRICAL_SURFACE ( 'NONE', #286, 0.1330000000000000626 ) ; +#1460 = ORIENTED_EDGE ( 'NONE', *, *, #4343, .F. ) ; +#1461 = CARTESIAN_POINT ( 'NONE', ( -0.3558210133700813183, 0.4719254446024787053, 6.225791725373276186 ) ) ; +#1462 = EDGE_CURVE ( 'NONE', #1314, #106, #526, .T. ) ; +#1463 = CARTESIAN_POINT ( 'NONE', ( -0.2996756621917367469, 1.161970514015538969, 5.723724100246404767 ) ) ; +#1464 = EDGE_CURVE ( 'NONE', #2840, #5024, #263, .T. ) ; +#1465 = CARTESIAN_POINT ( 'NONE', ( 1.021234122634727903, 0.8537658773652742061, 4.658015363927715313 ) ) ; +#1466 = CARTESIAN_POINT ( 'NONE', ( -3.581366610240468148E-17, -1.273684206347440940E-15, 5.986163717094036052 ) ) ; +#1467 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000000555, -0.9824517527273249895, 5.406025211417605725 ) ) ; +#1468 = ORIENTED_EDGE ( 'NONE', *, *, #2295, .F. ) ; +#1469 = VECTOR ( 'NONE', #4967, 39.37007874015748854 ) ; +#1470 = CARTESIAN_POINT ( 'NONE', ( -0.2499999999999995837, 0.5097749077943192209, 6.129000000000000448 ) ) ; +#1471 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) ); +#1472 = LINE ( 'NONE', #4677, #4584 ) ; +#1473 = ORIENTED_EDGE ( 'NONE', *, *, #856, .F. ) ; +#1474 = SURFACE_SIDE_STYLE ('',( #1983 ) ) ; +#1475 = ADVANCED_FACE ( 'NONE', ( #4524 ), #1341, .F. ) ; +#1476 = CARTESIAN_POINT ( 'NONE', ( -0.2331127334215591373, 0.3664756537182314311, 6.038823248741267413 ) ) ; +#1477 = DIRECTION ( 'NONE', ( -1.418747724434797878E-31, -2.577215088362509940E-16, 1.000000000000000000 ) ) ; +#1478 = ORIENTED_EDGE ( 'NONE', *, *, #2894, .T. ) ; +#1479 = CARTESIAN_POINT ( 'NONE', ( -0.2416476612724857975, 0.3060144142332220651, 5.986163717094036052 ) ) ; +#1480 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1114, #766, #5247, #2397, #2687, #5145, #2001, #1166, #2763, #1491, #4030, #736, #682, #1895, #335, #5221, #5172, #1921, #3193, #2316, #3523, #3944, #4820, #280, #3548, #4404, #3576 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.2499999999997274958, 0.3749999999995965450, 0.4374999999995310973, 0.4687499999995036748, 0.4999999999994761968, 0.6249999999993662847, 0.6874999999993064437, 0.7187499999992807975, 0.7343749999992723598, 0.7421874999992678079, 0.7460937499992698063, 0.7480468749992708055, 0.7499999999992716937, 0.8749999999996358468, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#1481 = ADVANCED_FACE ( 'NONE', ( #2965 ), #941, .F. ) ; +#1482 = CARTESIAN_POINT ( 'NONE', ( -0.1080208536552034887, 0.3746876210555016296, 5.947937117756234571 ) ) ; +#1483 = CARTESIAN_POINT ( 'NONE', ( -2.622574073917688943E-16, -0.5097749077943204421, 6.129000000000000448 ) ) ; +#1484 = CARTESIAN_POINT ( 'NONE', ( 1.139134559982707406, -0.3773247190703491460, 5.776711110814411576 ) ) ; +#1485 = FACE_OUTER_BOUND ( 'NONE', #1378, .T. ) ; +#1486 = ORIENTED_EDGE ( 'NONE', *, *, #611, .T. ) ; +#1487 = AXIS2_PLACEMENT_3D ( 'NONE', #2757, #3570, #3162 ) ; +#1488 = CARTESIAN_POINT ( 'NONE', ( -0.3503458561743615363, 0.4716355139731083224, 6.221651625992171475 ) ) ; +#1489 = CARTESIAN_POINT ( 'NONE', ( -1.013584444210816171, -0.6530343010856337616, 5.825994415577063101 ) ) ; +#1490 = CARTESIAN_POINT ( 'NONE', ( -1.173533138229075901, 0.2507023541871428174, 5.606856458477682992 ) ) ; +#1491 = CARTESIAN_POINT ( 'NONE', ( 0.2380246786273784720, 0.3954415037520294107, 6.071486235015586708 ) ) ; +#1492 = CARTESIAN_POINT ( 'NONE', ( 0.8052179949419465688, -0.6733778126772239636, 5.622982866475105368 ) ) ; +#1493 = CARTESIAN_POINT ( 'NONE', ( -0.2396708416371788331, -0.5249993225305347178, 6.209224166972638237 ) ) ; +#1494 = CARTESIAN_POINT ( 'NONE', ( 0.4290832926986046791, 0.4607818666749370351, 6.271836282905964843 ) ) ; +#1495 = APPLICATION_PROTOCOL_DEFINITION ( 'draft international standard', 'automotive_design', 1998, #1657 ) ; +#1496 = DIRECTION ( 'NONE', ( -0.4999999999999998335, 0.8660254037844385966, 2.200518442539849254E-16 ) ) ; +#1497 = ORIENTED_EDGE ( 'NONE', *, *, #589, .T. ) ; +#1498 = CARTESIAN_POINT ( 'NONE', ( 0.8911369745650296048, 0.8036693292241064990, 5.771286896599933769 ) ) ; +#1499 = AXIS2_PLACEMENT_3D ( 'NONE', #875, #3223, #3713 ) ; +#1500 = EDGE_CURVE ( 'NONE', #4973, #954, #4027, .T. ) ; +#1501 = CARTESIAN_POINT ( 'NONE', ( -0.2472200199986710756, 0.4179822313567568837, 6.100062796171807911 ) ) ; +#1502 = PLANE ( 'NONE', #5101 ) ; +#1503 = ORIENTED_EDGE ( 'NONE', *, *, #1896, .F. ) ; +#1504 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #2379, 'distance_accuracy_value', 'NONE'); +#1505 = ORIENTED_EDGE ( 'NONE', *, *, #940, .T. ) ; +#1506 = CARTESIAN_POINT ( 'NONE', ( 0.3469584899125345290, -0.1779373408142122248, 5.904571661718942543 ) ) ; +#1507 = VECTOR ( 'NONE', #105, 39.37007874015748143 ) ; +#1508 = CARTESIAN_POINT ( 'NONE', ( -0.02721423416090128916, 0.3899206457673771165, 5.903217844728761321 ) ) ; +#1509 = CARTESIAN_POINT ( 'NONE', ( -0.4533260224253194970, 1.114133941910703918, 5.562957933457569837 ) ) ; +#1510 = VECTOR ( 'NONE', #3393, 39.37007874015748143 ) ; +#1511 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -0.8204416026402776563, 5.135162841671623291 ) ) ; +#1512 = EDGE_CURVE ( 'NONE', #3068, #777, #195, .T. ) ; +#1513 = LINE ( 'NONE', #5194, #2597 ) ; +#1514 = ORIENTED_EDGE ( 'NONE', *, *, #4999, .T. ) ; +#1515 = CARTESIAN_POINT ( 'NONE', ( -0.5165383366357702011, 0.4152470057634182199, 6.305523136322818800 ) ) ; +#1516 = CARTESIAN_POINT ( 'NONE', ( 0.3431685626354171736, -0.4710736201109420040, 6.216034119358001320 ) ) ; +#1517 = DIRECTION ( 'NONE', ( -0.8000000000000004885, 0.4596266658713864528, 0.3856725658119229960 ) ) ; +#1518 = CARTESIAN_POINT ( 'NONE', ( -0.5078194151786440402, 0.2931896760531078616, 6.064721239031358735 ) ) ; +#1519 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2885, #4095, #4523, #2061 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#1520 = FACE_BOUND ( 'NONE', #895, .T. ) ; +#1521 = VECTOR ( 'NONE', #2007, 39.37007874015748854 ) ; +#1522 = AXIS2_PLACEMENT_3D ( 'NONE', #5286, #5229, #1203 ) ; +#1523 = VERTEX_POINT ( 'NONE', #1721 ) ; +#1524 = CARTESIAN_POINT ( 'NONE', ( 0.5101262397150539973, 0.4199814910053707995, 6.303783207326643989 ) ) ; +#1525 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) ); +#1526 = AXIS2_PLACEMENT_3D ( 'NONE', #1818, #600, #3917 ) ; +#1527 = CARTESIAN_POINT ( 'NONE', ( -0.9736823578055235906, -0.3600831771678402182, 5.610249138468685004 ) ) ; +#1528 = EDGE_LOOP ( 'NONE', ( #1159, #376 ) ) ; +#1529 = DIRECTION ( 'NONE', ( -0.5566703992264191436, 0.3213938048432700700, 0.7660444431189782355 ) ) ; +#1530 = DIRECTION ( 'NONE', ( 0.4999999999999998335, 0.8660254037844385966, 2.331034670843834533E-16 ) ) ; +#1531 = ADVANCED_FACE ( 'NONE', ( #4207 ), #1748, .F. ) ; +#1532 = CARTESIAN_POINT ( 'NONE', ( 1.166967299058070617, 0.2796198932089020706, 5.663225138498142464 ) ) ; +#1533 = EDGE_CURVE ( 'NONE', #4525, #2517, #4151, .T. ) ; +#1534 = ORIENTED_EDGE ( 'NONE', *, *, #3584, .T. ) ; +#1535 = ORIENTED_EDGE ( 'NONE', *, *, #5019, .T. ) ; +#1536 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000000555, 0.9824517527273209927, 5.406025211417605725 ) ) ; +#1537 = CARTESIAN_POINT ( 'NONE', ( 0.5352280203617504339, -0.09250769068757969116, 6.129000000000000448 ) ) ; +#1538 = CARTESIAN_POINT ( 'NONE', ( -0.1875000000295494185, -1.066784040100515751, 5.661614435832544423 ) ) ; +#1539 = LINE ( 'NONE', #3622, #471 ) ; +#1540 = VERTEX_POINT ( 'NONE', #2568 ) ; +#1541 = CARTESIAN_POINT ( 'NONE', ( -0.4867969532968352553, 0.4350672307161677632, 6.296557675059595738 ) ) ; +#1542 = CARTESIAN_POINT ( 'NONE', ( -0.2991088884360718625, 1.162116576252404609, 5.724403585564814989 ) ) ; +#1543 = EDGE_CURVE ( 'NONE', #2063, #5007, #536, .T. ) ; +#1544 = CARTESIAN_POINT ( 'NONE', ( -1.123925224380449839, 0.4210705470603010037, 5.801654089883308885 ) ) ; +#1545 = CARTESIAN_POINT ( 'NONE', ( 3.933861110876538837E-16, 0.5097749077943188878, 6.129000000000000448 ) ) ; +#1546 = CARTESIAN_POINT ( 'NONE', ( 0.8119919672299379387, -0.6814233679950164602, 5.634623668516291595 ) ) ; +#1547 = CARTESIAN_POINT ( 'NONE', ( -0.2325753095138394233, -0.5406072914084709691, 6.222833236376883903 ) ) ; +#1548 = CARTESIAN_POINT ( 'NONE', ( 0.5431005103855538474, -0.02488409127334405974, 6.169373990188736556 ) ) ; +#1549 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, -0.8097085448544685260, 5.355730255524930428 ) ) ; +#1550 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( $, .METRE. ) ); +#1551 = CIRCLE ( 'NONE', #1205, 0.1329999999999999238 ) ; +#1552 = CARTESIAN_POINT ( 'NONE', ( -0.2798689215403368236, 0.4501038182059078907, 6.153038823636454602 ) ) ; +#1553 = CARTESIAN_POINT ( 'NONE', ( 1.138855673393273094, 0.3781625187677006839, 5.777299146094611260 ) ) ; +#1554 = ORIENTED_EDGE ( 'NONE', *, *, #3075, .T. ) ; +#1555 = ORIENTED_EDGE ( 'NONE', *, *, #1636, .T. ) ; +#1556 = CYLINDRICAL_SURFACE ( 'NONE', #2358, 2.250000000000000000 ) ; +#1557 = EDGE_CURVE ( 'NONE', #1354, #537, #1673, .T. ) ; +#1558 = CARTESIAN_POINT ( 'NONE', ( -1.138498522784111122, -0.3792390233994479831, 5.778047900398720849 ) ) ; +#1559 = LINE ( 'NONE', #2436, #834 ) ; +#1560 = CARTESIAN_POINT ( 'NONE', ( -0.2941169650621944243, -1.163396639243773345, 5.730263837020200590 ) ) ; +#1561 = VERTEX_POINT ( 'NONE', #2913 ) ; +#1562 = CARTESIAN_POINT ( 'NONE', ( -0.5037051150313814896, -0.007864172423219305957, 6.121838593659651551 ) ) ; +#1563 = EDGE_CURVE ( 'NONE', #4525, #191, #3210, .T. ) ; +#1564 = ORIENTED_EDGE ( 'NONE', *, *, #1397, .F. ) ; +#1565 = CARTESIAN_POINT ( 'NONE', ( -0.6193829872519166502, 0.2254034014454240620, 6.302308868001339270 ) ) ; +#1566 = EDGE_CURVE ( 'NONE', #2945, #937, #965, .T. ) ; +#1567 = LINE ( 'NONE', #2473, #3992 ) ; +#1568 = AXIS2_PLACEMENT_3D ( 'NONE', #1181, #910, #882 ) ; +#1569 = CARTESIAN_POINT ( 'NONE', ( 0.4630943741234577193, -0.008056690813901421985, 6.073407060713375216 ) ) ; +#1570 = CARTESIAN_POINT ( 'NONE', ( 0.4414780203617504339, -0.2548874538971618309, 6.129000000000000448 ) ) ; +#1571 = CARTESIAN_POINT ( 'NONE', ( -0.8301120790642141367, 0.6957717832855144779, 5.661614435832748704 ) ) ; +#1572 = CARTESIAN_POINT ( 'NONE', ( 1.200000000000002176, 0.08245558274271395927, 5.522824837521429053 ) ) ; +#1573 = CARTESIAN_POINT ( 'NONE', ( 0.6155362794743653998, 0.2549772964186591828, 6.308511991671463370 ) ) ; +#1574 = CARTESIAN_POINT ( 'NONE', ( -0.6942786809891673405, -0.6895171179565275921, 5.518181750081197379 ) ) ; +#1575 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#1576 = EDGE_CURVE ( 'NONE', #2751, #1750, #3829, .T. ) ; +#1577 = VERTEX_POINT ( 'NONE', #2594 ) ; +#1578 = CARTESIAN_POINT ( 'NONE', ( 0.2325546229259536080, -0.5406477347599412120, 6.222867768771128461 ) ) ; +#1579 = LINE ( 'NONE', #3203, #3135 ) ; +#1580 = ORIENTED_EDGE ( 'NONE', *, *, #5290, .T. ) ; +#1581 = VERTEX_POINT ( 'NONE', #5023 ) ; +#1582 = CARTESIAN_POINT ( 'NONE', ( 0.2014820094154945729, -0.3855639764534552483, 6.039897479784866796 ) ) ; +#1583 = AXIS2_PLACEMENT_3D ( 'NONE', #936, #150, #2589 ) ; +#1584 = CARTESIAN_POINT ( 'NONE', ( -1.155388415399194457, -0.3241468593876022375, 5.726939577286371374 ) ) ; +#1585 = VERTEX_POINT ( 'NONE', #4306 ) ; +#1586 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, -1.109813176013889846, 5.713381027863315254 ) ) ; +#1587 = DIRECTION ( 'NONE', ( 1.000000000000000000, -1.092739197465705287E-15, 0.000000000000000000 ) ) ; +#1588 = ORIENTED_EDGE ( 'NONE', *, *, #589, .F. ) ; +#1589 = CARTESIAN_POINT ( 'NONE', ( 0.6250000000000000000, -1.082531754730549300, 4.849972727250857929 ) ) ; +#1590 = CIRCLE ( 'NONE', #1416, 1.250000000000000000 ) ; +#1591 = CARTESIAN_POINT ( 'NONE', ( -0.8628402680797480073, 0.7002336552598602548, 5.309607069964629389 ) ) ; +#1592 = VERTEX_POINT ( 'NONE', #992 ) ; +#1593 = CARTESIAN_POINT ( 'NONE', ( 0.1749999999999980183, -1.097358419195169299, 5.309607069964629389 ) ) ; +#1594 = VECTOR ( 'NONE', #529, 39.37007874015748143 ) ; +#1595 = FACE_OUTER_BOUND ( 'NONE', #2952, .T. ) ; +#1596 = CIRCLE ( 'NONE', #1853, 0.1329999999999999238 ) ; +#1597 = ADVANCED_FACE ( 'NONE', ( #128 ), #1417, .F. ) ; +#1598 = CARTESIAN_POINT ( 'NONE', ( -1.141566542633256187, 0.3699125936126451686, 5.771286896599918670 ) ) ; +#1599 = CARTESIAN_POINT ( 'NONE', ( 1.013584444210810176, -0.6530343010856415331, 5.825994415577062213 ) ) ; +#1600 = DIRECTION ( 'NONE', ( 0.7071067811865469066, 2.436048514919265987E-16, -0.7071067811865479058 ) ) ; +#1601 = ORIENTED_EDGE ( 'NONE', *, *, #3770, .T. ) ; +#1602 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #62, #2898, #31, #1676 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.995237394644995277, 3.287947912534595396 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9928727816990980948, 0.9928727816990980948, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#1603 = CARTESIAN_POINT ( 'NONE', ( 0.3519373613376488574, 0.4717220786013557876, 6.222867768771136454 ) ) ; +#1604 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, 1.023275245660230315, 5.610249138468685004 ) ) ; +#1605 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.360911383585519550E-15, 6.378999999999999559 ) ) ; +#1606 = AXIS2_PLACEMENT_3D ( 'NONE', #2200, #3835, #2574 ) ; +#1607 = CARTESIAN_POINT ( 'NONE', ( 1.155834541988528530, 0.3225332653754552359, 5.725016799695361591 ) ) ; +#1608 = EDGE_CURVE ( 'NONE', #2725, #3883, #1596, .T. ) ; +#1609 = ORIENTED_EDGE ( 'NONE', *, *, #3462, .F. ) ; +#1610 = VECTOR ( 'NONE', #3504, 39.37007874015748854 ) ; +#1611 = CARTESIAN_POINT ( 'NONE', ( 0.2376732921478331428, -0.4230946234630382219, 6.099710673682335660 ) ) ; +#1612 = ORIENTED_EDGE ( 'NONE', *, *, #1679, .F. ) ; +#1613 = CARTESIAN_POINT ( 'NONE', ( -0.2297440553348215619, 0.4111938274489668754, 6.082756626977597669 ) ) ; +#1614 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#1615 = EDGE_LOOP ( 'NONE', ( #1823, #1555, #4776, #2125, #1001, #2900 ) ) ; +#1616 = CARTESIAN_POINT ( 'NONE', ( -0.4273109269336128890, -0.02212095606529255326, 6.031377779165559616 ) ) ; +#1617 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#1618 = EDGE_LOOP ( 'NONE', ( #3475, #722, #1486, #4927 ) ) ; +#1619 = DIRECTION ( 'NONE', ( 0.4999999999999998335, -0.8660254037844385966, -2.557337244648729371E-16 ) ) ; +#1620 = CARTESIAN_POINT ( 'NONE', ( -1.250000000000000000, -5.361456037938779698E-16, 3.104000000000000092 ) ) ; +#1621 = ORIENTED_EDGE ( 'NONE', *, *, #877, .T. ) ; +#1622 = DIRECTION ( 'NONE', ( 0.6634139481689381723, -0.3830222215594895618, -0.6427876096865392519 ) ) ; +#1623 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, -2.220446049250309876E-16 ) ) ; +#1624 = CARTESIAN_POINT ( 'NONE', ( -0.8969375655991063123, 0.7971852833007715411, 5.777310701146372018 ) ) ; +#1625 = ADVANCED_FACE ( 'NONE', ( #5070 ), #2621, .F. ) ; +#1626 = CARTESIAN_POINT ( 'NONE', ( -0.2173682290708024989, -0.5657621069031095740, 6.243538018994028604 ) ) ; +#1627 = CARTESIAN_POINT ( 'NONE', ( 0.6119068065672992329, 0.2721198777836268956, 6.311327930657684604 ) ) ; +#1628 = CARTESIAN_POINT ( 'NONE', ( -0.2306134812473304707, 0.5443678407418542919, 6.225996798345097005 ) ) ; +#1629 = CARTESIAN_POINT ( 'NONE', ( 0.2160801229187537253, 0.3966749475283593562, 6.059766075025354581 ) ) ; +#1630 = CARTESIAN_POINT ( 'NONE', ( -0.1162392771300952837, -0.6482523206034392915, 6.301832064088764618 ) ) ; +#1631 = CARTESIAN_POINT ( 'NONE', ( 1.119799205566126998, 0.4314840011882444815, 5.803600807404783346 ) ) ; +#1632 = CARTESIAN_POINT ( 'NONE', ( 0.2489020555333780749, 0.4931661567808763302, 6.179690170118695924 ) ) ; +#1633 = ORIENTED_EDGE ( 'NONE', *, *, #2903, .F. ) ; +#1634 = COLOUR_RGB ( '',0.6274509803921568540, 0.6274509803921568540, 0.6274509803921568540 ) ; +#1635 = CARTESIAN_POINT ( 'NONE', ( -0.8301118274381791284, -0.6957716379750354951, 5.661614086336346219 ) ) ; +#1636 = EDGE_CURVE ( 'NONE', #2494, #2389, #204, .T. ) ; +#1637 = ORIENTED_EDGE ( 'NONE', *, *, #5178, .T. ) ; +#1638 = CARTESIAN_POINT ( 'NONE', ( -0.1895952208957678575, 0.3787403356032162938, 6.026227888684811518 ) ) ; +#1639 = AXIS2_PLACEMENT_3D ( 'NONE', #474, #4149, #1393 ) ; +#1640 = DIRECTION ( 'NONE', ( -0.5566703992264183665, -0.3213938048432699590, -0.7660444431189786796 ) ) ; +#1641 = ORIENTED_EDGE ( 'NONE', *, *, #1991, .F. ) ; +#1642 = CARTESIAN_POINT ( 'NONE', ( -0.05474255457611067882, -0.3860907334142845704, 5.914219959712267993 ) ) ; +#1643 = CYLINDRICAL_SURFACE ( 'NONE', #4338, 0.1875000000000000555 ) ; +#1644 = EDGE_CURVE ( 'NONE', #3409, #3976, #1472, .T. ) ; +#1645 = CARTESIAN_POINT ( 'NONE', ( 0.2499676822388144370, 0.4734477930975836690, 6.159485386716823108 ) ) ; +#1646 = ORIENTED_EDGE ( 'NONE', *, *, #1679, .T. ) ; +#1647 = CARTESIAN_POINT ( 'NONE', ( 0.6826897502467756951, -0.3941511110779764016, 5.096860619515669377 ) ) ; +#1648 = CARTESIAN_POINT ( 'NONE', ( -0.5078194151786440402, 0.2931896760531078616, 6.064721239031358735 ) ) ; +#1649 = ORIENTED_EDGE ( 'NONE', *, *, #691, .T. ) ; +#1650 = CARTESIAN_POINT ( 'NONE', ( 1.172309096781408266, -0.2563451719142405549, 5.619127258118536083 ) ) ; +#1651 = CARTESIAN_POINT ( 'NONE', ( -3.581366610240468148E-17, -1.273684206347440940E-15, 5.986163717094036052 ) ) ; +#1652 = CARTESIAN_POINT ( 'NONE', ( -0.9264160033235550040, 0.7628027731112878573, 5.800274753243519932 ) ) ; +#1653 = CARTESIAN_POINT ( 'NONE', ( -0.6328194151786392663, -0.07668332510699728266, 6.064721239031350741 ) ) ; +#1654 = CARTESIAN_POINT ( 'NONE', ( 0.6169639516479583641, 0.2463163468718519711, 6.306870712083878949 ) ) ; +#1655 = CARTESIAN_POINT ( 'NONE', ( -1.166948517379205130, -0.2796926151040990405, 5.663349676275113431 ) ) ; +#1656 = CARTESIAN_POINT ( 'NONE', ( -1.250000000000000000, -2.540341340432940998E-16, 4.849972727250857929 ) ) ; +#1657 = APPLICATION_CONTEXT ( 'automotive_design' ) ; +#1658 = CARTESIAN_POINT ( 'NONE', ( 0.2383732206852694213, 0.4230899333194763634, 6.100062796169729573 ) ) ; +#1659 = AXIS2_PLACEMENT_3D ( 'NONE', #223, #1408, #4622 ) ; +#1660 = CARTESIAN_POINT ( 'NONE', ( -0.1402538064080190716, -0.6351337566169378279, 6.294203354883603829 ) ) ; +#1661 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, 1.001219655634210559, 5.195033353103291951 ) ) ; +#1662 = CARTESIAN_POINT ( 'NONE', ( 0.1875000000295499736, 1.066784040100659192, 5.661614435832721171 ) ) ; +#1663 = EDGE_CURVE ( 'NONE', #1101, #3957, #2670, .T. ) ; +#1664 = ORIENTED_EDGE ( 'NONE', *, *, #4161, .T. ) ; +#1665 = CARTESIAN_POINT ( 'NONE', ( 1.048626403882710667, -0.4033521423446669307, 5.713381027863315254 ) ) ; +#1666 = EDGE_CURVE ( 'NONE', #921, #2751, #235, .T. ) ; +#1667 = ORIENTED_EDGE ( 'NONE', *, *, #1171, .F. ) ; +#1668 = CARTESIAN_POINT ( 'NONE', ( 0.06938123760053772904, 0.6662447839434614272, 6.311459269829619245 ) ) ; +#1669 = DIRECTION ( 'NONE', ( -0.6634139481689382833, 0.3830222215594896729, 0.6427876096865393629 ) ) ; +#1670 = ORIENTED_EDGE ( 'NONE', *, *, #315, .T. ) ; +#1671 = DIRECTION ( 'NONE', ( 0.6634139481689381723, -0.3830222215594895618, -0.6427876096865392519 ) ) ; +#1672 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#1673 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4573, #2062, #1632, #915, #2886, #4096, #4183, #4995, #47, #1692, #3261, #860, #3347, #884, #2118, #4494, #2514, #829, #3753, #3319, #2461, #1262, #421, #4942, #3695 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4 ), + ( 0.5608568033238393591, 0.6706426024916549711, 0.7255355020755599460, 0.7529819518675145984, 0.7667051767634920356, 0.7735667892114788113, 0.7769975954354698677, 0.7787129985474655625, 0.7795707001034635208, 0.7799995508814645540, 0.7804284016594658091, 0.8353213012445992458, 0.8902142008297329046, 0.9451071004148663413, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#1674 = CARTESIAN_POINT ( 'NONE', ( -1.048626403882710667, 0.4033521423446653764, 5.713381027863315254 ) ) ; +#1675 = VERTEX_POINT ( 'NONE', #3425 ) ; +#1676 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, -1.187171007058380079, 5.805572500925889834 ) ) ; +#1677 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#1678 = VERTEX_POINT ( 'NONE', #3854 ) ; +#1679 = EDGE_CURVE ( 'NONE', #326, #3487, #2126, .T. ) ; +#1680 = FACE_OUTER_BOUND ( 'NONE', #3460, .T. ) ; +#1681 = LINE ( 'NONE', #2874, #1150 ) ; +#1682 = CARTESIAN_POINT ( 'NONE', ( 0.3654310284260531838, 0.1359952837677161352, 5.918960724784363414 ) ) ; +#1683 = CIRCLE ( 'NONE', #4497, 0.1330000000000000626 ) ; +#1684 = AXIS2_PLACEMENT_3D ( 'NONE', #1694, #4496, #4944 ) ; +#1685 = CARTESIAN_POINT ( 'NONE', ( 0.5944879663576593254, 0.3214835422153718980, 6.316086704514113137 ) ) ; +#1686 = CARTESIAN_POINT ( 'NONE', ( -1.174683493581610394, -0.2451911293397350255, 5.593666288758528005 ) ) ; +#1687 = CARTESIAN_POINT ( 'NONE', ( -0.2324312584861903397, 0.5408887162289353068, 6.223073101853434430 ) ) ; +#1688 = CARTESIAN_POINT ( 'NONE', ( -0.1833342074774935715, 1.095886071286483299, 5.696783350770007637 ) ) ; +#1689 = LINE ( 'NONE', #2778, #706 ) ; +#1690 = CARTESIAN_POINT ( 'NONE', ( 0.1936345652644452242, -0.5937901820939682773, 6.265683030098449180 ) ) ; +#1691 = CIRCLE ( 'NONE', #4673, 0.1874999999999999167 ) ; +#1692 = CARTESIAN_POINT ( 'NONE', ( 0.2339660810177285333, 0.5378388411952749193, 6.220460831041672023 ) ) ; +#1693 = EDGE_LOOP ( 'NONE', ( #5195, #1850, #1633, #2209, #129, #2600, #4674 ) ) ; +#1694 = CARTESIAN_POINT ( 'NONE', ( 0.7105232702080964691, -0.4102208013201386061, 5.135162841671623291 ) ) ; +#1695 = ORIENTED_EDGE ( 'NONE', *, *, #528, .T. ) ; +#1696 = CIRCLE ( 'NONE', #4754, 0.2499999999999998612 ) ; +#1697 = EDGE_CURVE ( 'NONE', #696, #5103, #1446, .T. ) ; +#1698 = CARTESIAN_POINT ( 'NONE', ( 0.09856776730774451101, 0.6561068886449950011, 6.306142775617892937 ) ) ; +#1699 = DIRECTION ( 'NONE', ( 1.224646799147352468E-16, 1.000000000000000000, 0.000000000000000000 ) ) ; +#1700 = EDGE_LOOP ( 'NONE', ( #4834, #3018, #188, #4040, #1381, #5159, #5287, #4730 ) ) ; +#1701 = CARTESIAN_POINT ( 'NONE', ( -0.02735642119912297041, -0.3891769352149499483, 5.905295428023512372 ) ) ; +#1702 = AXIS2_PLACEMENT_3D ( 'NONE', #3513, #2230, #2729 ) ; +#1703 = DIRECTION ( 'NONE', ( -0.5566703992264199208, -0.3213938048432694594, 0.7660444431189777914 ) ) ; +#1704 = CARTESIAN_POINT ( 'NONE', ( 0.4551265001645181107, 0.7883022221559489173, 5.096860619515669377 ) ) ; +#1705 = ORIENTED_EDGE ( 'NONE', *, *, #3739, .T. ) ; +#1706 = CARTESIAN_POINT ( 'NONE', ( 1.037840268079750050, -0.3971247639353086556, 5.309607069964629389 ) ) ; +#1707 = PLANE ( 'NONE', #1948 ) ; +#1708 = ORIENTED_EDGE ( 'NONE', *, *, #117, .T. ) ; +#1709 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1538, #4347, #377, #2756 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.5000032659714995775, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#1710 = CARTESIAN_POINT ( 'NONE', ( 0.6137281695053011799, 0.5564087180895086471, 5.355730255524930428 ) ) ; +#1711 = PLANE ( 'NONE', #4317 ) ; +#1712 = CARTESIAN_POINT ( 'NONE', ( 0.3691786772993183585, 0.1254780963822807460, 5.924878623416899082 ) ) ; +#1713 = EDGE_CURVE ( 'NONE', #2945, #1177, #3071, .T. ) ; +#1714 = CARTESIAN_POINT ( 'NONE', ( -0.8301120790642141367, 0.6957717832855144779, 5.661614435832748704 ) ) ; +#1715 = FACE_OUTER_BOUND ( 'NONE', #4128, .T. ) ; +#1716 = CARTESIAN_POINT ( 'NONE', ( -0.1874974012643396415, 1.051864777811663876, 5.643834550591039445 ) ) ; +#1717 = CARTESIAN_POINT ( 'NONE', ( 0.2165896544568374771, 0.3971304653844581756, 6.060531982410005014 ) ) ; +#1718 = CARTESIAN_POINT ( 'NONE', ( -1.153457150341757664, -0.3309684433813574467, 5.734811671460852800 ) ) ; +#1719 = AXIS2_PLACEMENT_3D ( 'NONE', #149, #2315, #2214 ) ; +#1720 = DIRECTION ( 'NONE', ( 0.5566703992264188106, -0.3213938048432693484, -0.7660444431189786796 ) ) ; +#1721 = CARTESIAN_POINT ( 'NONE', ( 0.4551265001645165009, -0.7883022221559508047, 5.096860619515669377 ) ) ; +#1722 = ORIENTED_EDGE ( 'NONE', *, *, #4422, .T. ) ; +#1723 = FACE_OUTER_BOUND ( 'NONE', #2892, .T. ) ; +#1724 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4223, #148, #4669, #1714 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 0.5000032659734363616 ), + .UNSPECIFIED. ) ; +#1725 = VERTEX_POINT ( 'NONE', #5047 ) ; +#1726 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#1727 = CARTESIAN_POINT ( 'NONE', ( 0.4449245162833039835, 0.7706318677356882585, 5.130805054534240739 ) ) ; +#1728 = ORIENTED_EDGE ( 'NONE', *, *, #2324, .F. ) ; +#1729 = CARTESIAN_POINT ( 'NONE', ( 1.174683493581610394, -0.2451911293397369684, 5.593666288758528005 ) ) ; +#1730 = ADVANCED_FACE ( 'NONE', ( #1825 ), #180, .F. ) ; +#1731 = DIRECTION ( 'NONE', ( 0.7980483689013624371, -0.4630069900918591941, 0.3856725658119230515 ) ) ; +#1732 = CARTESIAN_POINT ( 'NONE', ( -0.6201777508026217189, -0.2040449126857462325, 6.296557675060617143 ) ) ; +#1733 = AXIS2_PLACEMENT_3D ( 'NONE', #3003, #4706, #1906 ) ; +#1734 = ORIENTED_EDGE ( 'NONE', *, *, #1533, .T. ) ; +#1735 = DIRECTION ( 'NONE', ( 0.001951631098638388368, 0.9226336559632448697, 0.3856725658119226630 ) ) ; +#1736 = CARTESIAN_POINT ( 'NONE', ( 0.9406202507489094256, -0.7451399491914665330, 5.805572500925889834 ) ) ; +#1737 = ORIENTED_EDGE ( 'NONE', *, *, #4249, .F. ) ; +#1738 = CARTESIAN_POINT ( 'NONE', ( 1.160712405205045039, -0.3045300546910649775, 5.701826644405080913 ) ) ; +#1739 = CARTESIAN_POINT ( 'NONE', ( -0.3784994251441192725, 0.09379500713616709118, 5.947937117744866775 ) ) ; +#1740 = CARTESIAN_POINT ( 'NONE', ( 0.2888212883486510063, 0.2619536148940473930, 5.928874456619472433 ) ) ; +#1741 = ADVANCED_FACE ( 'NONE', ( #4724 ), #1394, .F. ) ; +#1742 = CARTESIAN_POINT ( 'NONE', ( -0.6137281695053011799, -0.5564087180895109785, 5.355730255524930428 ) ) ; +#1743 = CARTESIAN_POINT ( 'NONE', ( 0.3530826467490166820, -1.146879007820175600, 5.641659190543360403 ) ) ; +#1744 = CARTESIAN_POINT ( 'NONE', ( -0.2325644156228960646, 0.5406285906850245571, 6.222851426380343831 ) ) ; +#1745 = CARTESIAN_POINT ( 'NONE', ( 0.7996834935816121703, -0.8947101821780669706, 5.593666288758528005 ) ) ; +#1746 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, -1.187171007058380079, 5.805572500925889834 ) ) ; +#1747 = CARTESIAN_POINT ( 'NONE', ( 0.7996834935816140577, 0.8947101821780630848, 5.593666288758528005 ) ) ; +#1748 = CYLINDRICAL_SURFACE ( 'NONE', #220, 0.1330000000000000626 ) ; +#1749 = ADVANCED_FACE ( 'NONE', ( #2693 ), #4332, .F. ) ; +#1750 = VERTEX_POINT ( 'NONE', #3950 ) ; +#1751 = CARTESIAN_POINT ( 'NONE', ( 0.4290832926986046791, 0.4607818666749370351, 6.271836282905964843 ) ) ; +#1752 = EDGE_LOOP ( 'NONE', ( #4838, #5214 ) ) ; +#1753 = CARTESIAN_POINT ( 'NONE', ( 0.1437960589423034341, 0.6328291730091074596, 6.292767798277511204 ) ) ; +#1754 = CARTESIAN_POINT ( 'NONE', ( 0.5827652469894749609, 0.06629900998144171165, 6.220460979184834649 ) ) ; +#1755 = ORIENTED_EDGE ( 'NONE', *, *, #101, .T. ) ; +#1756 = DIRECTION ( 'NONE', ( -0.5566703992264190326, -0.3213938048432700145, 0.7660444431189781245 ) ) ; +#1757 = CARTESIAN_POINT ( 'NONE', ( 0.5106857020158871441, 0.009568760178113587186, 6.130090086675864747 ) ) ; +#1758 = CARTESIAN_POINT ( 'NONE', ( -0.6178836241544879426, -0.2397118186727060785, 6.305523136322642053 ) ) ; +#1759 = EDGE_LOOP ( 'NONE', ( #2157, #2863, #1708, #1826, #4211, #2328, #885, #2299, #689 ) ) ; +#1760 = FACE_OUTER_BOUND ( 'NONE', #4708, .T. ) ; +#1761 = CARTESIAN_POINT ( 'NONE', ( -0.4456007110395364124, 0.7718030714092944944, 5.117418135287732817 ) ) ; +#1762 = VERTEX_POINT ( 'NONE', #313 ) ; +#1763 = CARTESIAN_POINT ( 'NONE', ( 0.4551265001645165009, -0.7883022221559508047, 5.096860619515669377 ) ) ; +#1764 = CARTESIAN_POINT ( 'NONE', ( 0.1092933891076582759, -0.6516145354421927216, 6.303710959645394851 ) ) ; +#1765 = AXIS2_PLACEMENT_3D ( 'NONE', #1570, #4742, #4000 ) ; +#1766 = EDGE_CURVE ( 'NONE', #537, #2603, #3662, .T. ) ; +#1767 = CARTESIAN_POINT ( 'NONE', ( -0.7105232702080964691, -0.4102208013201386061, 5.135162841671623291 ) ) ; +#1768 = CARTESIAN_POINT ( 'NONE', ( -1.172382584591904697, -0.2562145289942298620, 5.620048901762101146 ) ) ; +#1769 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#1770 = CARTESIAN_POINT ( 'NONE', ( -2.622574073917688943E-16, -0.5097749077943204421, 6.129000000000000448 ) ) ; +#1771 = ORIENTED_EDGE ( 'NONE', *, *, #3849, .F. ) ; +#1772 = CARTESIAN_POINT ( 'NONE', ( -3.581366610240468148E-17, -1.273684206347440940E-15, 5.986163717094036052 ) ) ; +#1773 = VECTOR ( 'NONE', #3289, 39.37007874015748143 ) ; +#1774 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#1775 = ORIENTED_EDGE ( 'NONE', *, *, #1533, .F. ) ; +#1776 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, -1.187171007058380079, 5.805572500925889834 ) ) ; +#1777 = ORIENTED_EDGE ( 'NONE', *, *, #4508, .T. ) ; +#1778 = EDGE_CURVE ( 'NONE', #4943, #2494, #4097, .T. ) ; +#1779 = DIRECTION ( 'NONE', ( 0.6634139481689382833, -0.3830222215594891733, -0.6427876096865393629 ) ) ; +#1780 = LINE ( 'NONE', #2919, #4600 ) ; +#1781 = EDGE_LOOP ( 'NONE', ( #84, #1102, #4297, #1777, #717, #1110, #4971 ) ) ; +#1782 = CARTESIAN_POINT ( 'NONE', ( 0.3738083802183780890, -0.1109744712793791638, 5.934447016155398380 ) ) ; +#1783 = AXIS2_PLACEMENT_3D ( 'NONE', #4555, #893, #1241 ) ; +#1784 = CARTESIAN_POINT ( 'NONE', ( -0.5350018693844065254, -0.02024565604439356944, 6.159485645247337438 ) ) ; +#1785 = ORIENTED_EDGE ( 'NONE', *, *, #4970, .F. ) ; +#1786 = CARTESIAN_POINT ( 'NONE', ( -0.2354905201450435415, 0.3854683494646816699, 6.059766075025349252 ) ) ; +#1787 = CARTESIAN_POINT ( 'NONE', ( 0.2415131970057584065, 1.175445742454203080, 5.777581622962260077 ) ) ; +#1788 = VERTEX_POINT ( 'NONE', #2799 ) ; +#1789 = TOROIDAL_SURFACE ( 'NONE', #2711, 0.8594421130351397320, 0.2999999999999999889 ) ; +#1790 = CARTESIAN_POINT ( 'NONE', ( -0.7887281695053012243, -0.2532998267649578805, 5.355730255524930428 ) ) ; +#1791 = CARTESIAN_POINT ( 'NONE', ( 0.1730553432008490045, -0.6122734109415440829, 6.279556534552800606 ) ) ; +#1792 = DIRECTION ( 'NONE', ( 0.001951631098638388368, -0.9226336559632448697, 0.3856725658119226630 ) ) ; +#1793 = CARTESIAN_POINT ( 'NONE', ( 1.199999999999999956, -1.213953767687837097E-15, 6.378999999999999559 ) ) ; +#1794 = CARTESIAN_POINT ( 'NONE', ( -1.628780242865984171E-17, 1.491999999999999993, 3.104000000000000092 ) ) ; +#1795 = EDGE_CURVE ( 'NONE', #1022, #1301, #2006, .T. ) ; +#1796 = ADVANCED_FACE ( 'NONE', ( #288 ), #2378, .F. ) ; +#1797 = CARTESIAN_POINT ( 'NONE', ( 0.9033154113265975393, -0.7899568516700798959, 5.783407949541925497 ) ) ; +#1798 = ORIENTED_EDGE ( 'NONE', *, *, #973, .F. ) ; +#1799 = CARTESIAN_POINT ( 'NONE', ( 1.250000000000000000, -1.330279032376149597E-15, 4.849972727250857929 ) ) ; +#1800 = CARTESIAN_POINT ( 'NONE', ( 0.6673867744249555312, -0.3853159338678449064, 5.130805054534240739 ) ) ; +#1801 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2198, #4680, #3374, #2223, #4997, #4653, #2967, #994, #2596, #2624, #4257, #2171, #4210, #2995, #5073, #564, #160, #3428, #3856, #183, #1019, #2801, #3149, #5227, #4443, #3200, #1121, #262, #5130, #1498, #3928, #4801, #4830, #1144, #3121, #744, #5204, #1928 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999999578115, 0.1874999999999365230, 0.2187499999999306111, 0.2343749999999279188, 0.2421874999999265865, 0.2460937499999313882, 0.2480468749999338030, 0.2499999999999362177, 0.3750000000000915934, 0.4375000000001735279, 0.4687500000002141620, 0.4843750000002298162, 0.4921875000002375877, 0.4960937500002411960, 0.5000000000002448042, 0.6250000000002781109, 0.6875000000002983169, 0.7187500000003076428, 0.7343750000003126388, 0.7421875000003151923, 0.7460937500003135270, 0.7500000000003118616, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#1802 = EDGE_LOOP ( 'NONE', ( #1413, #3859, #1990, #2286, #4616, #844 ) ) ; +#1803 = DIRECTION ( 'NONE', ( -0.6634139481689369511, 0.3830222215594900614, -0.6427876096865400291 ) ) ; +#1804 = EDGE_CURVE ( 'NONE', #5155, #3806, #4258, .T. ) ; +#1805 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -6.892264536872972008E-16, 3.104000000000000092 ) ) ; +#1806 = VERTEX_POINT ( 'NONE', #4857 ) ; +#1807 = EDGE_CURVE ( 'NONE', #3053, #455, #5105, .T. ) ; +#1808 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#1809 = CARTESIAN_POINT ( 'NONE', ( -0.5135891943054257114, -0.4174594402630980583, 6.304736219313827661 ) ) ; +#1810 = VERTEX_POINT ( 'NONE', #1199 ) ; +#1811 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#1812 = CARTESIAN_POINT ( 'NONE', ( -0.4449245162833037615, 0.7706318677356882585, 5.130805054534240739 ) ) ; +#1813 = ORIENTED_EDGE ( 'NONE', *, *, #2271, .F. ) ; +#1814 = CARTESIAN_POINT ( 'NONE', ( -0.4217441856954015078, 0.02585780004603400323, 6.025025194222311420 ) ) ; +#1815 = EDGE_CURVE ( 'NONE', #4308, #1879, #742, .T. ) ; +#1816 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #3639 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #3042, #1525, #714 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) ); +#1817 = CARTESIAN_POINT ( 'NONE', ( -0.8298275571658719763, 0.8668239045204632065, 5.672674617210165415 ) ) ; +#1818 = CARTESIAN_POINT ( 'NONE', ( -2.622574073917688943E-16, -0.5097749077943204421, 6.129000000000000448 ) ) ; +#1819 = DIRECTION ( 'NONE', ( 0.5566703992264190326, 0.3213938048432700145, -0.7660444431189781245 ) ) ; +#1820 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#1821 = CARTESIAN_POINT ( 'NONE', ( -0.2496971457905151626, -0.4648913831319437806, 6.150277400615682843 ) ) ; +#1822 = CARTESIAN_POINT ( 'NONE', ( 0.8318599839157572173, -0.8648701167951229341, 5.677078363351354184 ) ) ; +#1823 = ORIENTED_EDGE ( 'NONE', *, *, #4852, .F. ) ; +#1824 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#1825 = FACE_OUTER_BOUND ( 'NONE', #3150, .T. ) ; +#1826 = ORIENTED_EDGE ( 'NONE', *, *, #2084, .T. ) ; +#1827 = CARTESIAN_POINT ( 'NONE', ( -1.115620250748909470, -0.4420310578669118251, 5.805572500925889834 ) ) ; +#1828 = EDGE_CURVE ( 'NONE', #4722, #1178, #259, .T. ) ; +#1829 = CARTESIAN_POINT ( 'NONE', ( 0.7105232702080964691, 0.4102208013201370518, 5.135162841671623291 ) ) ; +#1830 = EDGE_LOOP ( 'NONE', ( #3723, #952, #104, #4190 ) ) ; +#1831 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#1832 = CARTESIAN_POINT ( 'NONE', ( -0.6188258172896935472, -0.1712289540647814190, 6.285725290088230111 ) ) ; +#1833 = ORIENTED_EDGE ( 'NONE', *, *, #1464, .F. ) ; +#1834 = CARTESIAN_POINT ( 'NONE', ( 0.2356302444112466088, -0.3861373756487158637, 6.060531982409986362 ) ) ; +#1835 = CARTESIAN_POINT ( 'NONE', ( 0.3357777433346410545, 1.152063697527722308, 5.672674617218179449 ) ) ; +#1836 = ORIENTED_EDGE ( 'NONE', *, *, #2159, .F. ) ; +#1837 = CARTESIAN_POINT ( 'NONE', ( 1.155962650821236837, -0.3220913716735560040, 5.724489629099501542 ) ) ; +#1838 = DIRECTION ( 'NONE', ( 0.5566703992264192546, 0.3213938048432691819, 0.7660444431189783465 ) ) ; +#1839 = EDGE_LOOP ( 'NONE', ( #4237, #3154, #21, #542, #2991, #463, #755, #677 ) ) ; +#1840 = FACE_OUTER_BOUND ( 'NONE', #2498, .T. ) ; +#1841 = CARTESIAN_POINT ( 'NONE', ( 0.3812802425487583635, -0.4711274618017712301, 6.243538018998932237 ) ) ; +#1842 = ADVANCED_FACE ( 'NONE', ( #3117 ), #2797, .F. ) ; +#1843 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, 1.109813176013880076, 5.713381027863315254 ) ) ; +#1844 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, 0.8125000000000000000, 3.479000000000000092 ) ) ; +#1845 = AXIS2_PLACEMENT_3D ( 'NONE', #465, #4562, #1222 ) ; +#1846 = CARTESIAN_POINT ( 'NONE', ( -0.1787812753136231725, 0.6071306648611011214, 6.275696391325505274 ) ) ; +#1847 = VERTEX_POINT ( 'NONE', #2721 ) ; +#1848 = AXIS2_PLACEMENT_3D ( 'NONE', #4813, #3963, #1158 ) ; +#1849 = DIRECTION ( 'NONE', ( 0.4999999999999998890, 0.8660254037844388186, 0.000000000000000000 ) ) ; +#1850 = ORIENTED_EDGE ( 'NONE', *, *, #5064, .T. ) ; +#1851 = CARTESIAN_POINT ( 'NONE', ( -1.628780242865984171E-17, 1.491999999999999993, 3.479000000000000092 ) ) ; +#1852 = VECTOR ( 'NONE', #1135, 39.37007874015748854 ) ; +#1853 = AXIS2_PLACEMENT_3D ( 'NONE', #4229, #1774, #1043 ) ; +#1854 = CIRCLE ( 'NONE', #305, 0.1330000000000000626 ) ; +#1855 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, -2.220446049250309876E-16 ) ) ; +#1856 = EDGE_LOOP ( 'NONE', ( #4501, #3002 ) ) ; +#1857 = CARTESIAN_POINT ( 'NONE', ( -0.2587350526908892001, 0.2925211669172392281, 5.960763053385467636 ) ) ; +#1858 = EDGE_CURVE ( 'NONE', #5108, #3880, #1351, .T. ) ; +#1859 = CARTESIAN_POINT ( 'NONE', ( -0.5844919842636696616, 0.06892565615869532258, 6.222867768771227936 ) ) ; +#1860 = VERTEX_POINT ( 'NONE', #4775 ) ; +#1861 = CARTESIAN_POINT ( 'NONE', ( -0.1340785271574807258, 0.3663056890343018290, 5.973464259765392192 ) ) ; +#1862 = CARTESIAN_POINT ( 'NONE', ( 0.3415867867271143443, 1.150354464234988550, 5.662768512582991853 ) ) ; +#1863 = CARTESIAN_POINT ( 'NONE', ( 1.159736011723655480, -0.3082312259663080867, 5.706894369584791349 ) ) ; +#1864 = CIRCLE ( 'NONE', #4839, 0.2500000000000000555 ) ; +#1865 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, -1.023275245660230315, 5.610249138468685004 ) ) ; +#1866 = ORIENTED_EDGE ( 'NONE', *, *, #1331, .T. ) ; +#1867 = AXIS2_PLACEMENT_3D ( 'NONE', #2304, #3074, #240 ) ; +#1868 = CARTESIAN_POINT ( 'NONE', ( -0.3252932938004067798, 0.4684460457684253565, 6.201076894125096217 ) ) ; +#1869 = CARTESIAN_POINT ( 'NONE', ( 0.3026433922806039956, -0.4621385815321054080, 6.179690170105634373 ) ) ; +#1870 = CARTESIAN_POINT ( 'NONE', ( -1.160712405206671738, 0.3045300546853654811, 5.701826644397219646 ) ) ; +#1871 = AXIS2_PLACEMENT_3D ( 'NONE', #3606, #3581, #4826 ) ; +#1872 = CARTESIAN_POINT ( 'NONE', ( -0.2287658773652733180, 1.311297632095822285, 4.658015363927715313 ) ) ; +#1873 = EDGE_CURVE ( 'NONE', #587, #4805, #3974, .T. ) ; +#1874 = CARTESIAN_POINT ( 'NONE', ( 0.9154102982437339886, -0.7759127600637119038, 5.793167151937852033 ) ) ; +#1875 = VERTEX_POINT ( 'NONE', #1334 ) ; +#1876 = CYLINDRICAL_SURFACE ( 'NONE', #4582, 0.05000000000000003053 ) ; +#1877 = CARTESIAN_POINT ( 'NONE', ( -0.9102530003290353333, -3.749563932074838795E-16, 5.096860619515669377 ) ) ; +#1878 = DIRECTION ( 'NONE', ( -3.061616997868378704E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +#1879 = VERTEX_POINT ( 'NONE', #12 ) ; +#1880 = LINE ( 'NONE', #546, #3349 ) ; +#1881 = CARTESIAN_POINT ( 'NONE', ( 0.1441924260139419434, -0.3622802205436830847, 5.986163717094036052 ) ) ; +#1882 = ORIENTED_EDGE ( 'NONE', *, *, #3929, .T. ) ; +#1883 = CARTESIAN_POINT ( 'NONE', ( -0.3712691292857523973, 0.1191497654163625186, 5.928874456619706912 ) ) ; +#1884 = ORIENTED_EDGE ( 'NONE', *, *, #4547, .F. ) ; +#1885 = CARTESIAN_POINT ( 'NONE', ( 0.2354905201450435970, -0.3854683494646983788, 6.059766075025368792 ) ) ; +#1886 = CARTESIAN_POINT ( 'NONE', ( -0.8736264038827145084, -0.7064610336692204173, 5.713381027863315254 ) ) ; +#1887 = EDGE_CURVE ( 'NONE', #2751, #4475, #4790, .T. ) ; +#1888 = CARTESIAN_POINT ( 'NONE', ( -0.4614747272720908788, 0.008414666543433859877, 6.071486235013382249 ) ) ; +#1889 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#1890 = ORIENTED_EDGE ( 'NONE', *, *, #4720, .F. ) ; +#1891 = DIRECTION ( 'NONE', ( 0.5000000000000003331, 0.8660254037844383745, 2.557337244648731836E-16 ) ) ; +#1892 = CARTESIAN_POINT ( 'NONE', ( -0.2615267298973514842, 1.171158283391241284, 5.762534315020332976 ) ) ; +#1893 = ADVANCED_FACE ( 'NONE', ( #4091 ), #2427, .F. ) ; +#1894 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#1895 = CARTESIAN_POINT ( 'NONE', ( 0.2331671936850714666, 0.3672705267855443378, 6.039897479784305467 ) ) ; +#1896 = EDGE_CURVE ( 'NONE', #2448, #2872, #5112, .T. ) ; +#1897 = CARTESIAN_POINT ( 'NONE', ( 0.8086634578361365788, -0.6777112231187870650, 5.629050124990183868 ) ) ; +#1898 = CARTESIAN_POINT ( 'NONE', ( -0.6250000000000000000, -1.082531754730549300, 4.849972727250857929 ) ) ; +#1899 = CIRCLE ( 'NONE', #4878, 0.2500000000000000000 ) ; +#1900 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#1901 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) ); +#1902 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #3179, #4808, #1336, #2144 ), + .UNSPECIFIED., .F., .F. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 6.136830048234790169, 6.429540566124390288 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9928727816990980948, 0.9928727816990980948, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#1903 = CARTESIAN_POINT ( 'NONE', ( -1.191531308125826305, -0.1644751193384669241, 5.562957933457567172 ) ) ; +#1904 = ORIENTED_EDGE ( 'NONE', *, *, #27, .F. ) ; +#1905 = EDGE_LOOP ( 'NONE', ( #748, #19, #804, #2147, #3729, #1065, #5021, #1018 ) ) ; +#1906 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#1907 = DIRECTION ( 'NONE', ( 0.4999999999999998335, -0.8660254037844385966, -1.922962686383559133E-16 ) ) ; +#1908 = EDGE_CURVE ( 'NONE', #1342, #33, #42, .T. ) ; +#1909 = ORIENTED_EDGE ( 'NONE', *, *, #4768, .F. ) ; +#1910 = ORIENTED_EDGE ( 'NONE', *, *, #2066, .F. ) ; +#1911 = CARTESIAN_POINT ( 'NONE', ( 0.1895952208955679896, -0.3787403356030857315, 6.026227888684620559 ) ) ; +#1912 = CARTESIAN_POINT ( 'NONE', ( 0.2837143861204783901, -0.4524680740091245879, 6.157868532995466992 ) ) ; +#1913 = CARTESIAN_POINT ( 'NONE', ( 0.3389132581696850388, 1.151144702083971350, 5.667384321153005722 ) ) ; +#1914 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, -0.8125000000000000000, 3.479000000000000092 ) ) ; +#1915 = LINE ( 'NONE', #4022, #4155 ) ; +#1916 = ORIENTED_EDGE ( 'NONE', *, *, #4586, .T. ) ; +#1917 = AXIS2_PLACEMENT_3D ( 'NONE', #5216, #1109, #729 ) ; +#1918 = CARTESIAN_POINT ( 'NONE', ( 0.9102530003290334459, -8.153941728464154089E-16, 5.096860619515669377 ) ) ; +#1919 = CARTESIAN_POINT ( 'NONE', ( 0.3889720204108926827, -0.4703118932504577465, 6.248577449787990012 ) ) ; +#1920 = CARTESIAN_POINT ( 'NONE', ( 0.4215335734632513764, -0.02599544383201087688, 6.024784635834730118 ) ) ; +#1921 = CARTESIAN_POINT ( 'NONE', ( 0.2332011416223344347, 0.3535644455331379277, 6.026227888684535294 ) ) ; +#1922 = CARTESIAN_POINT ( 'NONE', ( -0.8736264038827166178, 0.7064610336692185300, 5.713381027863315254 ) ) ; +#1923 = ADVANCED_FACE ( 'NONE', ( #4120 ), #4910, .F. ) ; +#1924 = ORIENTED_EDGE ( 'NONE', *, *, #2639, .F. ) ; +#1925 = CARTESIAN_POINT ( 'NONE', ( 0.4814499562958607370, 0.4381907727486066828, 6.294752585728367933 ) ) ; +#1926 = CARTESIAN_POINT ( 'NONE', ( -0.2367886236709296210, -0.3909308433867861865, 6.066166163763205610 ) ) ; +#1927 = ORIENTED_EDGE ( 'NONE', *, *, #5133, .F. ) ; +#1928 = CARTESIAN_POINT ( 'NONE', ( 0.9406202507489094256, 0.7451399491914626472, 5.805572500925889834 ) ) ; +#1929 = AXIS2_PLACEMENT_3D ( 'NONE', #1466, #122, #3395 ) ; +#1930 = CARTESIAN_POINT ( 'NONE', ( -0.2370978804101721016, 0.3922355738743448228, 6.067633472858961596 ) ) ; +#1931 = CARTESIAN_POINT ( 'NONE', ( 0.8301118274381791284, 0.6957716379750336078, 5.661614086336346219 ) ) ; +#1932 = ORIENTED_EDGE ( 'NONE', *, *, #4202, .T. ) ; +#1933 = ORIENTED_EDGE ( 'NONE', *, *, #3857, .F. ) ; +#1934 = CARTESIAN_POINT ( 'NONE', ( 0.2941784170755725181, -0.2559205445849461746, 5.924084772063211268 ) ) ; +#1935 = ADVANCED_FACE ( 'NONE', ( #3341 ), #4177, .F. ) ; +#1936 = CARTESIAN_POINT ( 'NONE', ( -0.2130634822356153313, 0.3938295916161040910, 6.055046826852485964 ) ) ; +#1937 = CARTESIAN_POINT ( 'NONE', ( 0.2975453862487990597, 1.162523161768564739, 5.726267908649969485 ) ) ; +#1938 = CIRCLE ( 'NONE', #569, 1.250000000000000000 ) ; +#1939 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#1940 = CARTESIAN_POINT ( 'NONE', ( -0.1875000000295494185, -1.066784040100515751, 5.661614435832544423 ) ) ; +#1941 = ORIENTED_EDGE ( 'NONE', *, *, #5149, .F. ) ; +#1942 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1089, #1490, #1035, #174, #3920, #3894, #2715, #2663, #3443, #3088, #4352, #626, #5065, #227, #1410, #1870, #4719, #2686, #254, #2025, #3575, #2845, #3657, #2818, #3166, #306, #1945, #4876, #5198, #1598, #4769, #1113, #4482, #5275, #359, #5171, #1544, #734 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1250000000004390377, 0.1875000000006584178, 0.2187500000007680800, 0.2343750000008280598, 0.2421875000008528456, 0.2460937500008705536, 0.2480468750008794909, 0.2500000000008884005, 0.3750000000009440781, 0.4375000000009719447, 0.4687500000009900969, 0.4843750000009945933, 0.4921875000009965362, 0.4960937500009930945, 0.5000000000009896528, 0.6250000000007474021, 0.6875000000006264989, 0.7187500000005625500, 0.7343750000005303535, 0.7421875000005139222, 0.7460937500005057066, 0.7500000000004976020, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#1943 = LINE ( 'NONE', #3218, #2128 ) ; +#1944 = CARTESIAN_POINT ( 'NONE', ( -1.072336516388187722, -0.5512727270244710542, 5.825994415577062213 ) ) ; +#1945 = CARTESIAN_POINT ( 'NONE', ( -1.146287824738473349, 0.3550171052386134618, 5.758966931940483036 ) ) ; +#1946 = FACE_OUTER_BOUND ( 'NONE', #182, .T. ) ; +#1947 = CARTESIAN_POINT ( 'NONE', ( 0.8257476488976599471, -0.6930810761991885727, 5.655514440896552308 ) ) ; +#1948 = AXIS2_PLACEMENT_3D ( 'NONE', #1357, #3415, #3029 ) ; +#1949 = CARTESIAN_POINT ( 'NONE', ( -0.2326210110055114688, -0.5405178875059422072, 6.222756865013303162 ) ) ; +#1950 = CARTESIAN_POINT ( 'NONE', ( 1.048626403882720659, 0.4033521423446653764, 5.713381027863315254 ) ) ; +#1951 = CARTESIAN_POINT ( 'NONE', ( -0.3709316772609715929, -0.1201934545548222488, 5.928196182617258891 ) ) ; +#1952 = AXIS2_PLACEMENT_3D ( 'NONE', #4617, #953, #461 ) ; +#1953 = CARTESIAN_POINT ( 'NONE', ( -0.2330341209427124471, -0.3609623113384040072, 6.033509053111409060 ) ) ; +#1954 = EDGE_CURVE ( 'NONE', #2179, #3249, #4815, .T. ) ; +#1955 = ORIENTED_EDGE ( 'NONE', *, *, #2997, .T. ) ; +#1956 = CARTESIAN_POINT ( 'NONE', ( 0.1828304023430764313, 0.3749429446040448699, 6.018156986631364447 ) ) ; +#1957 = CARTESIAN_POINT ( 'NONE', ( -0.2358497986166597227, 0.3871667474002420950, 6.061713265494897307 ) ) ; +#1958 = CARTESIAN_POINT ( 'NONE', ( 1.167030379172962817, 0.2793565027597713635, 5.662772704060594187 ) ) ; +#1959 = ORIENTED_EDGE ( 'NONE', *, *, #888, .F. ) ; +#1960 = EDGE_CURVE ( 'NONE', #4361, #3108, #776, .T. ) ; +#1961 = EDGE_LOOP ( 'NONE', ( #214, #3183 ) ) ; +#1962 = CARTESIAN_POINT ( 'NONE', ( 0.2245698881449084972, -0.4050798377453493360, 6.073407060711116578 ) ) ; +#1963 = EDGE_CURVE ( 'NONE', #4758, #3809, #4543, .T. ) ; +#1964 = CARTESIAN_POINT ( 'NONE', ( -0.8636662756094495297, -0.8331589879004998034, 5.735635065154808920 ) ) ; +#1965 = CARTESIAN_POINT ( 'NONE', ( -0.2045130351029152971, 0.3875891217483873885, 6.043708584764022618 ) ) ; +#1966 = CARTESIAN_POINT ( 'NONE', ( -0.3389132581711193359, -1.151144702083497950, 5.667384321150491289 ) ) ; +#1967 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2068, #1211, #1129, #2782, #5213, #807, #837, #2437, #4424, #2042, #4474, #3213, #3701, #23, #400, #3242, #4866, #1237, #1560, #3674, #3989, #1185, #2388, #4810, #1154, #4103, #757, #5292, #325, #1966, #3618, #3158, #3267, #4018, #426, #4892, #5236, #4500 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999999574229, 0.1874999999999383549, 0.2187499999999289735, 0.2343749999999271971, 0.2421874999999236167, 0.2460937499999192035, 0.2499999999999147904, 0.3749999999996968536, 0.4374999999995915489, 0.4687499999995389799, 0.4843749999995126121, 0.4921874999994959032, 0.4960937499994913513, 0.4999999999994867994, 0.6249999999994676481, 0.6874999999994581001, 0.7187499999994575450, 0.7343749999994531041, 0.7421874999994469979, 0.7460937499994436672, 0.7480468749994461097, 0.7499999999994485522, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#1968 = EDGE_LOOP ( 'NONE', ( #4751, #4703, #3534, #918 ) ) ; +#1969 = DIRECTION ( 'NONE', ( 0.001951631098638388368, 0.9226336559632448697, 0.3856725658119226630 ) ) ; +#1970 = CARTESIAN_POINT ( 'NONE', ( 0.5078194151786440402, -0.2931896760531110258, 6.064721239031358735 ) ) ; +#1971 = ORIENTED_EDGE ( 'NONE', *, *, #3118, .T. ) ; +#1972 = VECTOR ( 'NONE', #3035, 39.37007874015748143 ) ; +#1973 = FACE_OUTER_BOUND ( 'NONE', #3405, .T. ) ; +#1974 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#1975 = EDGE_CURVE ( 'NONE', #1561, #2774, #3632, .T. ) ; +#1976 = CARTESIAN_POINT ( 'NONE', ( 0.3858400872864291564, -0.05626580631046031872, 5.986163717094036052 ) ) ; +#1977 = CARTESIAN_POINT ( 'NONE', ( 0.5285913706609557394, -1.080458275912689059, 5.522824837521431718 ) ) ; +#1978 = CARTESIAN_POINT ( 'NONE', ( -0.8430224887347315121, 0.7032290953165417635, 5.679382527199969388 ) ) ; +#1979 = CARTESIAN_POINT ( 'NONE', ( -0.2384294091710864316, -0.5280668512508401857, 6.211947421632657118 ) ) ; +#1980 = CARTESIAN_POINT ( 'NONE', ( 0.7105232702080964691, 0.4102208013201370518, 5.135162841671623291 ) ) ; +#1981 = APPLICATION_PROTOCOL_DEFINITION ( 'draft international standard', 'automotive_design', 1998, #2204 ) ; +#1982 = CARTESIAN_POINT ( 'NONE', ( -0.2354846354879595871, -0.3853746170540231497, 6.059701069192001910 ) ) ; +#1983 = SURFACE_STYLE_FILL_AREA ( #4334 ) ; +#1984 = CARTESIAN_POINT ( 'NONE', ( 0.2009515817498467027, -0.5860286718233507219, 6.259648644087566716 ) ) ; +#1985 = CARTESIAN_POINT ( 'NONE', ( 1.134502196018124742, 0.3910313043662512200, 5.785650172725943285 ) ) ; +#1986 = ORIENTED_EDGE ( 'NONE', *, *, #3803, .T. ) ; +#1987 = ORIENTED_EDGE ( 'NONE', *, *, #1563, .F. ) ; +#1988 = CARTESIAN_POINT ( 'NONE', ( 0.2045130351016685999, -0.3875891217473666495, 6.043708584762566893 ) ) ; +#1989 = CARTESIAN_POINT ( 'NONE', ( -1.137373148998084060, -0.3826034534377416585, 5.780336627630888735 ) ) ; +#1990 = ORIENTED_EDGE ( 'NONE', *, *, #2877, .F. ) ; +#1991 = EDGE_CURVE ( 'NONE', #3249, #2179, #5074, .T. ) ; +#1992 = ADVANCED_FACE ( 'NONE', ( #3065 ), #3089, .T. ) ; +#1993 = LINE ( 'NONE', #2041, #3134 ) ; +#1994 = FACE_OUTER_BOUND ( 'NONE', #1032, .T. ) ; +#1995 = VERTEX_POINT ( 'NONE', #1794 ) ; +#1996 = CYLINDRICAL_SURFACE ( 'NONE', #2336, 0.04999999999999994726 ) ; +#1997 = ORIENTED_EDGE ( 'NONE', *, *, #4508, .F. ) ; +#1998 = LINE ( 'NONE', #5196, #3752 ) ; +#1999 = CARTESIAN_POINT ( 'NONE', ( 0.9736823578055235906, -0.3600831771678421611, 5.610249138468685004 ) ) ; +#2000 = CARTESIAN_POINT ( 'NONE', ( 0.5349920402363709249, -0.02020266384996500034, 6.159507043090530765 ) ) ; +#2001 = CARTESIAN_POINT ( 'NONE', ( 0.2412322727828691005, 0.4045611020131233970, 6.082756626977823267 ) ) ; +#2002 = CARTESIAN_POINT ( 'NONE', ( 0.8291185481888603270, -0.6951902277785038109, 5.660230218894460208 ) ) ; +#2003 = ORIENTED_EDGE ( 'NONE', *, *, #5123, .T. ) ; +#2004 = ADVANCED_FACE ( 'NONE', ( #1411 ), #5066, .F. ) ; +#2005 = CARTESIAN_POINT ( 'NONE', ( 0.4290832926986046791, 0.4607818666749370351, 6.271836282905964843 ) ) ; +#2006 = LINE ( 'NONE', #3633, #3229 ) ; +#2007 = DIRECTION ( 'NONE', ( -0.4999999999999998335, -0.8660254037844385966, 5.015931217523668013E-16 ) ) ; +#2008 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -6.892264536872972008E-16, 3.104000000000000092 ) ) ; +#2009 = CARTESIAN_POINT ( 'NONE', ( 0.8430331626937410672, 0.7032287736015432333, 5.679393789334560516 ) ) ; +#2010 = ORIENTED_EDGE ( 'NONE', *, *, #2543, .F. ) ; +#2011 = DIRECTION ( 'NONE', ( 6.123233995736769734E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +#2012 = AXIS2_PLACEMENT_3D ( 'NONE', #2532, #35, #3278 ) ; +#2013 = ORIENTED_EDGE ( 'NONE', *, *, #3438, .T. ) ; +#2014 = DIRECTION ( 'NONE', ( -7.771561172376094797E-16, -0.7660444431189782355, 0.6427876096865392519 ) ) ; +#2015 = CARTESIAN_POINT ( 'NONE', ( -6.491667409773129230E-16, -0.9824517527273249895, 5.406025211417605725 ) ) ; +#2016 = ORIENTED_EDGE ( 'NONE', *, *, #4833, .F. ) ; +#2017 = CARTESIAN_POINT ( 'NONE', ( -0.9545816565475355731, -0.3490553821548299518, 5.195033353103291951 ) ) ; +#2018 = ADVANCED_FACE ( 'NONE', ( #228 ), #532, .F. ) ; +#2019 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -7.724931805341829553E-16, 3.479000000000000092 ) ) ; +#2020 = ORIENTED_EDGE ( 'NONE', *, *, #4182, .F. ) ; +#2021 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#2022 = CIRCLE ( 'NONE', #4067, 0.2500000000000000555 ) ; +#2023 = CARTESIAN_POINT ( 'NONE', ( 0.9899106880392991581, -0.3598290941356302453, 5.626846815561940218 ) ) ; +#2024 = ORIENTED_EDGE ( 'NONE', *, *, #54, .F. ) ; +#2025 = CARTESIAN_POINT ( 'NONE', ( -1.156602477596506917, 0.3197858658813698685, 5.721697987462379231 ) ) ; +#2026 = DIRECTION ( 'NONE', ( -1.219986648345619686E-16, -0.9961946980917461003, -0.08715574274765000573 ) ) ; +#2027 = CARTESIAN_POINT ( 'NONE', ( 0.2416476612724870188, 0.3060144142332220651, 5.986163717094036052 ) ) ; +#2028 = CARTESIAN_POINT ( 'NONE', ( -0.8146660702581790536, -0.8810873407353670972, 5.636485113367825761 ) ) ; +#2029 = CARTESIAN_POINT ( 'NONE', ( 0.5670534630588552893, 0.3659825172622370171, 6.315368908632049916 ) ) ; +#2030 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #245, #1861, #3103, #1482, #3488, #2678, #4315, #4660, #595, #1027, #2705, #642, #4733, #5162, #1508, #3130, #3458, #2656, #4293, #4761, #3840, #618, #1002, #1105, #5113, #2253, #3884, #3911, #4368, #167 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1250000000000373590, 0.1875000000000529299, 0.2187500000000636713, 0.2343750000000719980, 0.2421875000000760780, 0.2460937500000751899, 0.2480468750000776879, 0.2500000000000801581, 0.5000000000000643929, 0.6250000000000563993, 0.6875000000000525135, 0.7187500000000505151, 0.7343750000000516254, 0.7421875000000521805, 0.7460937500000524025, 0.7480468750000527356, 0.7500000000000529576, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#2031 = CARTESIAN_POINT ( 'NONE', ( -0.2009515817495626522, 0.5860286718236501491, 6.259648644087802971 ) ) ; +#2032 = VECTOR ( 'NONE', #2852, 39.37007874015748143 ) ; +#2033 = CARTESIAN_POINT ( 'NONE', ( 0.2157792334209192309, 0.3964082323762924132, 6.059316101328127147 ) ) ; +#2034 = CARTESIAN_POINT ( 'NONE', ( 0.2317785454502493958, -0.5421543247493855189, 6.224142810813210858 ) ) ; +#2035 = VECTOR ( 'NONE', #3324, 39.37007874015748854 ) ; +#2036 = CARTESIAN_POINT ( 'NONE', ( 1.159870660034169498, 0.3077814515423301645, 5.706513037778883302 ) ) ; +#2037 = EDGE_CURVE ( 'NONE', #1879, #2626, #2186, .T. ) ; +#2038 = ORIENTED_EDGE ( 'NONE', *, *, #4336, .T. ) ; +#2039 = LINE ( 'NONE', #863, #1507 ) ; +#2040 = ORIENTED_EDGE ( 'NONE', *, *, #4290, .T. ) ; +#2041 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, 0.6794999999999999929, 3.953999999999999737 ) ) ; +#2042 = CARTESIAN_POINT ( 'NONE', ( -0.2408186330219165006, -1.175588154601831858, 5.778047900398660452 ) ) ; +#2043 = ORIENTED_EDGE ( 'NONE', *, *, #779, .F. ) ; +#2044 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, -0.9455000000000001181, 3.104000000000000092 ) ) ; +#2045 = CARTESIAN_POINT ( 'NONE', ( 0.4509326997198387366, 0.01142054842578367133, 6.059013187279421508 ) ) ; +#2046 = CARTESIAN_POINT ( 'NONE', ( -0.1874999999999995282, 0.5863793521062106162, 6.064721239031350741 ) ) ; +#2047 = ORIENTED_EDGE ( 'NONE', *, *, #315, .F. ) ; +#2048 = CARTESIAN_POINT ( 'NONE', ( -0.4290832926986046791, -0.4607818666749385894, 6.271836282905964843 ) ) ; +#2049 = CARTESIAN_POINT ( 'NONE', ( -5.043340017179858374E-16, -1.066544210837059081, 5.661815083166008122 ) ) ; +#2050 = ORIENTED_EDGE ( 'NONE', *, *, #4422, .F. ) ; +#2051 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#2052 = DIRECTION ( 'NONE', ( 4.370956789862821150E-16, 0.6427876096865391409, -0.7660444431189782355 ) ) ; +#2053 = CARTESIAN_POINT ( 'NONE', ( 0.2884842293452735129, 0.2623255908286813431, 5.929187335109644685 ) ) ; +#2054 = CARTESIAN_POINT ( 'NONE', ( -0.8568680329754767566, -0.8400941840096384228, 5.724403585564704855 ) ) ; +#2055 = EDGE_CURVE ( 'NONE', #3616, #1675, #3507, .T. ) ; +#2056 = CARTESIAN_POINT ( 'NONE', ( -0.5999999999999999778, -1.039230484541330712, 5.473691469039889235 ) ) ; +#2057 = DIRECTION ( 'NONE', ( 0.6634139481689388385, 0.3830222215594888957, 0.6427876096865389188 ) ) ; +#2058 = EDGE_CURVE ( 'NONE', #1806, #3586, #3461, .T. ) ; +#2059 = CARTESIAN_POINT ( 'NONE', ( 0.2499676822388144370, 0.4734477930975836690, 6.159485386716823108 ) ) ; +#2060 = CARTESIAN_POINT ( 'NONE', ( -2.622574073917688943E-16, -0.5863793521062189429, 6.064721239031358735 ) ) ; +#2061 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, -1.023275245660240085, 5.610249138468685004 ) ) ; +#2062 = CARTESIAN_POINT ( 'NONE', ( 0.2499999047389477036, 0.4827799057886522083, 6.169330842533096160 ) ) ; +#2063 = VERTEX_POINT ( 'NONE', #4248 ) ; +#2064 = CARTESIAN_POINT ( 'NONE', ( 0.1843949989716160143, -0.3761160450697988988, 6.020663318477987858 ) ) ; +#2065 = ORIENTED_EDGE ( 'NONE', *, *, #297, .T. ) ; +#2066 = EDGE_CURVE ( 'NONE', #3423, #4308, #4855, .T. ) ; +#2067 = CARTESIAN_POINT ( 'NONE', ( 0.1733641320422247001, 0.6119960722353907645, 6.279348364226779111 ) ) ; +#2068 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, -1.187171007058380079, 5.805572500925889834 ) ) ; +#2069 = ORIENTED_EDGE ( 'NONE', *, *, #1804, .T. ) ; +#2070 = CARTESIAN_POINT ( 'NONE', ( 0.1237034973706621216, -0.3699242798557721978, 5.962336334503471669 ) ) ; +#2071 = CARTESIAN_POINT ( 'NONE', ( -0.8719867810375157013, -0.3013692085454358072, 5.470303972386260760 ) ) ; +#2072 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#2073 = ORIENTED_EDGE ( 'NONE', *, *, #1975, .T. ) ; +#2074 = DIRECTION ( 'NONE', ( -0.4999999999999998335, -0.8660254037844385966, -1.922962686383559133E-16 ) ) ; +#2075 = CARTESIAN_POINT ( 'NONE', ( -0.2429768616360182543, 1.175143127396453879, 5.776585064013711524 ) ) ; +#2076 = ORIENTED_EDGE ( 'NONE', *, *, #2714, .T. ) ; +#2077 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#2078 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#2079 = CARTESIAN_POINT ( 'NONE', ( 0.3240740676066606873, 0.2185285410405100048, 5.903217844722049357 ) ) ; +#2080 = VECTOR ( 'NONE', #2959, 39.37007874015748854 ) ; +#2081 = CARTESIAN_POINT ( 'NONE', ( 0.3685214901090602124, 0.4719819238795801009, 6.234903360087704627 ) ) ; +#2082 = CARTESIAN_POINT ( 'NONE', ( 0.1973048216523254350, -1.183883069797489807, 5.801654089883005128 ) ) ; +#2083 = CARTESIAN_POINT ( 'NONE', ( -0.2390743834846311144, 0.5278996433137270738, 6.211979336397693174 ) ) ; +#2084 = EDGE_CURVE ( 'NONE', #4068, #568, #4150, .T. ) ; +#2085 = DIRECTION ( 'NONE', ( 0.3479270227670980820, -0.6026272807587881308, -0.7181832268395661467 ) ) ; +#2086 = CARTESIAN_POINT ( 'NONE', ( -1.131579923050860303, -0.3994324224352372443, 5.790448158961644332 ) ) ; +#2087 = DIRECTION ( 'NONE', ( 3.571570303986756206E-16, 0.7660444431189782355, 0.6427876096865391409 ) ) ; +#2088 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, -0.8125000000000000000, 3.953999999999999737 ) ) ; +#2089 = EDGE_LOOP ( 'NONE', ( #565, #3734, #2305, #4887 ) ) ; +#2090 = CARTESIAN_POINT ( 'NONE', ( 8.371932006857165704E-16, 1.066544210837059081, 5.661815083166008122 ) ) ; +#2091 = VERTEX_POINT ( 'NONE', #5017 ) ; +#2092 = CARTESIAN_POINT ( 'NONE', ( 0.06085536670507340345, 0.6684781909130356192, 6.312584335166653737 ) ) ; +#2093 = PLANE ( 'NONE', #2287 ) ; +#2094 = ORIENTED_EDGE ( 'NONE', *, *, #1010, .F. ) ; +#2095 = CARTESIAN_POINT ( 'NONE', ( 0.09489975003242220875, -0.3782035920309011479, 5.937453763998151501 ) ) ; +#2096 = AXIS2_PLACEMENT_3D ( 'NONE', #5043, #2642, #4204 ) ; +#2097 = EDGE_CURVE ( 'NONE', #4425, #4068, #1480, .T. ) ; +#2098 = CARTESIAN_POINT ( 'NONE', ( 0.5999999999999999778, -1.039230484541330712, 5.473691469039889235 ) ) ; +#2099 = CARTESIAN_POINT ( 'NONE', ( 0.4449245162833039835, 0.7706318677356882585, 5.130805054534240739 ) ) ; +#2100 = ORIENTED_EDGE ( 'NONE', *, *, #4336, .F. ) ; +#2101 = CARTESIAN_POINT ( 'NONE', ( -0.2849920402363720906, -0.4532153657421842952, 6.159507043090530765 ) ) ; +#2102 = CARTESIAN_POINT ( 'NONE', ( 0.5653191310805146808, -0.3682113508814831571, 6.315181427571372907 ) ) ; +#2103 = ORIENTED_EDGE ( 'NONE', *, *, #2155, .T. ) ; +#2104 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#2105 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000000555, 1.139901311517799387, 5.593666288758528005 ) ) ; +#2106 = CARTESIAN_POINT ( 'NONE', ( 0.2585120751489622948, 0.2920925111859803969, 5.962336334500271562 ) ) ; +#2107 = CIRCLE ( 'NONE', #3642, 0.6296287800994468942 ) ; +#2108 = AXIS2_PLACEMENT_3D ( 'NONE', #2857, #886, #3291 ) ; +#2109 = CARTESIAN_POINT ( 'NONE', ( 0.5152665960577876847, 0.4162091211168773564, 6.305186707021236181 ) ) ; +#2110 = CARTESIAN_POINT ( 'NONE', ( 0.3421420809528584184, -1.150189561377751968, 5.661797653372333095 ) ) ; +#2111 = VECTOR ( 'NONE', #1600, 39.37007874015748854 ) ; +#2112 = CARTESIAN_POINT ( 'NONE', ( -1.021234122634727903, -0.8537658773652748723, 4.658015363927715313 ) ) ; +#2113 = CARTESIAN_POINT ( 'NONE', ( 0.2173713394407288668, 0.3978352907794279192, 6.061713265494704572 ) ) ; +#2114 = CARTESIAN_POINT ( 'NONE', ( -1.138162050854751639, -0.3802481862631265086, 5.778743187815194027 ) ) ; +#2115 = PLANE ( 'NONE', #1639 ) ; +#2116 = EDGE_CURVE ( 'NONE', #830, #3330, #4436, .T. ) ; +#2117 = CIRCLE ( 'NONE', #398, 0.6296287800994468942 ) ; +#2118 = CARTESIAN_POINT ( 'NONE', ( 0.2326210110054655611, 0.5405178875060215882, 6.222756865013389316 ) ) ; +#2119 = ORIENTED_EDGE ( 'NONE', *, *, #1397, .T. ) ; +#2120 = DIRECTION ( 'NONE', ( 0.5000000000000001110, 0.8660254037844384856, 0.000000000000000000 ) ) ; +#2121 = EDGE_LOOP ( 'NONE', ( #3578, #3413 ) ) ; +#2122 = AXIS2_PLACEMENT_3D ( 'NONE', #5264, #2971, #4579 ) ; +#2123 = CARTESIAN_POINT ( 'NONE', ( 0.1401956844730455620, 0.6350688919048054215, 6.294134262449606609 ) ) ; +#2124 = CARTESIAN_POINT ( 'NONE', ( -1.115620250748909470, 0.4420310578669109924, 5.805572500925889834 ) ) ; +#2125 = ORIENTED_EDGE ( 'NONE', *, *, #4504, .F. ) ; +#2126 = CIRCLE ( 'NONE', #497, 0.3899210354891941011 ) ; +#2127 = CARTESIAN_POINT ( 'NONE', ( -0.4449245162833049272, -0.7706318677356902569, 5.130805054534240739 ) ) ; +#2128 = VECTOR ( 'NONE', #1619, 39.37007874015748854 ) ; +#2129 = ADVANCED_FACE ( 'NONE', ( #3112 ), #255, .F. ) ; +#2130 = CARTESIAN_POINT ( 'NONE', ( 0.4855934162860162662, 0.005107702836386400665, 6.100063005321986864 ) ) ; +#2131 = DIRECTION ( 'NONE', ( 0.6634139481689380613, -0.3830222215594901169, 0.6427876096865391409 ) ) ; +#2132 = EDGE_LOOP ( 'NONE', ( #4619, #4901 ) ) ; +#2133 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, 1.023275245660230315, 5.610249138468685004 ) ) ; +#2134 = CARTESIAN_POINT ( 'NONE', ( 0.5477931823478742190, -0.3876662152459010025, 6.312462533170232426 ) ) ; +#2135 = ORIENTED_EDGE ( 'NONE', *, *, #1666, .T. ) ; +#2136 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#2137 = DIRECTION ( 'NONE', ( 0.6634139481689389495, 0.3830222215594888402, -0.6427876096865390299 ) ) ; +#2138 = VECTOR ( 'NONE', #3866, 39.37007874015748854 ) ; +#2139 = LINE ( 'NONE', #3742, #3020 ) ; +#2140 = LINE ( 'NONE', #1742, #4160 ) ; +#2141 = EDGE_CURVE ( 'NONE', #3957, #3120, #207, .T. ) ; +#2142 = CARTESIAN_POINT ( 'NONE', ( 0.3489287186317509559, -1.148148584163804387, 5.649528895307351029 ) ) ; +#2143 = CARTESIAN_POINT ( 'NONE', ( -0.2173681192328102973, 0.5657623189177785061, 6.243538158947885108 ) ) ; +#2144 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, 1.187171007058370309, 5.805572500925889834 ) ) ; +#2145 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#2146 = DIRECTION ( 'NONE', ( 0.6634139481689380613, -0.3830222215594901169, 0.6427876096865391409 ) ) ; +#2147 = ORIENTED_EDGE ( 'NONE', *, *, #4736, .F. ) ; +#2148 = CARTESIAN_POINT ( 'NONE', ( 0.2500000000000000000, -0.9460215340208346646, 5.518181750081197379 ) ) ; +#2149 = ORIENTED_EDGE ( 'NONE', *, *, #2097, .F. ) ; +#2150 = CARTESIAN_POINT ( 'NONE', ( 0.1329882970622287275, 0.6393380532447697773, 6.296691460433140541 ) ) ; +#2151 = CARTESIAN_POINT ( 'NONE', ( 0.5350018694874364433, 0.02024565561117777635, 6.159485645265798226 ) ) ; +#2152 = VERTEX_POINT ( 'NONE', #3628 ) ; +#2153 = CARTESIAN_POINT ( 'NONE', ( -0.08163023182849522830, -0.3812786851683682143, 5.928356580365043094 ) ) ; +#2154 = CARTESIAN_POINT ( 'NONE', ( 0.5342719294016275988, 0.01979034448633489734, 6.158558441066394273 ) ) ; +#2155 = EDGE_CURVE ( 'NONE', #314, #3951, #1141, .T. ) ; +#2156 = CARTESIAN_POINT ( 'NONE', ( -0.5784917620249225845, -0.06031349153564550397, 6.214629186967173702 ) ) ; +#2157 = ORIENTED_EDGE ( 'NONE', *, *, #4371, .F. ) ; +#2158 = DIRECTION ( 'NONE', ( 1.000000000000000000, -1.224646799147350002E-16, -3.159560411860719824E-32 ) ) ; +#2159 = EDGE_CURVE ( 'NONE', #113, #3330, #2775, .T. ) ; +#2160 = CARTESIAN_POINT ( 'NONE', ( 0.6197695747570087788, -0.2190261532890991902, 6.300697282999870197 ) ) ; +#2161 = VERTEX_POINT ( 'NONE', #3601 ) ; +#2162 = CARTESIAN_POINT ( 'NONE', ( -0.8318599839042951638, 0.8648701168071781797, 5.677078363326123700 ) ) ; +#2163 = DIRECTION ( 'NONE', ( -3.061616997868379936E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +#2164 = CARTESIAN_POINT ( 'NONE', ( 0.2889976595360652101, -1.164717523838451285, 5.736408563692471319 ) ) ; +#2165 = CARTESIAN_POINT ( 'NONE', ( -0.2057497822672410548, -0.3884416724481747352, 6.045168944973657865 ) ) ; +#2166 = EDGE_CURVE ( 'NONE', #1788, #921, #4796, .T. ) ; +#2167 = ORIENTED_EDGE ( 'NONE', *, *, #3038, .T. ) ; +#2168 = DIRECTION ( 'NONE', ( 0.5566703992264192546, 0.3213938048432691819, 0.7660444431189783465 ) ) ; +#2169 = CARTESIAN_POINT ( 'NONE', ( -2.152929072901046608E-16, -1.758000000000000007, 3.953999999999999737 ) ) ; +#2170 = ORIENTED_EDGE ( 'NONE', *, *, #1512, .F. ) ; +#2171 = CARTESIAN_POINT ( 'NONE', ( 0.8249762957373995009, 0.8714421165587087348, 5.661691036252495479 ) ) ; +#2172 = ORIENTED_EDGE ( 'NONE', *, *, #5240, .F. ) ; +#2173 = FACE_BOUND ( 'NONE', #758, .T. ) ; +#2174 = CARTESIAN_POINT ( 'NONE', ( 0.5430998158202988702, 0.02488382249746545760, 6.169331088256353901 ) ) ; +#2175 = VERTEX_POINT ( 'NONE', #709 ) ; +#2176 = FACE_OUTER_BOUND ( 'NONE', #51, .T. ) ; +#2177 = CARTESIAN_POINT ( 'NONE', ( -0.5875828175114706786, 0.07382425305203030308, 6.227167535557611266 ) ) ; +#2178 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #1727, #5028, #4157, #1346 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 3.054326190990089174, 3.839724354387460181 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9492530216742010030, 0.9492530216742010030, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#2179 = VERTEX_POINT ( 'NONE', #4325 ) ; +#2180 = FACE_OUTER_BOUND ( 'NONE', #1839, .T. ) ; +#2181 = CARTESIAN_POINT ( 'NONE', ( 0.2373422642471479937, 1.176295767333554787, 5.780336627630593860 ) ) ; +#2182 = ORIENTED_EDGE ( 'NONE', *, *, #3857, .T. ) ; +#2183 = ADVANCED_FACE ( 'NONE', ( #2341 ), #2292, .F. ) ; +#2184 = CARTESIAN_POINT ( 'NONE', ( -0.4662434012483464008, 0.007441094303642222137, 6.077142145747727930 ) ) ; +#2185 = CYLINDRICAL_SURFACE ( 'NONE', #979, 0.2500000000000000000 ) ; +#2186 = CIRCLE ( 'NONE', #1583, 0.2500000000000000000 ) ; +#2187 = CARTESIAN_POINT ( 'NONE', ( 0.8736264038827166178, -0.7064610336692204173, 5.713381027863315254 ) ) ; +#2188 = CARTESIAN_POINT ( 'NONE', ( -1.155641398560565136, -0.3232431494700845898, 5.725867636600993293 ) ) ; +#2189 = CARTESIAN_POINT ( 'NONE', ( -0.2383732206863037051, -0.4230899333211303737, 6.100062796172752932 ) ) ; +#2190 = CARTESIAN_POINT ( 'NONE', ( -0.1530989937735619533, 0.6267119539762631142, 6.288939917049074957 ) ) ; +#2191 = COLOUR_RGB ( '',0.6274509803921568540, 0.6274509803921568540, 0.6274509803921568540 ) ; +#2192 = ORIENTED_EDGE ( 'NONE', *, *, #1663, .T. ) ; +#2193 = FACE_OUTER_BOUND ( 'NONE', #2544, .T. ) ; +#2194 = VECTOR ( 'NONE', #3579, 39.37007874015748143 ) ; +#2195 = ADVANCED_FACE ( 'NONE', ( #1946 ), #5199, .F. ) ; +#2196 = DIRECTION ( 'NONE', ( -0.5566703992264190326, 0.3213938048432700145, -0.7660444431189781245 ) ) ; +#2197 = ORIENTED_EDGE ( 'NONE', *, *, #671, .F. ) ; +#2198 = CARTESIAN_POINT ( 'NONE', ( 0.7996834935816140577, 0.8947101821780630848, 5.593666288758528005 ) ) ; +#2199 = ORIENTED_EDGE ( 'NONE', *, *, #291, .T. ) ; +#2200 = CARTESIAN_POINT ( 'NONE', ( -0.9236543808441181058, 0.5332721054185290965, 5.661815083166008122 ) ) ; +#2201 = EDGE_CURVE ( 'NONE', #4366, #3027, #634, .T. ) ; +#2202 = ORIENTED_EDGE ( 'NONE', *, *, #1433, .T. ) ; +#2203 = CARTESIAN_POINT ( 'NONE', ( -0.2898425893199478853, 0.2608213153258383543, 5.927934137912188817 ) ) ; +#2204 = APPLICATION_CONTEXT ( 'automotive_design' ) ; +#2205 = CARTESIAN_POINT ( 'NONE', ( -0.4589159624927874881, -0.4493180394960074042, 6.285951639676603975 ) ) ; +#2206 = ORIENTED_EDGE ( 'NONE', *, *, #3397, .F. ) ; +#2207 = CARTESIAN_POINT ( 'NONE', ( 0.2370978804097879089, -0.3922355738733884767, 6.067633472858069865 ) ) ; +#2208 = CARTESIAN_POINT ( 'NONE', ( -0.4491831713700187856, 0.7780080747177897660, 5.105498434834316868 ) ) ; +#2209 = ORIENTED_EDGE ( 'NONE', *, *, #614, .T. ) ; +#2210 = CARTESIAN_POINT ( 'NONE', ( -0.5350018693844065254, -0.02024565604439356944, 6.159485645247337438 ) ) ; +#2211 = CARTESIAN_POINT ( 'NONE', ( 0.1602734866624503651, -0.6221947940191677739, 6.286167159703148322 ) ) ; +#2212 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#2213 = FACE_OUTER_BOUND ( 'NONE', #723, .T. ) ; +#2214 = DIRECTION ( 'NONE', ( 0.4999999999999997780, -0.8660254037844387076, 0.000000000000000000 ) ) ; +#2215 = CARTESIAN_POINT ( 'NONE', ( -0.2118842711599338013, -0.3931075096314757267, 6.053619253783591780 ) ) ; +#2216 = CYLINDRICAL_SURFACE ( 'NONE', #3735, 0.2500000000000000000 ) ; +#2217 = EDGE_CURVE ( 'NONE', #1298, #5052, #3658, .T. ) ; +#2218 = VERTEX_POINT ( 'NONE', #1279 ) ; +#2219 = CARTESIAN_POINT ( 'NONE', ( -0.2743814532376302462, -0.2770860448591268566, 5.943519118029380266 ) ) ; +#2220 = ADVANCED_FACE ( 'NONE', ( #5276 ), #4113, .F. ) ; +#2221 = DIRECTION ( 'NONE', ( 0.8627299156628208676, -0.4980973490458741049, -0.08715574274765018614 ) ) ; +#2222 = EDGE_LOOP ( 'NONE', ( #2694, #1722, #3738, #5111 ) ) ; +#2223 = CARTESIAN_POINT ( 'NONE', ( 0.8145544831180825396, 0.8811909856195776491, 5.636193577739025073 ) ) ; +#2224 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, 1.097358419195169299, 5.309607069964629389 ) ) ; +#2225 = ORIENTED_EDGE ( 'NONE', *, *, #3297, .F. ) ; +#2226 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#2227 = EDGE_CURVE ( 'NONE', #4890, #2161, #2503, .T. ) ; +#2228 = CARTESIAN_POINT ( 'NONE', ( -0.5755550564502681654, -0.05641053749555393487, 6.210678917445261682 ) ) ; +#2229 = VERTEX_POINT ( 'NONE', #2902 ) ; +#2230 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#2231 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#2232 = EDGE_LOOP ( 'NONE', ( #210, #3176 ) ) ; +#2233 = CARTESIAN_POINT ( 'NONE', ( -0.3941190682994647476, 0.04765669578378027571, 5.994446444340591817 ) ) ; +#2234 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #2576 ) ) ; +#2235 = CARTESIAN_POINT ( 'NONE', ( 0.09749091517062463685, -0.6565675845811028699, 6.306393301861083600 ) ) ; +#2236 = CARTESIAN_POINT ( 'NONE', ( -0.3026433922720278558, 0.4621385815287076260, 6.179690170097730473 ) ) ; +#2237 = LINE ( 'NONE', #553, #1852 ) ; +#2238 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4656, #211, #3511, #137, #2627, #4289, #1782, #2278, #5077, #3907, #1023, #1424, #3050, #4685, #615, #2250, #1506, #4041, #2384, #2330, #3537, #697, #3128, #2806, #1077, #296, #2727, #321, #1934, #4836, #3958, #3564, #4418, #5209, #4807, #4448, #4367 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1250000000001065259, 0.1875000000001566802, 0.2187500000001816880, 0.2343750000001941225, 0.2421875000001973977, 0.2460937500001990907, 0.2500000000002007838, 0.3750000000002253753, 0.4375000000002391976, 0.4687500000002468026, 0.4843750000002504108, 0.4921875000002522427, 0.5000000000002540190, 0.6250000000002816636, 0.6875000000002942091, 0.7187500000002986500, 0.7343750000002988720, 0.7421875000003012035, 0.7460937500003002043, 0.7480468750002974287, 0.7500000000002946532, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#2239 = CARTESIAN_POINT ( 'NONE', ( -0.4414780203617504339, -0.2548874538971610537, 6.129000000000000448 ) ) ; +#2240 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#2241 = CARTESIAN_POINT ( 'NONE', ( 0.8274639263543096535, -0.8690798422932193290, 5.667384321159164351 ) ) ; +#2242 = ORIENTED_EDGE ( 'NONE', *, *, #4129, .F. ) ; +#2243 = FILL_AREA_STYLE_COLOUR ( '', #1634 ) ; +#2244 = DIRECTION ( 'NONE', ( -1.000000000000000000, 8.195543980992789655E-16, 0.000000000000000000 ) ) ; +#2245 = ADVANCED_FACE ( 'NONE', ( #3768, #94, #3308, #67, #4141, #496, #2450, #4085 ), #1711, .T. ) ; +#2246 = ORIENTED_EDGE ( 'NONE', *, *, #1828, .T. ) ; +#2247 = CARTESIAN_POINT ( 'NONE', ( 4.186648766594881731E-16, 0.9824517527273209927, 5.406025211417605725 ) ) ; +#2248 = FACE_OUTER_BOUND ( 'NONE', #131, .T. ) ; +#2249 = ORIENTED_EDGE ( 'NONE', *, *, #3955, .F. ) ; +#2250 = CARTESIAN_POINT ( 'NONE', ( 0.3513971009511082100, -0.1690821270687773159, 5.906237120833736753 ) ) ; +#2251 = CARTESIAN_POINT ( 'NONE', ( -0.6191423467892447352, -0.2291820323851876118, 6.303252268756158294 ) ) ; +#2252 = ORIENTED_EDGE ( 'NONE', *, *, #3466, .F. ) ; +#2253 = CARTESIAN_POINT ( 'NONE', ( 0.08137525361737310559, 0.3813329828537736499, 5.928196182617250898 ) ) ; +#2254 = CARTESIAN_POINT ( 'NONE', ( 0.3419452013912425148, 1.150248062292926976, 5.662142407377247721 ) ) ; +#2255 = ADVANCED_BREP_SHAPE_REPRESENTATION ( 'Pump Manifold v2 (5-axis)', ( #2822, #4287 ), #1816 ) ; +#2256 = EDGE_CURVE ( 'NONE', #275, #5033, #412, .T. ) ; +#2257 = CARTESIAN_POINT ( 'NONE', ( 1.131803818554842245, -0.3994153186264497446, 5.792207704863038487 ) ) ; +#2258 = CARTESIAN_POINT ( 'NONE', ( -0.8167817854607130057, 0.8792052620738108892, 5.642743906588518321 ) ) ; +#2259 = ORIENTED_EDGE ( 'NONE', *, *, #1576, .T. ) ; +#2260 = CARTESIAN_POINT ( 'NONE', ( -3.581366610240468148E-17, -1.249889081122999952E-15, 5.879000000000000448 ) ) ; +#2261 = CARTESIAN_POINT ( 'NONE', ( 0.3381046034980481618, -0.4705193509772749860, 6.211947421636289768 ) ) ; +#2262 = CARTESIAN_POINT ( 'NONE', ( -3.581366610240468148E-17, -1.249889081122999952E-15, 5.879000000000000448 ) ) ; +#2263 = CARTESIAN_POINT ( 'NONE', ( -0.2173713394408872956, -0.3978352907795612015, 6.061713265494955039 ) ) ; +#2264 = CARTESIAN_POINT ( 'NONE', ( -0.1495976921372723367, 0.6290725087513834302, 6.290432601879485830 ) ) ; +#2265 = ORIENTED_EDGE ( 'NONE', *, *, #1908, .F. ) ; +#2266 = CARTESIAN_POINT ( 'NONE', ( -0.1441924260139429148, -0.3622802205436830847, 5.986163717094036052 ) ) ; +#2267 = AXIS2_PLACEMENT_3D ( 'NONE', #1591, #1057, #4764 ) ; +#2268 = CARTESIAN_POINT ( 'NONE', ( 0.9550695643221949194, -0.1183969681640200805, 5.291451494556268287 ) ) ; +#2269 = EDGE_LOOP ( 'NONE', ( #1882, #2462, #970, #2202 ) ) ; +#2270 = DIRECTION ( 'NONE', ( -1.219986648345619686E-16, -0.9961946980917461003, -0.08715574274765000573 ) ) ; +#2271 = EDGE_CURVE ( 'NONE', #3333, #2626, #1681, .T. ) ; +#2272 = AXIS2_PLACEMENT_3D ( 'NONE', #338, #3552, #2766 ) ; +#2273 = CARTESIAN_POINT ( 'NONE', ( -0.2710312578946107442, 0.4437727045444579410, 6.141081488922466747 ) ) ; +#2274 = VECTOR ( 'NONE', #1017, 39.37007874015748854 ) ; +#2275 = AXIS2_PLACEMENT_3D ( 'NONE', #2090, #3755, #4066 ) ; +#2276 = FACE_BOUND ( 'NONE', #617, .T. ) ; +#2277 = EDGE_LOOP ( 'NONE', ( #944, #1514, #4948, #452 ) ) ; +#2278 = CARTESIAN_POINT ( 'NONE', ( 0.3724243581518615342, -0.1155005010222315137, 5.931304760740454540 ) ) ; +#2279 = ORIENTED_EDGE ( 'NONE', *, *, #856, .T. ) ; +#2280 = CARTESIAN_POINT ( 'NONE', ( 0.2850339750687379548, -0.4532022594927843651, 6.159485386716857747 ) ) ; +#2281 = CARTESIAN_POINT ( 'NONE', ( -0.4414780203617504339, -0.2548874538971610537, 6.129000000000000448 ) ) ; +#2282 = ADVANCED_FACE ( 'NONE', ( #4877 ), #3381, .F. ) ; +#2283 = CARTESIAN_POINT ( 'NONE', ( -0.4271969554080871645, 0.02243824517403369273, 6.031275932334467349 ) ) ; +#2284 = AXIS2_PLACEMENT_3D ( 'NONE', #417, #504, #3774 ) ; +#2285 = FACE_OUTER_BOUND ( 'NONE', #3427, .T. ) ; +#2286 = ORIENTED_EDGE ( 'NONE', *, *, #2055, .F. ) ; +#2287 = AXIS2_PLACEMENT_3D ( 'NONE', #2944, #4975, #1293 ) ; +#2288 = FACE_OUTER_BOUND ( 'NONE', #1759, .T. ) ; +#2289 = CARTESIAN_POINT ( 'NONE', ( 0.3515129553805180773, -0.4717001477797971298, 6.222544359609775810 ) ) ; +#2290 = DIRECTION ( 'NONE', ( -0.6634139481689388385, -0.3830222215594888957, -0.6427876096865389188 ) ) ; +#2291 = AXIS2_PLACEMENT_3D ( 'NONE', #4651, #4255, #1068 ) ; +#2292 = CYLINDRICAL_SURFACE ( 'NONE', #2858, 0.2500000000000000000 ) ; +#2293 = CARTESIAN_POINT ( 'NONE', ( 0.8584136224866365517, -0.8385222892795530791, 5.726939577287104122 ) ) ; +#2294 = CARTESIAN_POINT ( 'NONE', ( -0.2499676822388576802, -0.4734477930975866666, 6.159485386716847977 ) ) ; +#2295 = EDGE_CURVE ( 'NONE', #1022, #4024, #2767, .T. ) ; +#2296 = CARTESIAN_POINT ( 'NONE', ( 0.5867431197096608653, -0.07246678715600247955, 6.225996798345462935 ) ) ; +#2297 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) ); +#2298 = DIRECTION ( 'NONE', ( -0.4999999999999998335, -0.8660254037844385966, -1.788933584601079111E-16 ) ) ; +#2299 = ORIENTED_EDGE ( 'NONE', *, *, #5283, .T. ) ; +#2300 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999897 ), #1550 ); +#2301 = VECTOR ( 'NONE', #3683, 39.37007874015748854 ) ; +#2302 = ORIENTED_EDGE ( 'NONE', *, *, #57, .T. ) ; +#2303 = CARTESIAN_POINT ( 'NONE', ( -0.2348834868551085142, 0.3823915054877644049, 6.056259134401333455 ) ) ; +#2304 = CARTESIAN_POINT ( 'NONE', ( -0.7105232702080964691, -0.4102208013201386061, 5.135162841671623291 ) ) ; +#2305 = ORIENTED_EDGE ( 'NONE', *, *, #1215, .T. ) ; +#2306 = CARTESIAN_POINT ( 'NONE', ( 0.2266775239232997063, -0.4074991769768411265, 6.077142145744697466 ) ) ; +#2307 = CARTESIAN_POINT ( 'NONE', ( 0.2353568195901370175, -0.3848088219770682272, 6.059013099287516191 ) ) ; +#2308 = CARTESIAN_POINT ( 'NONE', ( 0.3276302000158401451, 1.154406386739605050, 5.685712360057142867 ) ) ; +#2309 = CYLINDRICAL_SURFACE ( 'NONE', #507, 0.05000000000000005135 ) ; +#2310 = ADVANCED_FACE ( 'NONE', ( #2846, #4172 ), #4483, .F. ) ; +#2311 = CARTESIAN_POINT ( 'NONE', ( -0.7105232702080964691, 0.4102208013201370518, 5.135162841671623291 ) ) ; +#2312 = ORIENTED_EDGE ( 'NONE', *, *, #1954, .F. ) ; +#2313 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#2314 = DIRECTION ( 'NONE', ( 0.4044817466520068683, 0.7005829359354769359, 0.5878588831525548564 ) ) ; +#2315 = DIRECTION ( 'NONE', ( -0.6634139481689388385, -0.3830222215594888957, 0.6427876096865389188 ) ) ; +#2316 = CARTESIAN_POINT ( 'NONE', ( 0.2332656045735773120, 0.3523122786870905854, 6.025025194221836244 ) ) ; +#2317 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2962, #323, #4601, #4545, #2086, #5210, #3315, #1989, #2114, #1558, #4419, #1151, #3749, #4015, #347, #4966, #76, #1718, #3615, #5233, #1584, #3208, #2188, #4119, #4598, #554, #3797, #3823, #4542, #2933, #121, #1655, #4989, #4517, #1282, #2481, #1768, #1686 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999999131806, 0.1874999999998699929, 0.2187499999998513689, 0.2343749999998395728, 0.2421874999998336608, 0.2460937499998279987, 0.2499999999998223088, 0.3749999999996092015, 0.4374999999995058397, 0.4687499999994574895, 0.4843749999994297895, 0.4921874999994195754, 0.4960937499994181876, 0.4999999999994167998, 0.6249999999994122479, 0.6874999999994102495, 0.7187499999994093614, 0.7343749999994130251, 0.7421874999994108046, 0.7460937499994056976, 0.7480468749994031441, 0.7499999999994005906, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#2318 = CARTESIAN_POINT ( 'NONE', ( -0.1150218700651136350, 0.6488440905482841803, 6.302163844720226393 ) ) ; +#2319 = ORIENTED_EDGE ( 'NONE', *, *, #2942, .T. ) ; +#2320 = VECTOR ( 'NONE', #4728, 39.37007874015748854 ) ; +#2321 = CARTESIAN_POINT ( 'NONE', ( -0.5078194151786449284, -0.2931896760531102486, 6.064721239031358735 ) ) ; +#2322 = CARTESIAN_POINT ( 'NONE', ( -0.3710121431915841539, -0.1199454881038577725, 5.928356580365073292 ) ) ; +#2323 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#2324 = EDGE_CURVE ( 'NONE', #3506, #2474, #3336, .T. ) ; +#2325 = ORIENTED_EDGE ( 'NONE', *, *, #3539, .T. ) ; +#2326 = CARTESIAN_POINT ( 'NONE', ( -0.6135904484930136960, 0.1412060984789960671, 6.271836282905964843 ) ) ; +#2327 = CARTESIAN_POINT ( 'NONE', ( -5.783046526498795293E-17, -1.337116258361070674E-15, 6.271836282905964843 ) ) ; +#2328 = ORIENTED_EDGE ( 'NONE', *, *, #2931, .T. ) ; +#2329 = EDGE_LOOP ( 'NONE', ( #3398, #4239, #4256, #5179 ) ) ; +#2330 = CARTESIAN_POINT ( 'NONE', ( 0.3407495575729510007, -0.1895471656033235197, 5.903358536998772443 ) ) ; +#2331 = CARTESIAN_POINT ( 'NONE', ( -0.1649105109091297539, 0.3682075580208890586, 6.002172553016142942 ) ) ; +#2332 = CARTESIAN_POINT ( 'NONE', ( 0.3239736370844199520, 1.155436684571538919, 5.691237000069598650 ) ) ; +#2333 = DIRECTION ( 'NONE', ( -0.7071067811865469066, 1.570092458683773688E-16, -0.7071067811865479058 ) ) ; +#2334 = CARTESIAN_POINT ( 'NONE', ( -0.8912014220790727137, -3.981888715966024803E-16, 5.117418135287731928 ) ) ; +#2335 = ORIENTED_EDGE ( 'NONE', *, *, #3132, .F. ) ; +#2336 = AXIS2_PLACEMENT_3D ( 'NONE', #2311, #330, #250 ) ; +#2337 = CARTESIAN_POINT ( 'NONE', ( -0.6187777601872365141, 0.2317915372308872179, 6.303783207327497529 ) ) ; +#2338 = EDGE_CURVE ( 'NONE', #5242, #2741, #560, .T. ) ; +#2339 = CARTESIAN_POINT ( 'NONE', ( -0.3277384013014871811, 1.154394646630010790, 5.685789647170169658 ) ) ; +#2340 = CARTESIAN_POINT ( 'NONE', ( 0.4213759909291679429, -0.02609879972005903215, 6.024604706213610328 ) ) ; +#2341 = FACE_OUTER_BOUND ( 'NONE', #2924, .T. ) ; +#2342 = LINE ( 'NONE', #4797, #2111 ) ; +#2343 = CARTESIAN_POINT ( 'NONE', ( -0.2327478332559807794, -0.5402692230086606484, 6.222544359609660347 ) ) ; +#2344 = CARTESIAN_POINT ( 'NONE', ( 0.5905086048304347690, -0.07874682981397862491, 6.231305296304365804 ) ) ; +#2345 = CARTESIAN_POINT ( 'NONE', ( -0.2876953965116629819, -0.2631925484120161141, 5.929924902837694134 ) ) ; +#2346 = CARTESIAN_POINT ( 'NONE', ( -0.2500000000000002776, -0.5097749077943203311, 6.129000000000000448 ) ) ; +#2347 = EDGE_CURVE ( 'NONE', #2774, #1585, #4958, .T. ) ; +#2348 = ORIENTED_EDGE ( 'NONE', *, *, #4678, .F. ) ; +#2349 = CARTESIAN_POINT ( 'NONE', ( 0.1441924260139429148, 0.3622802205436811418, 5.986163717094036052 ) ) ; +#2350 = ADVANCED_FACE ( 'NONE', ( #2929 ), #4850, .F. ) ; +#2351 = LINE ( 'NONE', #4310, #2320 ) ; +#2352 = CARTESIAN_POINT ( 'NONE', ( 1.153654860927528780, 0.3302585566962778496, 5.734015407530418607 ) ) ; +#2353 = ORIENTED_EDGE ( 'NONE', *, *, #2513, .T. ) ; +#2354 = EDGE_LOOP ( 'NONE', ( #610, #1535, #236, #3930 ) ) ; +#2355 = CARTESIAN_POINT ( 'NONE', ( -0.9236543808441199932, -0.5332721054185314280, 5.661815083166008122 ) ) ; +#2356 = CIRCLE ( 'NONE', #2272, 0.1330000000000000626 ) ; +#2357 = CARTESIAN_POINT ( 'NONE', ( 1.875316879142728377, -9.860650184144783042E-16, 4.395566458943346078 ) ) ; +#2358 = AXIS2_PLACEMENT_3D ( 'NONE', #346, #5260, #4783 ) ; +#2359 = EDGE_CURVE ( 'NONE', #563, #1875, #4657, .T. ) ; +#2360 = CARTESIAN_POINT ( 'NONE', ( 0.1875000000000000278, -1.066783749530909597, 5.661614086336346219 ) ) ; +#2361 = DIRECTION ( 'NONE', ( 9.480812427427117815E-16, 0.7660444431189777914, -0.6427876096865398070 ) ) ; +#2362 = ORIENTED_EDGE ( 'NONE', *, *, #3909, .T. ) ; +#2363 = AXIS2_PLACEMENT_3D ( 'NONE', #2390, #4021, #2813 ) ; +#2364 = DIRECTION ( 'NONE', ( 0.5566703992264190326, -0.3213938048432700145, 0.7660444431189780135 ) ) ; +#2365 = DIRECTION ( 'NONE', ( -0.8000000000000004885, 0.4596266658713864528, 0.3856725658119229960 ) ) ; +#2366 = VERTEX_POINT ( 'NONE', #5109 ) ; +#2367 = PLANE ( 'NONE', #3572 ) ; +#2368 = CARTESIAN_POINT ( 'NONE', ( -1.030530563957839707, 0.3784737483244763334, 5.679393789334237219 ) ) ; +#2369 = CIRCLE ( 'NONE', #657, 0.1875000000000000278 ) ; +#2370 = CARTESIAN_POINT ( 'NONE', ( -0.2416476612724870188, -0.3060144142332245076, 5.879000000000000448 ) ) ; +#2371 = DIRECTION ( 'NONE', ( -4.996003610813201474E-16, -0.6427876096865391409, 0.7660444431189782355 ) ) ; +#2372 = DIRECTION ( 'NONE', ( 0.6634139481689381723, -0.3830222215594895618, -0.6427876096865392519 ) ) ; +#2373 = AXIS2_PLACEMENT_3D ( 'NONE', #4713, #3961, #2231 ) ; +#2374 = ORIENTED_EDGE ( 'NONE', *, *, #372, .F. ) ; +#2375 = CARTESIAN_POINT ( 'NONE', ( 0.1874999999999996947, -0.5863793521062126146, 6.064721239031350741 ) ) ; +#2376 = CIRCLE ( 'NONE', #68, 0.8999999999999999112 ) ; +#2377 = VECTOR ( 'NONE', #3845, 39.37007874015748143 ) ; +#2378 = PLANE ( 'NONE', #5269 ) ; +#2379 =( CONVERSION_BASED_UNIT ( 'INCH', #2300 ) LENGTH_UNIT ( ) NAMED_UNIT ( #648 ) ); +#2380 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#2381 = CARTESIAN_POINT ( 'NONE', ( 1.149266678499085703, 0.3452329494472617388, 5.749792226724816047 ) ) ; +#2382 = ORIENTED_EDGE ( 'NONE', *, *, #2914, .F. ) ; +#2383 = ORIENTED_EDGE ( 'NONE', *, *, #448, .T. ) ; +#2384 = CARTESIAN_POINT ( 'NONE', ( 0.3419439177856454792, -0.1873927312310294802, 5.903479827551670667 ) ) ; +#2385 = CARTESIAN_POINT ( 'NONE', ( 0.5999999999999999778, -1.039230484541330712, 5.473691469039889235 ) ) ; +#2386 = VERTEX_POINT ( 'NONE', #3455 ) ; +#2387 = CARTESIAN_POINT ( 'NONE', ( -0.1557876249465423857, 0.3651454731565609846, 5.994446444344865732 ) ) ; +#2388 = CARTESIAN_POINT ( 'NONE', ( -0.2978839202397374764, -1.162436383553521191, 5.725867636601201127 ) ) ; +#2389 = VERTEX_POINT ( 'NONE', #4635 ) ; +#2390 = CARTESIAN_POINT ( 'NONE', ( 1.681607939076289693, -0.9708767962971062149, 4.129000000000000448 ) ) ; +#2391 = ADVANCED_FACE ( 'NONE', ( #999 ), #1050, .F. ) ; +#2392 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#2393 = ORIENTED_EDGE ( 'NONE', *, *, #514, .F. ) ; +#2394 = CARTESIAN_POINT ( 'NONE', ( 0.1833342074774449437, -1.095886071286570562, 5.696783350770110665 ) ) ; +#2395 = CARTESIAN_POINT ( 'NONE', ( 1.017611827438179128, -0.3710121115558720484, 5.661614086336346219 ) ) ; +#2396 = CARTESIAN_POINT ( 'NONE', ( 0.4220600189954397119, -0.02565194563835775793, 6.025386023354664111 ) ) ; +#2397 = CARTESIAN_POINT ( 'NONE', ( 0.2510293746422652128, 0.4227236641990161914, 6.107280644753734222 ) ) ; +#2398 = CARTESIAN_POINT ( 'NONE', ( 0.8301120792519715019, -0.6957717833939421892, 5.661614436093666214 ) ) ; +#2399 = VERTEX_POINT ( 'NONE', #4214 ) ; +#2400 = CARTESIAN_POINT ( 'NONE', ( 0.5772579326431278579, 0.3517194953872034291, 6.316181730182937493 ) ) ; +#2401 = DIRECTION ( 'NONE', ( -3.061616997868379936E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +#2402 = AXIS2_PLACEMENT_3D ( 'NONE', #2008, #1260, #3720 ) ; +#2403 = CARTESIAN_POINT ( 'NONE', ( -0.1046756554927286698, -0.6535376994473018897, 6.304750723333747864 ) ) ; +#2404 = ADVANCED_FACE ( 'NONE', ( #2176 ), #4164, .F. ) ; +#2405 = CARTESIAN_POINT ( 'NONE', ( 1.157924795569832632, 0.3150328536965000814, 5.716012483566704105 ) ) ; +#2406 = ORIENTED_EDGE ( 'NONE', *, *, #2607, .T. ) ; +#2407 = CARTESIAN_POINT ( 'NONE', ( 0.4290832926986039575, -0.4607818666749401437, 6.271836282905964843 ) ) ; +#2408 = ORIENTED_EDGE ( 'NONE', *, *, #771, .F. ) ; +#2409 = CARTESIAN_POINT ( 'NONE', ( -0.1941663873627118564, 0.3811825383876460971, 6.031275932329453582 ) ) ; +#2410 = DIRECTION ( 'NONE', ( 6.106226635438360972E-16, -0.6427876096865381417, -0.7660444431189791237 ) ) ; +#2411 = ADVANCED_FACE ( 'NONE', ( #5054 ), #4263, .F. ) ; +#2412 = ORIENTED_EDGE ( 'NONE', *, *, #5030, .T. ) ; +#2413 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #781, #4070, #698, #298, #4044, #3617, #1613, #374, #3212, #4840, #1184, #1936, #1965, #4809, #1209, #2409, #3646, #1638, #2835, #5263, #3591, #2861, #2781, #4423, #2331, #2387, #4017 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.2499999999997830624, 0.3749999999996795896, 0.4374999999996278532, 0.4687499999996070366, 0.4999999999995862199, 0.6249999999995030642, 0.6874999999994662048, 0.7187499999994432232, 0.7343749999994273470, 0.7421874999994193534, 0.7460937499994111377, 0.7480468749994070299, 0.7499999999994030331, 0.8749999999997014610, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#2414 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, -0.9058473084154252675, 5.470303972386260760 ) ) ; +#2415 = CARTESIAN_POINT ( 'NONE', ( 0.6969867810375158790, 0.6044780998699861296, 5.470303972386260760 ) ) ; +#2416 = EDGE_LOOP ( 'NONE', ( #3295, #4198, #4217, #1327, #3640, #4158, #3502, #205 ) ) ; +#2417 = CARTESIAN_POINT ( 'NONE', ( -0.5318991174774210240, 0.4027099548458605849, 6.309261594101881698 ) ) ; +#2418 = CARTESIAN_POINT ( 'NONE', ( -1.048626403882710667, 0.4033521423446653764, 5.713381027863315254 ) ) ; +#2419 = ORIENTED_EDGE ( 'NONE', *, *, #3834, .F. ) ; +#2420 = EDGE_CURVE ( 'NONE', #3379, #2765, #186, .T. ) ; +#2421 = CARTESIAN_POINT ( 'NONE', ( 1.115620250748909470, -0.4420310578669133794, 5.805572500925889834 ) ) ; +#2422 = DIRECTION ( 'NONE', ( 1.000000000000000000, -7.284927983104700930E-16, 0.000000000000000000 ) ) ; +#2423 = CARTESIAN_POINT ( 'NONE', ( 0.2828974090867554247, 0.2683658126171851732, 5.934561472115681191 ) ) ; +#2424 = CARTESIAN_POINT ( 'NONE', ( -0.8250508831332120652, -0.8713730409910102059, 5.661862876581990278 ) ) ; +#2425 = CARTESIAN_POINT ( 'NONE', ( 0.6188258172887740605, 0.1712289540593392723, 6.285725290085777850 ) ) ; +#2426 = EDGE_CURVE ( 'NONE', #1316, #2448, #543, .T. ) ; +#2427 = CYLINDRICAL_SURFACE ( 'NONE', #3912, 0.2499999999999998612 ) ; +#2428 = CARTESIAN_POINT ( 'NONE', ( 0.2499970215446236932, 0.4725879520018962388, 6.158558140300982586 ) ) ; +#2429 = CARTESIAN_POINT ( 'NONE', ( -0.1104596871111662715, -0.6509459457195931886, 6.303326396938281562 ) ) ; +#2430 = CARTESIAN_POINT ( 'NONE', ( 1.174683493581610394, 0.2451911293397330549, 5.593666288758528005 ) ) ; +#2431 = ORIENTED_EDGE ( 'NONE', *, *, #1663, .F. ) ; +#2432 = FACE_OUTER_BOUND ( 'NONE', #3189, .T. ) ; +#2433 = AXIS2_PLACEMENT_3D ( 'NONE', #555, #1769, #4697 ) ; +#2434 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000, 0.000000000000000000, 0.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ; +#2435 = ORIENTED_EDGE ( 'NONE', *, *, #3531, .F. ) ; +#2436 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, -0.6794999999999999929, 3.953999999999999737 ) ) ; +#2437 = CARTESIAN_POINT ( 'NONE', ( -0.2373422642469158461, -1.176295767333544795, 5.780336627630674684 ) ) ; +#2438 = EDGE_LOOP ( 'NONE', ( #2671, #3495, #3827, #2167, #24, #1373 ) ) ; +#2439 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #3269, #5294, #4159, #2127 ), + .UNSPECIFIED., .F., .F. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 5.585053606381938707, 6.370451769779298168 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9492530216742025573, 0.9492530216742025573, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#2440 = CYLINDRICAL_SURFACE ( 'NONE', #3979, 0.1875000000000000555 ) ; +#2441 = EDGE_CURVE ( 'NONE', #326, #3027, #2238, .T. ) ; +#2442 = CARTESIAN_POINT ( 'NONE', ( 0.1875000000000004996, 0.5863793521062102831, 6.064721239031350741 ) ) ; +#2443 = VERTEX_POINT ( 'NONE', #5160 ) ; +#2444 = CARTESIAN_POINT ( 'NONE', ( -0.5932269843403498166, 0.3240602865037170432, 6.316181730184776022 ) ) ; +#2445 = AXIS2_PLACEMENT_3D ( 'NONE', #3442, #1332, #1792 ) ; +#2446 = EDGE_CURVE ( 'NONE', #2741, #5242, #2957, .T. ) ; +#2447 = CARTESIAN_POINT ( 'NONE', ( -0.2438083935940090485, 1.174970815521632517, 5.776011653735233509 ) ) ; +#2448 = VERTEX_POINT ( 'NONE', #3641 ) ; +#2449 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#2450 = FACE_BOUND ( 'NONE', #2132, .T. ) ; +#2451 = CARTESIAN_POINT ( 'NONE', ( -0.9061192675220850479, 0.7867331016054177617, 5.785842532529694715 ) ) ; +#2452 = CARTESIAN_POINT ( 'NONE', ( -0.8558839626345045026, -0.8410966889063048457, 5.722767956777643050 ) ) ; +#2453 = CARTESIAN_POINT ( 'NONE', ( 0.3519697969793245118, 0.4717237255902789750, 6.222892444258196321 ) ) ; +#2454 = CARTESIAN_POINT ( 'NONE', ( -0.2298577302011460544, 0.5457737733110349376, 6.227167535551730637 ) ) ; +#2455 = AXIS2_PLACEMENT_3D ( 'NONE', #4490, #3718, #2538 ) ; +#2456 = VECTOR ( 'NONE', #1477, 39.37007874015748143 ) ; +#2457 = PLANE ( 'NONE', #2284 ) ; +#2458 = EDGE_CURVE ( 'NONE', #2399, #4983, #1854, .T. ) ; +#2459 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#2460 = CARTESIAN_POINT ( 'NONE', ( -0.9736823578055235906, 0.3600831771678402182, 5.610249138468685004 ) ) ; +#2461 = CARTESIAN_POINT ( 'NONE', ( 0.2173682290562514441, 0.5657621069234124445, 6.243538019010360429 ) ) ; +#2462 = ORIENTED_EDGE ( 'NONE', *, *, #2166, .T. ) ; +#2463 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, 0.8125000000000000000, 3.104000000000000092 ) ) ; +#2464 = ORIENTED_EDGE ( 'NONE', *, *, #4014, .F. ) ; +#2465 = DIRECTION ( 'NONE', ( -0.6634139481689385054, 0.3830222215594888957, 0.6427876096865393629 ) ) ; +#2466 = CYLINDRICAL_SURFACE ( 'NONE', #3660, 0.2500000000000000000 ) ; +#2467 = ORIENTED_EDGE ( 'NONE', *, *, #5197, .F. ) ; +#2468 = CARTESIAN_POINT ( 'NONE', ( -0.07886133826979764561, -0.3818600137856194010, 5.926640053128930496 ) ) ; +#2469 = LINE ( 'NONE', #3356, #4082 ) ; +#2470 = DIRECTION ( 'NONE', ( 0.4999999999999998335, 0.8660254037844385966, 1.922962686383559133E-16 ) ) ; +#2471 = ORIENTED_EDGE ( 'NONE', *, *, #1963, .F. ) ; +#2472 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#2473 = CARTESIAN_POINT ( 'NONE', ( -0.3477280203617504339, -0.4172672171067433600, 6.129000000000000448 ) ) ; +#2474 = VERTEX_POINT ( 'NONE', #5187 ) ; +#2475 = EDGE_CURVE ( 'NONE', #4890, #2834, #3852, .T. ) ; +#2476 = CARTESIAN_POINT ( 'NONE', ( 1.167220813693453207, -0.2785550056202522606, 5.661389411697876461 ) ) ; +#2477 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.360911383585519550E-15, 6.378999999999999559 ) ) ; +#2478 = CARTESIAN_POINT ( 'NONE', ( -0.8590312445031430544, 0.8378900261132721239, 5.727943781059855688 ) ) ; +#2479 = CARTESIAN_POINT ( 'NONE', ( -0.8524306209261945932, -0.8445985256226394844, 5.716910670407401085 ) ) ; +#2480 = CARTESIAN_POINT ( 'NONE', ( -0.3750000000000000555, -1.139901311517799387, 5.593666288758528005 ) ) ; +#2481 = CARTESIAN_POINT ( 'NONE', ( -1.169804984826067651, -0.2677511445286588354, 5.642743906602889936 ) ) ; +#2482 = CARTESIAN_POINT ( 'NONE', ( 0.8884966430541433313, -1.023553645499020956E-15, 5.144191973780745997 ) ) ; +#2483 = DIRECTION ( 'NONE', ( 0.6634139481689382833, -0.3830222215594896729, -0.6427876096865393629 ) ) ; +#2484 = DIRECTION ( 'NONE', ( 0.8089634933040125153, -1.430646058430948811E-16, -0.5878588831525545233 ) ) ; +#2485 = CARTESIAN_POINT ( 'NONE', ( -0.1540104032012325763, -0.6260840864074137535, 6.288538363684436305 ) ) ; +#2486 = EDGE_CURVE ( 'NONE', #975, #251, #4329, .T. ) ; +#2487 = CARTESIAN_POINT ( 'NONE', ( 0.4414780203617504339, 0.2548874538971578341, 6.129000000000000448 ) ) ; +#2488 = VERTEX_POINT ( 'NONE', #4760 ) ; +#2489 = AXIS2_PLACEMENT_3D ( 'NONE', #1772, #155, #4252 ) ; +#2490 = CARTESIAN_POINT ( 'NONE', ( -0.8065764805617482436, -0.6773732562517937872, 5.626846815561745707 ) ) ; +#2491 = ORIENTED_EDGE ( 'NONE', *, *, #3559, .F. ) ; +#2492 = CARTESIAN_POINT ( 'NONE', ( 0.8999999999999999112, -1.199016778936287624E-15, 6.378999999999999559 ) ) ; +#2493 = CARTESIAN_POINT ( 'NONE', ( 0.5515456323026096674, 0.03102772592246124533, 6.179690399493361852 ) ) ; +#2494 = VERTEX_POINT ( 'NONE', #4012 ) ; +#2495 = CARTESIAN_POINT ( 'NONE', ( -0.1239632353477632953, -0.3703317119391539292, 5.960763053383216103 ) ) ; +#2496 = CARTESIAN_POINT ( 'NONE', ( 0.2500000000000004996, 0.5863793521062102831, 6.064721239031350741 ) ) ; +#2497 = DIRECTION ( 'NONE', ( 1.000000000000000000, -5.463695987328526437E-16, 0.000000000000000000 ) ) ; +#2498 = EDGE_LOOP ( 'NONE', ( #4510, #1916, #4099, #3169, #1588, #3153 ) ) ; +#2499 = FACE_OUTER_BOUND ( 'NONE', #3403, .T. ) ; +#2500 = LINE ( 'NONE', #573, #4931 ) ; +#2501 = VERTEX_POINT ( 'NONE', #2407 ) ; +#2502 = DIRECTION ( 'NONE', ( -0.5000000000000003331, 0.8660254037844383745, 3.035766082959412415E-16 ) ) ; +#2503 = LINE ( 'NONE', #817, #2688 ) ; +#2504 = DIRECTION ( 'NONE', ( -0.8627299156628208676, 0.4980973490458741049, -0.08715574274765018614 ) ) ; +#2505 = ADVANCED_FACE ( 'NONE', ( #3206 ), #1556, .T. ) ; +#2506 = CLOSED_SHELL ( 'NONE', ( #1992, #420, #4705, #4215, #3786, #552, #277, #5161, #4307, #3656, #958, #3156, #1749, #2350, #328, #2183, #1312, #4006, #1893, #3091, #1597, #5239, #249, #4605, #5115, #4902, #1741, #820, #1183, #2391, #4694, #2129, #1730, #3970, #439, #5185, #72, #5224, #1481, #445, #2844, #4520, #1248, #1046, #4863, #4818, #4192, #653, #1625, #3942, #4261, #2586, #5038, #4318, #1069, #5050, #4005, #3024, #1796, #2592, #342, #604, #5192, #5147, #1935, #4784, #1081, #2982, #2018, #4043, #3159, #2195, #4057, #3057, #753, #1161, #3328, #164, #2645, #907, #739, #2282, #4098, #1039, #2404, #1475, #2310, #1842, #1230, #923, #1104, #5053, #1414, #3199, #2761, #1107, #605, #2665, #4356, #3343, #1923, #670, #3270, #283, #2807, #1021, #3520, #4411, #494, #1013, #2220, #2411, #3476, #2004, #1531, #2505, #2245, #4346 ) ) ; +#2507 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, -0.8125000000000000000, 3.953999999999999737 ) ) ; +#2508 = CARTESIAN_POINT ( 'NONE', ( 0.2504295680702870452, -1.173581922836581137, 5.771286896598337712 ) ) ; +#2509 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -6.892264536872972008E-16, 3.104000000000000092 ) ) ; +#2510 = CARTESIAN_POINT ( 'NONE', ( 0.2500000018946877955, 0.4732702046200973345, 6.159280621619452667 ) ) ; +#2511 = CARTESIAN_POINT ( 'NONE', ( -0.8834894603224293652, -0.8120679335537718257, 5.762534315022415754 ) ) ; +#2512 = CARTESIAN_POINT ( 'NONE', ( 0.2499999999999720501, -0.4827808844380873654, 6.169373990187926537 ) ) ; +#2513 = EDGE_CURVE ( 'NONE', #3333, #4366, #4277, .T. ) ; +#2514 = CARTESIAN_POINT ( 'NONE', ( 0.2319532662592962702, 0.5418234279175258017, 6.223871975222432518 ) ) ; +#2515 = ORIENTED_EDGE ( 'NONE', *, *, #2446, .T. ) ; +#2516 = CARTESIAN_POINT ( 'NONE', ( 0.1557876249431066618, -0.3651454731557147726, 5.994446444342412583 ) ) ; +#2517 = VERTEX_POINT ( 'NONE', #2888 ) ; +#2518 = CARTESIAN_POINT ( 'NONE', ( 0.4515683818664338323, 0.7821393804843267406, 5.167302222155944591 ) ) ; +#2519 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#2520 = ORIENTED_EDGE ( 'NONE', *, *, #5283, .F. ) ; +#2521 = DIRECTION ( 'NONE', ( 0.4999999999999997780, -0.8660254037844387076, 0.000000000000000000 ) ) ; +#2522 = AXIS2_PLACEMENT_3D ( 'NONE', #1844, #2664, #1390 ) ; +#2523 = CARTESIAN_POINT ( 'NONE', ( 0.4522200175230761121, 0.01099305114730448479, 6.060532122398204713 ) ) ; +#2524 = EDGE_CURVE ( 'NONE', #1581, #139, #3040, .T. ) ; +#2525 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#2526 = ORIENTED_EDGE ( 'NONE', *, *, #127, .F. ) ; +#2527 = DIRECTION ( 'NONE', ( -0.4999999999999998335, 0.8660254037844385966, 1.922962686383559133E-16 ) ) ; +#2528 = DIRECTION ( 'NONE', ( -0.5000000000000003331, -0.8660254037844383745, -2.200518442539851472E-16 ) ) ; +#2529 = ORIENTED_EDGE ( 'NONE', *, *, #192, .F. ) ; +#2530 = VECTOR ( 'NONE', #786, 39.37007874015748143 ) ; +#2531 = CARTESIAN_POINT ( 'NONE', ( 1.169767679213018940, -0.2676609621952065199, 5.641659190553340864 ) ) ; +#2532 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, 0.8125000000000000000, 3.953999999999999737 ) ) ; +#2533 = CARTESIAN_POINT ( 'NONE', ( -0.8903672648325744454, 0.8045751113294867807, 5.770727711700100571 ) ) ; +#2534 = AXIS2_PLACEMENT_3D ( 'NONE', #82, #865, #4212 ) ; +#2535 = AXIS2_PLACEMENT_3D ( 'NONE', #1400, #2226, #1831 ) ; +#2536 = DIRECTION ( 'NONE', ( 0.5566703992264191436, 0.3213938048432695704, 0.7660444431189782355 ) ) ; +#2537 = DIRECTION ( 'NONE', ( -0.5566703992264190326, 0.3213938048432700145, -0.7660444431189780135 ) ) ; +#2538 = DIRECTION ( 'NONE', ( -0.001951631098638388368, 0.9226336559632448697, 0.3856725658119226630 ) ) ; +#2539 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#2540 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#2541 = AXIS2_PLACEMENT_3D ( 'NONE', #3787, #950, #4075 ) ; +#2542 = CARTESIAN_POINT ( 'NONE', ( 0.1874969832227489086, 1.051874449749978346, 5.643846109716862181 ) ) ; +#2543 = EDGE_CURVE ( 'NONE', #2063, #3620, #1340, .T. ) ; +#2544 = EDGE_LOOP ( 'NONE', ( #4472, #3696, #4700, #641, #1959, #3015 ) ) ; +#2545 = LINE ( 'NONE', #832, #3211 ) ; +#2546 = VERTEX_POINT ( 'NONE', #4526 ) ; +#2547 = CARTESIAN_POINT ( 'NONE', ( 0.2500000000000000000, -0.4734180295921480153, 6.159507043090530765 ) ) ; +#2548 = FACE_OUTER_BOUND ( 'NONE', #866, .T. ) ; +#2549 = ORIENTED_EDGE ( 'NONE', *, *, #3893, .F. ) ; +#2550 = AXIS2_PLACEMENT_3D ( 'NONE', #4628, #586, #2221 ) ; +#2551 = FACE_OUTER_BOUND ( 'NONE', #79, .T. ) ; +#2552 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2418, #2899, #2368, #3681 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#2553 = CARTESIAN_POINT ( 'NONE', ( 0.6714086293390425508, -0.9980026931699723658, 5.522824837521429053 ) ) ; +#2554 = CARTESIAN_POINT ( 'NONE', ( -0.6079915080223179391, 0.1189851611933679804, 6.259648644092131065 ) ) ; +#2555 = ORIENTED_EDGE ( 'NONE', *, *, #1644, .F. ) ; +#2556 = CARTESIAN_POINT ( 'NONE', ( -0.9094867810375137918, 0.2364173032616019854, 5.470303972386260760 ) ) ; +#2557 = CARTESIAN_POINT ( 'NONE', ( 0.5416161303209490185, -0.3938669003424673520, 6.311327930658204188 ) ) ; +#2558 = ORIENTED_EDGE ( 'NONE', *, *, #1807, .T. ) ; +#2559 = EDGE_CURVE ( 'NONE', #2872, #3976, #2039, .T. ) ; +#2560 = DIRECTION ( 'NONE', ( -0.5566703992264192546, -0.3213938048432691819, -0.7660444431189783465 ) ) ; +#2561 = VECTOR ( 'NONE', #2502, 39.37007874015748143 ) ; +#2562 = CARTESIAN_POINT ( 'NONE', ( 5.682243826821669072E-16, 0.5863793521062165004, 6.064721239031358735 ) ) ; +#2563 = CARTESIAN_POINT ( 'NONE', ( -1.250000000000000000, -7.725341307262254463E-16, 3.479000000000000092 ) ) ; +#2564 = CARTESIAN_POINT ( 'NONE', ( 0.2984004318903408226, -1.162303796494412955, 5.725254952226251248 ) ) ; +#2565 = CARTESIAN_POINT ( 'NONE', ( -0.2488028066943119565, -0.4566063068285771132, 6.141081488922393028 ) ) ; +#2566 = ORIENTED_EDGE ( 'NONE', *, *, #1406, .F. ) ; +#2567 = LINE ( 'NONE', #4571, #3345 ) ; +#2568 = CARTESIAN_POINT ( 'NONE', ( -0.1845071557944090446, -0.6019879651539370435, 6.271836282905964843 ) ) ; +#2569 = ORIENTED_EDGE ( 'NONE', *, *, #2458, .T. ) ; +#2570 = DIRECTION ( 'NONE', ( -0.5566703992264192546, 0.3213938048432691819, 0.7660444431189783465 ) ) ; +#2571 = ORIENTED_EDGE ( 'NONE', *, *, #5064, .F. ) ; +#2572 = EDGE_CURVE ( 'NONE', #3670, #4033, #1024, .T. ) ; +#2573 = DIRECTION ( 'NONE', ( -0.6634139481689388385, -0.3830222215594888957, 0.6427876096865389188 ) ) ; +#2574 = DIRECTION ( 'NONE', ( 0.5000000000000005551, 0.8660254037844384856, 0.000000000000000000 ) ) ; +#2575 = ORIENTED_EDGE ( 'NONE', *, *, #1557, .F. ) ; +#2576 = STYLED_ITEM ( 'NONE', ( #3070 ), #2255 ) ; +#2577 = DIRECTION ( 'NONE', ( -1.418747724434797878E-31, -2.577215088362509940E-16, 1.000000000000000000 ) ) ; +#2578 = CARTESIAN_POINT ( 'NONE', ( -0.5439363917260263692, -0.3922041198379627169, 6.311932765464190354 ) ) ; +#2579 = VECTOR ( 'NONE', #2074, 39.37007874015748854 ) ; +#2580 = EDGE_LOOP ( 'NONE', ( #1133, #2726, #81, #3276, #3906, #787, #3865 ) ) ; +#2581 = CARTESIAN_POINT ( 'NONE', ( -0.2939667827459871430, -0.4583969357459806715, 6.170428130291048419 ) ) ; +#2582 = CARTESIAN_POINT ( 'NONE', ( 0.2282712182311424642, 1.178088855335446938, 5.785842532528485904 ) ) ; +#2583 = VERTEX_POINT ( 'NONE', #2916 ) ; +#2584 = CARTESIAN_POINT ( 'NONE', ( 1.144857045804345885, -0.3596080800700229285, 5.762979355565933659 ) ) ; +#2585 = CARTESIAN_POINT ( 'NONE', ( -0.1875000000295494185, -1.066784040100515751, 5.661614435832544423 ) ) ; +#2586 = ADVANCED_FACE ( 'NONE', ( #2432 ), #5288, .F. ) ; +#2587 = DIRECTION ( 'NONE', ( 0.4999999999999998335, -0.8660254037844388186, 0.000000000000000000 ) ) ; +#2588 = CARTESIAN_POINT ( 'NONE', ( 0.3468534528553923746, -1.148778764822552034, 5.653381578853506007 ) ) ; +#2589 = DIRECTION ( 'NONE', ( -1.000000000000000000, 2.731847993664263218E-16, 0.000000000000000000 ) ) ; +#2590 = DIRECTION ( 'NONE', ( -0.6634139481689388385, -0.3830222215594888957, -0.6427876096865389188 ) ) ; +#2591 = ORIENTED_EDGE ( 'NONE', *, *, #13, .F. ) ; +#2592 = ADVANCED_FACE ( 'NONE', ( #1723 ), #2940, .F. ) ; +#2593 = CARTESIAN_POINT ( 'NONE', ( -0.2416476612724870188, -0.3060144142332240635, 5.986163717094036052 ) ) ; +#2594 = CARTESIAN_POINT ( 'NONE', ( -1.038328175854409618, 0.1664663499444960504, 5.406025211417605725 ) ) ; +#2595 = ORIENTED_EDGE ( 'NONE', *, *, #3686, .F. ) ; +#2596 = CARTESIAN_POINT ( 'NONE', ( 0.8241945409481933327, 0.8721818097158996475, 5.659874780767848002 ) ) ; +#2597 = VECTOR ( 'NONE', #2392, 39.37007874015748143 ) ; +#2598 = ORIENTED_EDGE ( 'NONE', *, *, #2458, .F. ) ; +#2599 = FACE_OUTER_BOUND ( 'NONE', #1905, .T. ) ; +#2600 = ORIENTED_EDGE ( 'NONE', *, *, #3722, .T. ) ; +#2601 = CARTESIAN_POINT ( 'NONE', ( -0.3004908847440444508, 0.2484749120707040182, 5.918960724789678274 ) ) ; +#2602 = CARTESIAN_POINT ( 'NONE', ( 0.5352280203617504339, 0.09250769068757555558, 6.129000000000000448 ) ) ; +#2603 = VERTEX_POINT ( 'NONE', #1751 ) ; +#2604 = CARTESIAN_POINT ( 'NONE', ( 0.6155368898857600524, -0.2577812653442476676, 6.309308791426159857 ) ) ; +#2605 = EDGE_LOOP ( 'NONE', ( #3702, #5231, #2529, #3273 ) ) ; +#2606 = CARTESIAN_POINT ( 'NONE', ( -0.4213759909293781081, 0.02609879971991259026, 6.024604706213859018 ) ) ; +#2607 = EDGE_CURVE ( 'NONE', #3806, #1177, #1207, .T. ) ; +#2608 = EDGE_CURVE ( 'NONE', #2091, #685, #2545, .T. ) ; +#2609 = CARTESIAN_POINT ( 'NONE', ( 0.1425606827521922193, -0.6336059468288985919, 6.293244158686118972 ) ) ; +#2610 = CARTESIAN_POINT ( 'NONE', ( -0.3457375383327687124, 0.4713173251573772315, 6.218077904444636594 ) ) ; +#2611 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, 0.8125000000000000000, 3.104000000000000092 ) ) ; +#2612 = PLANE ( 'NONE', #4276 ) ; +#2613 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #1297, #2867, #4455, #4870 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 3.054326190990077627, 3.839724354387440641 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9492530216742018911, 0.9492530216742018911, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#2614 = CARTESIAN_POINT ( 'NONE', ( -0.2492480367532426411, -0.4598761190975950708, 6.144755415752172212 ) ) ; +#2615 = CARTESIAN_POINT ( 'NONE', ( 0.8580018974552373612, -0.8389434441542945597, 5.726267908650390481 ) ) ; +#2616 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4595, #4513, #1652, #4142, #4986, #2451, #1330, #4114, #4055, #5277, #3309, #1624, #2533, #2904, #3252, #1223, #4086, #413, #850, #2478, #3714, #36, #4540, #466, #2636, #171, #3440, #2162, #1817, #3888, #3032, #4641, #4691, #5061, #4243, #2258, #1007, #5013 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999998283040, 0.1874999999997424560, 0.2187499999996994904, 0.2343749999996745381, 0.2421874999996620481, 0.2460937499996530275, 0.2499999999996440347, 0.3749999999993793853, 0.4374999999992435495, 0.4687499999991755484, 0.4843749999991383004, 0.4921874999991235344, 0.4960937499991164845, 0.4999999999991093791, 0.6249999999991129318, 0.6874999999991191491, 0.7187499999991221467, 0.7343749999991191491, 0.7421874999991137090, 0.7460937499991108224, 0.7480468749991132649, 0.7499999999991157074, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#2617 = VECTOR ( 'NONE', #2653, 39.37007874015748143 ) ; +#2618 = ORIENTED_EDGE ( 'NONE', *, *, #4384, .F. ) ; +#2619 = LINE ( 'NONE', #102, #1469 ) ; +#2620 = AXIS2_PLACEMENT_3D ( 'NONE', #728, #2364, #1969 ) ; +#2621 = PLANE ( 'NONE', #4163 ) ; +#2622 = EDGE_CURVE ( 'NONE', #2696, #3555, #1214, .T. ) ; +#2623 = ORIENTED_EDGE ( 'NONE', *, *, #1644, .T. ) ; +#2624 = CARTESIAN_POINT ( 'NONE', ( 0.8246507842668381327, 0.8717502743459264458, 5.660936345322407526 ) ) ; +#2625 = FACE_OUTER_BOUND ( 'NONE', #1781, .T. ) ; +#2626 = VERTEX_POINT ( 'NONE', #4917 ) ; +#2627 = CARTESIAN_POINT ( 'NONE', ( 0.3771199155814953796, -0.09918631620799893411, 5.943432839795605993 ) ) ; +#2628 = AXIS2_PLACEMENT_3D ( 'NONE', #108, #4610, #1699 ) ; +#2629 = CARTESIAN_POINT ( 'NONE', ( -0.6155362794742130772, -0.2549772964200451852, 6.308511991671789332 ) ) ; +#2630 = ORIENTED_EDGE ( 'NONE', *, *, #4401, .T. ) ; +#2631 = CARTESIAN_POINT ( 'NONE', ( 0.2358497986165577487, -0.3871667473999559905, 6.061713265494639735 ) ) ; +#2632 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ; +#2633 = ORIENTED_EDGE ( 'NONE', *, *, #2608, .F. ) ; +#2634 = CIRCLE ( 'NONE', #322, 0.1330000000000000626 ) ; +#2635 = CARTESIAN_POINT ( 'NONE', ( 1.139322950327192219, -0.3767555181623463700, 5.776307826045025351 ) ) ; +#2636 = CARTESIAN_POINT ( 'NONE', ( -0.8468070823326449004, 0.8502663507680016108, 5.707125196575578485 ) ) ; +#2637 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #43, #1690, #1984, #2802, #3201, #3317, #2828, #4941, #1287, #4467, #2034, #745, #3608, #3667, #799, #5228, #1578, #1174, #4884, #4491, #5022, #1367, #2512, #964 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999983178456, 0.2499999999966356912, 0.3749999999949535368, 0.4374999999941209250, 0.4687499999937170814, 0.4843749999935147987, 0.4921874999933935069, 0.4960937499933562589, 0.4980468749933397166, 0.4990234374933533723, 0.4999999999933669725, 0.7499999999966835418, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#2638 = DIRECTION ( 'NONE', ( -1.418747724434797878E-31, -2.577215088362509940E-16, 1.000000000000000000 ) ) ; +#2639 = EDGE_CURVE ( 'NONE', #314, #3670, #2832, .T. ) ; +#2640 = CARTESIAN_POINT ( 'NONE', ( 0.8427495901376816922, -0.7030679893844432593, 5.679329421362769637 ) ) ; +#2641 = CARTESIAN_POINT ( 'NONE', ( 0.9406202507489094256, 0.7451399491914626472, 5.805572500925889834 ) ) ; +#2642 = DIRECTION ( 'NONE', ( 0.6634139481689388385, 0.3830222215594888957, 0.6427876096865389188 ) ) ; +#2643 = CARTESIAN_POINT ( 'NONE', ( -0.1598409623125622847, 0.6219622267140655358, 6.285866341515824907 ) ) ; +#2644 = ORIENTED_EDGE ( 'NONE', *, *, #3240, .T. ) ; +#2645 = ADVANCED_FACE ( 'NONE', ( #49 ), #3724, .F. ) ; +#2646 = CARTESIAN_POINT ( 'NONE', ( -3.581366610240468148E-17, -1.273684206347440940E-15, 5.986163717094036052 ) ) ; +#2647 = ORIENTED_EDGE ( 'NONE', *, *, #5189, .T. ) ; +#2648 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.294298002108009606E-15, 6.079000000000000625 ) ) ; +#2649 = AXIS2_PLACEMENT_3D ( 'NONE', #985, #5093, #1820 ) ; +#2650 = EDGE_CURVE ( 'NONE', #2872, #4973, #3818, .T. ) ; +#2651 = DIRECTION ( 'NONE', ( -0.8627299156628220889, -0.4980973490458718844, -0.08715574274765004736 ) ) ; +#2652 = EDGE_LOOP ( 'NONE', ( #2750, #427, #594, #1971 ) ) ; +#2653 = DIRECTION ( 'NONE', ( 6.250248031976811775E-16, 0.7660444431189782355, -0.6427876096865391409 ) ) ; +#2654 = CARTESIAN_POINT ( 'NONE', ( -0.5101262397198245147, -0.4199814910023704218, 6.303783207328213400 ) ) ; +#2655 = ORIENTED_EDGE ( 'NONE', *, *, #851, .F. ) ; +#2656 = CARTESIAN_POINT ( 'NONE', ( 0.04790561247211244655, 0.3869956233953192881, 5.911591706028343829 ) ) ; +#2657 = CARTESIAN_POINT ( 'NONE', ( -0.4852473382075678798, 0.005716202931126025330, 6.099710673691821405 ) ) ; +#2658 = AXIS2_PLACEMENT_3D ( 'NONE', #1605, #2380, #773 ) ; +#2659 = FACE_OUTER_BOUND ( 'NONE', #4227, .T. ) ; +#2660 = EDGE_LOOP ( 'NONE', ( #2630, #2259, #3416, #5174 ) ) ; +#2661 = CARTESIAN_POINT ( 'NONE', ( -0.6773525727996496659, 0.3910696902421629817, 5.167302222155944591 ) ) ; +#2662 = CARTESIAN_POINT ( 'NONE', ( -0.2803587792444822147, 1.166819047148083044, 5.745448354737937358 ) ) ; +#2663 = CARTESIAN_POINT ( 'NONE', ( -1.167719486180632371, 0.2764589872310752039, 5.657733989962813403 ) ) ; +#2664 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#2665 = ADVANCED_FACE ( 'NONE', ( #3321 ), #1234, .F. ) ; +#2666 = CARTESIAN_POINT ( 'NONE', ( -0.5352280203617504339, -0.09250769068757873359, 6.129000000000000448 ) ) ; +#2667 = ORIENTED_EDGE ( 'NONE', *, *, #3867, .F. ) ; +#2668 = CARTESIAN_POINT ( 'NONE', ( 1.017612079093787258, 0.3710122568151794642, 5.661614435832778014 ) ) ; +#2669 = CARTESIAN_POINT ( 'NONE', ( -0.3617356605849697537, -0.1456369237934660998, 5.914219959703763685 ) ) ; +#2670 = LINE ( 'NONE', #1368, #390 ) ; +#2671 = ORIENTED_EDGE ( 'NONE', *, *, #877, .F. ) ; +#2672 = LINE ( 'NONE', #1419, #476 ) ; +#2673 = CARTESIAN_POINT ( 'NONE', ( -0.2850339750688150597, 0.4532022594927625492, 6.159485386716888833 ) ) ; +#2674 = CYLINDRICAL_SURFACE ( 'NONE', #493, 0.2499999999999997502 ) ; +#2675 = ORIENTED_EDGE ( 'NONE', *, *, #1004, .F. ) ; +#2676 = CARTESIAN_POINT ( 'NONE', ( -0.3069931060055459127, 0.2404538096476699083, 5.914219959718569619 ) ) ; +#2677 = VERTEX_POINT ( 'NONE', #1290 ) ; +#2678 = CARTESIAN_POINT ( 'NONE', ( -0.09489975004219605714, 0.3782035920261224149, 5.937453764007372570 ) ) ; +#2679 = DIRECTION ( 'NONE', ( -1.000000000000000000, 3.642463991552350465E-16, 0.000000000000000000 ) ) ; +#2680 = CARTESIAN_POINT ( 'NONE', ( -0.4379185432238238973, 0.01668107706571064081, 6.043708584774296177 ) ) ; +#2681 = EDGE_CURVE ( 'NONE', #1725, #5186, #4412, .T. ) ; +#2682 = CARTESIAN_POINT ( 'NONE', ( -0.8898490325666070788, -4.044939027510162589E-16, 5.130805054534240739 ) ) ; +#2683 = EDGE_LOOP ( 'NONE', ( #1933, #948, #3483, #4262, #1609, #4169 ) ) ; +#2684 = CARTESIAN_POINT ( 'NONE', ( -0.8884966430541429983, -4.450552915580881847E-16, 5.144191973780745997 ) ) ; +#2685 = CARTESIAN_POINT ( 'NONE', ( 0.2850339750687379548, -0.4532022594927843651, 6.159485386716857747 ) ) ; +#2686 = CARTESIAN_POINT ( 'NONE', ( -1.158244406828226492, 0.3137803926000802823, 5.714158253673608634 ) ) ; +#2687 = CARTESIAN_POINT ( 'NONE', ( 0.2475740460494507689, 0.4173784205322744745, 6.099710673681941309 ) ) ; +#2688 = VECTOR ( 'NONE', #4461, 39.37007874015748143 ) ; +#2689 = CARTESIAN_POINT ( 'NONE', ( -0.1318685831343379966, 0.6400825264895803057, 6.297148730448868470 ) ) ; +#2690 = DIRECTION ( 'NONE', ( 0.6634139481689371731, -0.3830222215594895618, -0.6427876096865402511 ) ) ; +#2691 = CARTESIAN_POINT ( 'NONE', ( 0.6135904484930136960, -0.1412060984789980378, 6.271836282905964843 ) ) ; +#2692 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999897 ), #1471 ); +#2693 = FACE_OUTER_BOUND ( 'NONE', #2354, .T. ) ; +#2694 = ORIENTED_EDGE ( 'NONE', *, *, #1433, .F. ) ; +#2695 = CARTESIAN_POINT ( 'NONE', ( -1.037840268079750050, 0.3971247639353071013, 5.309607069964629389 ) ) ; +#2696 = VERTEX_POINT ( 'NONE', #1045 ) ; +#2697 = CIRCLE ( 'NONE', #4410, 0.1330000000000000626 ) ; +#2698 = CARTESIAN_POINT ( 'NONE', ( -3.581366610240468148E-17, -1.249889081122999952E-15, 5.879000000000000448 ) ) ; +#2699 = VECTOR ( 'NONE', #2298, 39.37007874015748854 ) ; +#2700 = EDGE_CURVE ( 'NONE', #3596, #4475, #3805, .T. ) ; +#2701 = CARTESIAN_POINT ( 'NONE', ( 0.2500000000000000000, -0.9460215340208346646, 5.518181750081197379 ) ) ; +#2702 = ORIENTED_EDGE ( 'NONE', *, *, #1543, .T. ) ; +#2703 = CARTESIAN_POINT ( 'NONE', ( 0.2297440553350880987, -0.4111938274493885936, 6.082756626978034653 ) ) ; +#2704 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #3031, #3439, #1056, #3843, #2657, #3463, #5086, #2184, #1429, #1888, #3887, #4664, #2680, #221, #4270, #2283, #3492, #5037, #646, #1814, #598, #2606, #955, #4319, #1458, #2233, #4221 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.2500000000000350275, 0.3750000000000525135, 0.4375000000000610068, 0.4687500000000708322, 0.5000000000000806022, 0.6250000000001317835, 0.6875000000001622036, 0.7187500000001820766, 0.7343750000001918465, 0.7421875000001969536, 0.7460937500001995071, 0.7480468750002007283, 0.7500000000002020606, 0.8750000000001010303, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#2705 = CARTESIAN_POINT ( 'NONE', ( -0.08244784093783184831, 0.3811033803103248130, 5.928874456620131461 ) ) ; +#2706 = CARTESIAN_POINT ( 'NONE', ( 0.2610131848822615508, 1.171304821103157146, 5.763258631752544048 ) ) ; +#2707 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, -0.8125000000000000000, 3.479000000000000092 ) ) ; +#2708 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #1504 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #2379, #3097, #3607 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) ); +#2709 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.6427876096865391409, 0.7660444431189782355 ) ) ; +#2710 = VERTEX_POINT ( 'NONE', #1827 ) ; +#2711 = AXIS2_PLACEMENT_3D ( 'NONE', #3541, #2632, #3885 ) ; +#2712 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 1.625000000000000000, 3.953999999999999737 ) ) ; +#2713 = CARTESIAN_POINT ( 'NONE', ( 0.4174195504496413522, -0.4645877227965591882, 6.265682740389506122 ) ) ; +#2714 = EDGE_CURVE ( 'NONE', #3100, #1076, #4283, .T. ) ; +#2715 = CARTESIAN_POINT ( 'NONE', ( -1.168298320092062248, 0.2740054808486342419, 5.653381578854371092 ) ) ; +#2716 = CARTESIAN_POINT ( 'NONE', ( 0.5999999999999999778, -1.039230484541330712, 5.473691469039889235 ) ) ; +#2717 = CARTESIAN_POINT ( 'NONE', ( 0.1875000000295499736, 1.066784040100659192, 5.661614435832721171 ) ) ; +#2718 = VERTEX_POINT ( 'NONE', #1776 ) ; +#2719 = CARTESIAN_POINT ( 'NONE', ( 0.5986486003035781378, -0.09463484623127814410, 6.243538158948492622 ) ) ; +#2720 = CARTESIAN_POINT ( 'NONE', ( -0.3691786772971962782, -0.1254780963871217903, 5.924878623414200796 ) ) ; +#2721 = CARTESIAN_POINT ( 'NONE', ( -0.3750000000000000555, -0.9824517527273228801, 5.406025211417605725 ) ) ; +#2722 = EDGE_LOOP ( 'NONE', ( #4778, #1866, #166, #1392 ) ) ; +#2723 = DIRECTION ( 'NONE', ( -3.061616997868379936E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +#2724 = LINE ( 'NONE', #4363, #4844 ) ; +#2725 = VERTEX_POINT ( 'NONE', #1851 ) ; +#2726 = ORIENTED_EDGE ( 'NONE', *, *, #4736, .T. ) ; +#2727 = CARTESIAN_POINT ( 'NONE', ( 0.3015261887315819900, -0.2472134351739512237, 5.918178515716579824 ) ) ; +#2728 = EDGE_CURVE ( 'NONE', #5024, #3120, #2672, .T. ) ; +#2729 = DIRECTION ( 'NONE', ( -3.061616997868379936E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +#2730 = DIRECTION ( 'NONE', ( -0.6634139481689380613, -0.3830222215594886181, -0.6427876096865401401 ) ) ; +#2731 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#2732 = DIRECTION ( 'NONE', ( -0.8089634933040130704, 0.000000000000000000, 0.5878588831525539682 ) ) ; +#2733 = VERTEX_POINT ( 'NONE', #5049 ) ; +#2734 = CARTESIAN_POINT ( 'NONE', ( -0.4290832926986039575, 0.4607818666749370351, 6.271836282905964843 ) ) ; +#2735 = EDGE_CURVE ( 'NONE', #92, #4152, #3235, .T. ) ; +#2736 = CARTESIAN_POINT ( 'NONE', ( -0.3429737442837104688, 1.149943011640904622, 5.660336885745528512 ) ) ; +#2737 = CARTESIAN_POINT ( 'NONE', ( 0.4757302947241001112, -0.006171508064508407325, 6.088400557726404649 ) ) ; +#2738 = CARTESIAN_POINT ( 'NONE', ( 0.4533260224253213844, -1.114133941910704806, 5.562957933457569837 ) ) ; +#2739 = EDGE_CURVE ( 'NONE', #4506, #191, #3480, .T. ) ; +#2740 = CARTESIAN_POINT ( 'NONE', ( 0.8300150142330680048, -0.6957156622975894100, 5.661478534227732951 ) ) ; +#2741 = VERTEX_POINT ( 'NONE', #4309 ) ; +#2742 = CARTESIAN_POINT ( 'NONE', ( 0.5930090812617343499, -0.08315801033596113834, 6.234903360088334345 ) ) ; +#2743 = LENGTH_MEASURE_WITH_UNIT ( LENGTH_MEASURE( 0.02539999999999999897 ), #1415 ); +#2744 = CARTESIAN_POINT ( 'NONE', ( -0.2373706572168219620, -0.3930556630067376656, 6.068692042432893174 ) ) ; +#2745 = ORIENTED_EDGE ( 'NONE', *, *, #1352, .F. ) ; +#2746 = SURFACE_STYLE_USAGE ( .BOTH. , #1474 ) ; +#2747 = EDGE_CURVE ( 'NONE', #1788, #762, #4394, .T. ) ; +#2748 = CARTESIAN_POINT ( 'NONE', ( -3.933861110876538837E-16, -0.5863793521062189429, 6.064721239031358735 ) ) ; +#2749 = CARTESIAN_POINT ( 'NONE', ( 1.135899320428790160, 0.3869659399604940542, 5.783189315286000109 ) ) ; +#2750 = ORIENTED_EDGE ( 'NONE', *, *, #440, .T. ) ; +#2751 = VERTEX_POINT ( 'NONE', #3831 ) ; +#2752 = CARTESIAN_POINT ( 'NONE', ( 0.2405747446562309100, -0.4287596476362490194, 6.107280644754174759 ) ) ; +#2753 = FACE_OUTER_BOUND ( 'NONE', #3851, .T. ) ; +#2754 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.7660444431189790127, 0.6427876096865380307 ) ) ; +#2755 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #5, #4112, #1650, #4903, #2531, #66, #4511, #4957, #3712, #4170, #2476, #436, #34, #93, #3307, #1738, #1863, #194, #1005, #3914, #5116, #1837, #4640, #4714, #3058, #248, #170, #2584, #4295, #5139, #1407, #620, #2635, #1484, #3106, #2257, #1030, #4690 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999996690425, 0.1874999999995036193, 0.2187499999994208244, 0.2343749999993742505, 0.2421874999993560984, 0.2460937499993471334, 0.2480468749993478550, 0.2499999999993485766, 0.3749999999995530242, 0.4374999999996552202, 0.4687499999997106204, 0.4843749999997337685, 0.4921874999997452593, 0.4960937499997509215, 0.4999999999997566391, 0.6249999999998577804, 0.6874999999999081846, 0.7187499999999333866, 0.7343749999999431566, 0.7421874999999481526, 0.7460937499999475975, 0.7499999999999470424, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#2756 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, -1.109813176013889846, 5.713381027863315254 ) ) ; +#2757 = CARTESIAN_POINT ( 'NONE', ( 0.5078194151786449284, 0.2931896760531070845, 6.064721239031358735 ) ) ; +#2758 = ORIENTED_EDGE ( 'NONE', *, *, #3257, .T. ) ; +#2759 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#2760 = CARTESIAN_POINT ( 'NONE', ( -1.115620250748909470, -0.4420310578669118251, 5.805572500925889834 ) ) ; +#2761 = ADVANCED_FACE ( 'NONE', ( #3404 ), #5104, .F. ) ; +#2762 = FACE_OUTER_BOUND ( 'NONE', #3127, .T. ) ; +#2763 = CARTESIAN_POINT ( 'NONE', ( 0.2385244859758636482, 0.3970231469311229500, 6.073407060711049077 ) ) ; +#2764 = CARTESIAN_POINT ( 'NONE', ( -1.007915077231789379E-16, 0.6756856571182421334, 6.316136173767027628 ) ) ; +#2765 = VERTEX_POINT ( 'NONE', #1449 ) ; +#2766 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#2767 = CIRCLE ( 'NONE', #1845, 0.2500000000000001665 ) ; +#2768 = CARTESIAN_POINT ( 'NONE', ( -0.2331185387133084264, -0.3662619258874837413, 6.038876983668627574 ) ) ; +#2769 = CARTESIAN_POINT ( 'NONE', ( -0.2837143861185435489, 0.4524680740079748409, 6.157868532992916144 ) ) ; +#2770 = AXIS2_PLACEMENT_3D ( 'NONE', #4048, #3216, #2497 ) ; +#2771 = CARTESIAN_POINT ( 'NONE', ( 0.9236543808441199932, 0.5332721054185275422, 5.661815083166008122 ) ) ; +#2772 = EDGE_CURVE ( 'NONE', #3348, #267, #1164, .T. ) ; +#2773 = ORIENTED_EDGE ( 'NONE', *, *, #3038, .F. ) ; +#2774 = VERTEX_POINT ( 'NONE', #4704 ) ; +#2775 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #2716, #1977, #2738, #3167 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.617993877991494855, 2.823768949661914718 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9964744966727187014, 0.9964744966727187014, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#2776 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#2777 = AXIS2_PLACEMENT_3D ( 'NONE', #2321, #4408, #3146 ) ; +#2778 = CARTESIAN_POINT ( 'NONE', ( 0.2416476612724867690, 0.3060144142332218431, 5.879000000000000448 ) ) ; +#2779 = VERTEX_POINT ( 'NONE', #3903 ) ; +#2780 = VECTOR ( 'NONE', #2570, 39.37007874015748143 ) ; +#2781 = CARTESIAN_POINT ( 'NONE', ( -0.1843949989743877693, 0.3761160450711192871, 6.020663318481009441 ) ) ; +#2782 = CARTESIAN_POINT ( 'NONE', ( -0.2142550122189758322, -1.180724953196676585, 5.793167151936405190 ) ) ; +#2783 = ORIENTED_EDGE ( 'NONE', *, *, #1010, .T. ) ; +#2784 = CIRCLE ( 'NONE', #998, 0.1874999999999998612 ) ; +#2785 = CARTESIAN_POINT ( 'NONE', ( -0.4565148233163910940, -0.009713982466242034042, 6.065649956547092714 ) ) ; +#2786 = CARTESIAN_POINT ( 'NONE', ( 0.7887281695052992259, -0.2532998267649578805, 5.355730255524930428 ) ) ; +#2787 = ORIENTED_EDGE ( 'NONE', *, *, #861, .T. ) ; +#2788 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.8590516373556170704, -0.5118889375212491988 ) ) ; +#2789 = CARTESIAN_POINT ( 'NONE', ( -1.040726955420473221, -0.3891613873617376651, 5.696772153281769668 ) ) ; +#2790 = CARTESIAN_POINT ( 'NONE', ( 0.4346492031253031962, -0.01829344965479157148, 6.039897479813159720 ) ) ; +#2791 = DIRECTION ( 'NONE', ( -0.6634139481689380613, 0.3830222215594901169, -0.6427876096865391409 ) ) ; +#2792 = FACE_OUTER_BOUND ( 'NONE', #3290, .T. ) ; +#2793 = VECTOR ( 'NONE', #3647, 39.37007874015748143 ) ; +#2794 = EDGE_CURVE ( 'NONE', #5217, #178, #1801, .T. ) ; +#2795 = CARTESIAN_POINT ( 'NONE', ( -0.2363774407522284682, -0.5327295030755693217, 6.216034119355600573 ) ) ; +#2796 = CARTESIAN_POINT ( 'NONE', ( 0.3528936888276622552, 0.4717692472702824658, 6.223590640882484593 ) ) ; +#2797 = CONICAL_SURFACE ( 'NONE', #1179, 0.5097749077943197760, 0.6981317007977323463 ) ; +#2798 = AXIS2_PLACEMENT_3D ( 'NONE', #1706, #4589, #1735 ) ; +#2799 = CARTESIAN_POINT ( 'NONE', ( -0.4449245162833037615, 0.7706318677356882585, 5.130805054534240739 ) ) ; +#2800 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1267, #3807, #515, #2092, #1668, #107, #5000, #4946, #1698, #2970, #3727, #3293, #3407, #2150, #2123, #1753, #3700, #2067, #4102 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 2, 2, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.2500000000000069944, 0.3750000000000110467, 0.4375000000000130451, 0.4687500000000122125, 0.5000000000000114353, 0.6250000000000061062, 0.6875000000000041078, 0.7500000000000021094, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#2801 = CARTESIAN_POINT ( 'NONE', ( 0.8569206356194958296, 0.8400473356006262771, 5.724489629099176469 ) ) ; +#2802 = CARTESIAN_POINT ( 'NONE', ( 0.2128156592175295403, -0.5720161032116576338, 6.248577832844415703 ) ) ; +#2803 = LINE ( 'NONE', #800, #840 ) ; +#2804 = ORIENTED_EDGE ( 'NONE', *, *, #4833, .T. ) ; +#2805 = ORIENTED_EDGE ( 'NONE', *, *, #4793, .T. ) ; +#2806 = CARTESIAN_POINT ( 'NONE', ( 0.3247038295761492388, -0.2162887610801697558, 5.904804989335398879 ) ) ; +#2807 = ADVANCED_FACE ( 'NONE', ( #3529 ), #5154, .T. ) ; +#2808 = LINE ( 'NONE', #4179, #17 ) ; +#2809 = ORIENTED_EDGE ( 'NONE', *, *, #1975, .F. ) ; +#2810 = DIRECTION ( 'NONE', ( 0.6634139481689388385, 0.3830222215594888957, -0.6427876096865389188 ) ) ; +#2811 = CARTESIAN_POINT ( 'NONE', ( 0.2416476612724870188, 0.3060144142332220651, 5.986163717094036052 ) ) ; +#2812 = ORIENTED_EDGE ( 'NONE', *, *, #4092, .T. ) ; +#2813 = DIRECTION ( 'NONE', ( -0.8089634933040121823, 0.000000000000000000, 0.5878588831525550784 ) ) ; +#2814 = DIRECTION ( 'NONE', ( 1.000000000000000000, -1.092739197465705287E-15, 0.000000000000000000 ) ) ; +#2815 = EDGE_LOOP ( 'NONE', ( #5084, #331, #3322, #3562 ) ) ; +#2816 = LINE ( 'NONE', #2841, #3833 ) ; +#2817 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, -0.8125000000000000000, 3.104000000000000092 ) ) ; +#2818 = CARTESIAN_POINT ( 'NONE', ( -1.155784830624462467, 0.3227295437298543512, 5.725254952226173089 ) ) ; +#2819 = CARTESIAN_POINT ( 'NONE', ( 1.004751182560740210E-16, 0.8204416026402755469, 5.135162841671623291 ) ) ; +#2820 = CARTESIAN_POINT ( 'NONE', ( 0.8300573742042647307, -0.6957401712377592196, 5.661537811842443979 ) ) ; +#2821 = CARTESIAN_POINT ( 'NONE', ( -0.8438270040094141278, -0.8531976461386751032, 5.701330577500438146 ) ) ; +#2822 = MANIFOLD_SOLID_BREP ( 'Imported1', #2506 ) ; +#2823 = CARTESIAN_POINT ( 'NONE', ( 0.6096253817663458419, 0.2805697043074972807, 6.312462533169671985 ) ) ; +#2824 = CARTESIAN_POINT ( 'NONE', ( -0.2371346659218926956, -0.3922062209662574017, 6.067680161938037386 ) ) ; +#2825 = EDGE_CURVE ( 'NONE', #1540, #1314, #2117, .T. ) ; +#2826 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#2827 = AXIS2_PLACEMENT_3D ( 'NONE', #4414, #5257, #4038 ) ; +#2828 = CARTESIAN_POINT ( 'NONE', ( 0.2270575473295464997, -0.5507688678422072437, 6.231305296303346175 ) ) ; +#2829 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#2830 = EDGE_CURVE ( 'NONE', #1577, #2517, #4596, .T. ) ; +#2831 = ORIENTED_EDGE ( 'NONE', *, *, #1464, .T. ) ; +#2832 = LINE ( 'NONE', #4153, #3474 ) ; +#2833 = EDGE_CURVE ( 'NONE', #113, #142, #4777, .T. ) ; +#2834 = VERTEX_POINT ( 'NONE', #4007 ) ; +#2835 = CARTESIAN_POINT ( 'NONE', ( -0.1888147729165009225, 0.3783406711899497954, 6.025386023352657716 ) ) ; +#2836 = FACE_OUTER_BOUND ( 'NONE', #2815, .T. ) ; +#2837 = EDGE_LOOP ( 'NONE', ( #916, #2419, #1190, #373 ) ) ; +#2838 = LINE ( 'NONE', #2893, #3302 ) ; +#2839 = DIRECTION ( 'NONE', ( -1.000000000000000000, 1.224646799147351975E-16, 0.000000000000000000 ) ) ; +#2840 = VERTEX_POINT ( 'NONE', #2326 ) ; +#2841 = CARTESIAN_POINT ( 'NONE', ( -1.990051048614448869E-16, -1.491999999999999993, 3.953999999999999737 ) ) ; +#2842 = CARTESIAN_POINT ( 'NONE', ( -0.9899106880391774776, 0.3598290941356233619, 5.626846815561813209 ) ) ; +#2843 = EDGE_LOOP ( 'NONE', ( #2302, #4998, #4711, #2279 ) ) ; +#2844 = ADVANCED_FACE ( 'NONE', ( #3952 ), #290, .F. ) ; +#2845 = CARTESIAN_POINT ( 'NONE', ( -1.155962650821355187, 0.3220913716730512966, 5.724489629098883370 ) ) ; +#2846 = FACE_OUTER_BOUND ( 'NONE', #4530, .T. ) ; +#2847 = AXIS2_PLACEMENT_3D ( 'NONE', #438, #3769, #2504 ) ; +#2848 = CARTESIAN_POINT ( 'NONE', ( 0.2891266074024548827, 0.2616161255090166948, 5.928591840970970139 ) ) ; +#2849 = CARTESIAN_POINT ( 'NONE', ( -0.2009521206418030947, -0.5860280785193205944, 6.259648185230126671 ) ) ; +#2850 = CARTESIAN_POINT ( 'NONE', ( 0.4174200995791695901, 0.4645875436166718719, 6.265683030098574413 ) ) ; +#2851 = DIRECTION ( 'NONE', ( -0.001951631098638388368, -0.9226336559632448697, 0.3856725658119226630 ) ) ; +#2852 = DIRECTION ( 'NONE', ( -4.370956789862821150E-16, -0.6427876096865391409, 0.7660444431189782355 ) ) ; +#2853 = CARTESIAN_POINT ( 'NONE', ( -0.1065803487078998829, -0.6527008856162399564, 6.304293099648540455 ) ) ; +#2854 = CARTESIAN_POINT ( 'NONE', ( 0.8573980736491590982, 0.7067151167014341651, 5.696783350770300736 ) ) ; +#2855 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.8590516373556170704, -0.5118889375212491988 ) ) ; +#2856 = ORIENTED_EDGE ( 'NONE', *, *, #1697, .F. ) ; +#2857 = CARTESIAN_POINT ( 'NONE', ( -0.8176574784459627043, -0.4720747652856866483, 5.438164591901928802 ) ) ; +#2858 = AXIS2_PLACEMENT_3D ( 'NONE', #3921, #3968, #307 ) ; +#2859 = EDGE_LOOP ( 'NONE', ( #2038, #2555, #638, #2076 ) ) ; +#2860 = EDGE_CURVE ( 'NONE', #568, #1354, #3711, .T. ) ; +#2861 = CARTESIAN_POINT ( 'NONE', ( -0.1880857718988854788, 0.3779717125496019903, 6.024604706213776417 ) ) ; +#2862 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -0.7821393804843288500, 5.167302222155944591 ) ) ; +#2863 = ORIENTED_EDGE ( 'NONE', *, *, #5079, .F. ) ; +#2864 = CARTESIAN_POINT ( 'NONE', ( 0.08408373475396857533, -0.3807477961378480380, 5.929924902836115841 ) ) ; +#2865 = CARTESIAN_POINT ( 'NONE', ( 0.5348642325373037520, 0.02012887141224921697, 6.159280879745217874 ) ) ; +#2866 = AXIS2_PLACEMENT_3D ( 'NONE', #4471, #479, #2120 ) ; +#2867 = CARTESIAN_POINT ( 'NONE', ( 0.4442483215270711105, -0.7694606640620843541, 5.144191973780745997 ) ) ; +#2868 = VERTEX_POINT ( 'NONE', #3342 ) ; +#2869 = AXIS2_PLACEMENT_3D ( 'NONE', #738, #3168, #3194 ) ; +#2870 = CARTESIAN_POINT ( 'NONE', ( -0.3502615233088344215, -0.4715603333189596347, 6.221523596684162882 ) ) ; +#2871 = LINE ( 'NONE', #1620, #234 ) ; +#2872 = VERTEX_POINT ( 'NONE', #1604 ) ; +#2873 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 1.625000000000000000, 3.479000000000000092 ) ) ; +#2874 = CARTESIAN_POINT ( 'NONE', ( 0.2499999999999997224, -0.5097749077943206641, 6.129000000000000448 ) ) ; +#2875 = CARTESIAN_POINT ( 'NONE', ( 0.3710121431915813783, 0.1199454881039222071, 5.928356580365021777 ) ) ; +#2876 = CARTESIAN_POINT ( 'NONE', ( -0.1845071557944090446, -0.6019879651539370435, 6.271836282905964843 ) ) ; +#2877 = EDGE_CURVE ( 'NONE', #1675, #1342, #3611, .T. ) ; +#2878 = CARTESIAN_POINT ( 'NONE', ( 0.6166263335848140015, 0.2484856839155532571, 6.307292874806602612 ) ) ; +#2879 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, 0.9455000000000001181, 3.104000000000000092 ) ) ; +#2880 = DIRECTION ( 'NONE', ( -0.5566703992264190326, 0.3213938048432700145, 0.7660444431189780135 ) ) ; +#2881 = VECTOR ( 'NONE', #4780, 39.37007874015748854 ) ; +#2882 = CARTESIAN_POINT ( 'NONE', ( 0.2496971457903294500, 0.4648913831293951526, 6.150277400613047618 ) ) ; +#2883 = CYLINDRICAL_SURFACE ( 'NONE', #2658, 1.199999999999999956 ) ; +#2884 = CIRCLE ( 'NONE', #1441, 2.250000000000000000 ) ; +#2885 = CARTESIAN_POINT ( 'NONE', ( 0.1875000000000000278, -1.066783749530909597, 5.661614086336346219 ) ) ; +#2886 = CARTESIAN_POINT ( 'NONE', ( 0.2430395290309557976, 0.5159352790152966772, 6.201076894143790597 ) ) ; +#2887 = VERTEX_POINT ( 'NONE', #4519 ) ; +#2888 = CARTESIAN_POINT ( 'NONE', ( -0.8719867810375157013, 0.3013692085454350300, 5.470303972386260760 ) ) ; +#2889 = ORIENTED_EDGE ( 'NONE', *, *, #4442, .F. ) ; +#2890 = CARTESIAN_POINT ( 'NONE', ( -0.5078194151786449284, -0.2931896760531102486, 6.064721239031358735 ) ) ; +#2891 = CARTESIAN_POINT ( 'NONE', ( 0.5683329683908794339, 0.04748939605466709346, 6.201077083586665317 ) ) ; +#2892 = EDGE_LOOP ( 'NONE', ( #1058, #1366, #3902, #1186 ) ) ; +#2893 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000000555, 0.8863129891663641402, 5.291451494556268287 ) ) ; +#2894 = EDGE_CURVE ( 'NONE', #267, #2448, #3449, .T. ) ; +#2895 = CARTESIAN_POINT ( 'NONE', ( 0.4463832993561421825, 0.01305656422026054558, 6.053619341812545684 ) ) ; +#2896 = LINE ( 'NONE', #4556, #3890 ) ; +#2897 = ORIENTED_EDGE ( 'NONE', *, *, #2572, .T. ) ; +#2898 = CARTESIAN_POINT ( 'NONE', ( 0.05875207217736936466, -1.204307028110114031, 5.825994415577062213 ) ) ; +#2899 = CARTESIAN_POINT ( 'NONE', ( -1.040732281126356407, 0.3891709545850211560, 5.696783350769981880 ) ) ; +#2900 = ORIENTED_EDGE ( 'NONE', *, *, #1462, .F. ) ; +#2901 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -0.8594421130351409532, 6.079000000000000625 ) ) ; +#2902 = CARTESIAN_POINT ( 'NONE', ( 0.2416476612724867690, 0.3060144142332218431, 5.879000000000000448 ) ) ; +#2903 = EDGE_CURVE ( 'NONE', #3041, #244, #3655, .T. ) ; +#2904 = CARTESIAN_POINT ( 'NONE', ( -0.8838731382084059618, 0.8116964593855305887, 5.763258631751576822 ) ) ; +#2905 = EDGE_CURVE ( 'NONE', #1301, #3060, #146, .T. ) ; +#2906 = CARTESIAN_POINT ( 'NONE', ( 0.3249323308671995258, 0.4686955290594224111, 6.201038154600503560 ) ) ; +#2907 = CARTESIAN_POINT ( 'NONE', ( 0.3166254390333685387, -1.157471456738278004, 5.701826644392226306 ) ) ; +#2908 = CARTESIAN_POINT ( 'NONE', ( -0.2128156592171371320, 0.5720161032121535705, 6.248577832844810054 ) ) ; +#2909 = CARTESIAN_POINT ( 'NONE', ( 0.2057497822674355104, 0.3884416724482601668, 6.045168944973960734 ) ) ; +#2910 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1240, #1295, #2070, #2921, #110, #2095, #4191, #3761, #2864, #4868, #4977, #56, #3703, #1213, #26, #4502, #1701, #518, #1642, #2946, #4924, #839, #2468, #485, #85, #3355, #2153, #4581, #2495, #4105 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1250000000000398848, 0.1875000000000628941, 0.2187500000000743849, 0.2343750000000800471, 0.2421875000000829059, 0.2460937500000844602, 0.2480468750000852374, 0.2500000000000859868, 0.4999999999999935052, 0.6249999999999472644, 0.6874999999999256151, 0.7187499999999148459, 0.7343749999999115152, 0.7421874999999097389, 0.7460937499999088507, 0.7480468749999107381, 0.7499999999999125144, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#2911 = CARTESIAN_POINT ( 'NONE', ( -0.6135904484930136960, -0.1412060984789980378, 6.271836282905964843 ) ) ; +#2912 = CARTESIAN_POINT ( 'NONE', ( -1.990051048614448869E-16, -1.625000000000000000, 3.479000000000000092 ) ) ; +#2913 = CARTESIAN_POINT ( 'NONE', ( 2.250000000000000000, -6.892264536872972008E-16, 3.104000000000000092 ) ) ; +#2914 = EDGE_CURVE ( 'NONE', #5103, #4024, #3314, .T. ) ; +#2915 = ORIENTED_EDGE ( 'NONE', *, *, #2894, .F. ) ; +#2916 = CARTESIAN_POINT ( 'NONE', ( -0.8898490325666070788, -4.044939027510162589E-16, 5.130805054534240739 ) ) ; +#2917 = ORIENTED_EDGE ( 'NONE', *, *, #2794, .F. ) ; +#2918 = LINE ( 'NONE', #4578, #1420 ) ; +#2919 = CARTESIAN_POINT ( 'NONE', ( -1.628780242865979857E-17, 1.491999999999999993, 3.953999999999999737 ) ) ; +#2920 = ORIENTED_EDGE ( 'NONE', *, *, #614, .F. ) ; +#2921 = CARTESIAN_POINT ( 'NONE', ( 0.1080208536409164588, -0.3746876210621217784, 5.947937117741747493 ) ) ; +#2922 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, 1.187171007058380079, 5.805572500925889834 ) ) ; +#2923 = LINE ( 'NONE', #3272, #2530 ) ; +#2924 = EDGE_LOOP ( 'NONE', ( #5237, #1621, #1247, #4814, #623, #424 ) ) ; +#2925 = CARTESIAN_POINT ( 'NONE', ( 0.9545816565475355731, 0.3490553821548279534, 5.195033353103291951 ) ) ; +#2926 = CARTESIAN_POINT ( 'NONE', ( -0.4551265001645165009, 0.7883022221559489173, 5.096860619515669377 ) ) ; +#2927 = ORIENTED_EDGE ( 'NONE', *, *, #4240, .F. ) ; +#2928 = CARTESIAN_POINT ( 'NONE', ( 1.115620250748909470, 0.4420310578669094381, 5.805572500925889834 ) ) ; +#2929 = FACE_OUTER_BOUND ( 'NONE', #2269, .T. ) ; +#2930 = CARTESIAN_POINT ( 'NONE', ( 0.3617356605914423540, 0.1456369237763811553, 5.914219959711634722 ) ) ; +#2931 = EDGE_CURVE ( 'NONE', #3005, #1875, #3221, .T. ) ; +#2932 = CARTESIAN_POINT ( 'NONE', ( -0.7986823578055256556, -0.6631920684923938714, 5.610249138468685004 ) ) ; +#2933 = CARTESIAN_POINT ( 'NONE', ( -1.166377184521165900, -0.2820648597879901187, 5.667384321153449811 ) ) ; +#2934 = CARTESIAN_POINT ( 'NONE', ( -0.2325398314393597454, 0.5406766483440859083, 6.222892444258193656 ) ) ; +#2935 = CARTESIAN_POINT ( 'NONE', ( -0.1874974012643882415, 1.081702521926050320, 5.679393789334262088 ) ) ; +#2936 = CARTESIAN_POINT ( 'NONE', ( -0.9406202507489094256, -0.7451399491914646456, 5.805572500925889834 ) ) ; +#2937 = CARTESIAN_POINT ( 'NONE', ( 1.052513032780921493E-16, 0.8594421130351385107, 6.378999999999999559 ) ) ; +#2938 = CARTESIAN_POINT ( 'NONE', ( 0.8065764805617643418, 0.6773732562518183231, 5.626846815561778570 ) ) ; +#2939 = ORIENTED_EDGE ( 'NONE', *, *, #4468, .T. ) ; +#2940 = PLANE ( 'NONE', #2108 ) ; +#2941 = ORIENTED_EDGE ( 'NONE', *, *, #1778, .T. ) ; +#2942 = EDGE_CURVE ( 'NONE', #775, #2887, #1091, .T. ) ; +#2943 = CARTESIAN_POINT ( 'NONE', ( -5.043340017179858374E-16, -1.066544210837059081, 5.661815083166008122 ) ) ; +#2944 = CARTESIAN_POINT ( 'NONE', ( 0.6495190528383287809, 0.3750000000000000555, 5.128999999999999559 ) ) ; +#2945 = VERTEX_POINT ( 'NONE', #4858 ) ; +#2946 = CARTESIAN_POINT ( 'NONE', ( -0.06494014367513301078, -0.3844701958312782275, 5.918960724784816385 ) ) ; +#2947 = CARTESIAN_POINT ( 'NONE', ( 0.4511892907024229182, 0.01133379336408993875, 6.059316189257014429 ) ) ; +#2948 = CARTESIAN_POINT ( 'NONE', ( -0.4551545404821802920, -0.4509680880008540838, 6.284344565544736305 ) ) ; +#2949 = VERTEX_POINT ( 'NONE', #3665 ) ; +#2950 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, -1.023275245660230315, 5.610249138468685004 ) ) ; +#2951 = CARTESIAN_POINT ( 'NONE', ( 0.2142550122198426665, 1.180724953196649718, 5.793167151936159165 ) ) ; +#2952 = EDGE_LOOP ( 'NONE', ( #2010, #2702, #2242, #4282 ) ) ; +#2953 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, 1.001219655634210559, 5.195033353103291951 ) ) ; +#2954 = CARTESIAN_POINT ( 'NONE', ( -0.3822155725174649632, 0.07783176866469486421, 5.962336334506755264 ) ) ; +#2955 = CARTESIAN_POINT ( 'NONE', ( 0.2861083595031437832, 0.2649224613317309185, 5.931430154261855492 ) ) ; +#2956 = VECTOR ( 'NONE', #3052, 39.37007874015748143 ) ; +#2957 = CIRCLE ( 'NONE', #647, 0.8594421130351397320 ) ; +#2958 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000000555, 1.139901311517799387, 5.593666288758528005 ) ) ; +#2959 = DIRECTION ( 'NONE', ( 0.4999999999999998335, -0.8660254037844385966, -9.139412346447069003E-16 ) ) ; +#2960 = CARTESIAN_POINT ( 'NONE', ( 0.8931626737340070399, -1.149980953795022883E-15, 5.157008074717787771 ) ) ; +#2961 = EDGE_CURVE ( 'NONE', #2834, #762, #40, .T. ) ; +#2962 = CARTESIAN_POINT ( 'NONE', ( -1.115620250748909470, -0.4420310578669118251, 5.805572500925889834 ) ) ; +#2963 = DIRECTION ( 'NONE', ( 0.7980483689013628812, 0.4630069900918588610, 0.3856725658119227740 ) ) ; +#2964 = AXIS2_PLACEMENT_3D ( 'NONE', #3382, #457, #1672 ) ; +#2965 = FACE_OUTER_BOUND ( 'NONE', #1700, .T. ) ; +#2966 = VERTEX_POINT ( 'NONE', #1200 ) ; +#2967 = CARTESIAN_POINT ( 'NONE', ( 0.8214448672371584825, 0.8747732839740574029, 5.653381578854462575 ) ) ; +#2968 = ORIENTED_EDGE ( 'NONE', *, *, #3821, .F. ) ; +#2969 = CIRCLE ( 'NONE', #4083, 0.1874999999999999167 ) ; +#2970 = CARTESIAN_POINT ( 'NONE', ( 0.1006862154558431782, 0.6552343251664234369, 6.305672193073364795 ) ) ; +#2971 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#2972 = ORIENTED_EDGE ( 'NONE', *, *, #3170, .T. ) ; +#2973 = CARTESIAN_POINT ( 'NONE', ( -0.5800695643221952524, -0.7679160210023483479, 5.291451494556268287 ) ) ; +#2974 = EDGE_CURVE ( 'NONE', #2386, #64, #4939, .T. ) ; +#2975 = CYLINDRICAL_SURFACE ( 'NONE', #3481, 0.2499999999999998057 ) ; +#2976 = CARTESIAN_POINT ( 'NONE', ( -0.6166263335847202987, -0.2484856839164761022, 6.307292874806821104 ) ) ; +#2977 = ORIENTED_EDGE ( 'NONE', *, *, #4920, .T. ) ; +#2978 = CARTESIAN_POINT ( 'NONE', ( -0.3265711577152554113, -0.4686673292419131220, 6.202212644246089646 ) ) ; +#2979 = LINE ( 'NONE', #897, #4676 ) ; +#2980 = ORIENTED_EDGE ( 'NONE', *, *, #1963, .T. ) ; +#2981 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#2982 = ADVANCED_FACE ( 'NONE', ( #826 ), #2457, .F. ) ; +#2983 = AXIS2_PLACEMENT_3D ( 'NONE', #3767, #2136, #932 ) ; +#2984 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #343, #1631, #4492, #3609, #4860, #1985, #2749, #1146, #4415, #3260, #1553, #828, #4885, #3954, #2381, #1124, #4064, #2352, #3175, #720, #5258, #293, #1607, #368, #2405, #2036, #3981, #3638, #318, #5183, #3152, #3668, #4804, #1532, #1958, #774, #4469, #2430 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999998730182, 0.1874999999998092637, 0.2187499999997751521, 0.2343749999997611633, 0.2421874999997539191, 0.2460937499997502831, 0.2499999999997466471, 0.3749999999995248245, 0.4374999999994175215, 0.4687499999993640087, 0.4843749999993338662, 0.4921874999993153255, 0.4960937499993058331, 0.4980468749993014477, 0.4999999999992970068, 0.6249999999994552136, 0.6874999999995342614, 0.7187499999995737854, 0.7343749999995936584, 0.7421874999996077582, 0.7460937499996189715, 0.7499999999996301847, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#2985 = FACE_OUTER_BOUND ( 'NONE', #815, .T. ) ; +#2986 = DIRECTION ( 'NONE', ( 0.8627299156628192023, 0.4980973490458731612, -0.08715574274767187712 ) ) ; +#2987 = CARTESIAN_POINT ( 'NONE', ( 0.2609987901598868620, -1.171279325402346139, 5.762979355562408479 ) ) ; +#2988 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #702, #4398, #2334, #2682 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.268928027592558738, 3.054326190990089174 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9492530216741805749, 0.9492530216741805749, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#2989 = CARTESIAN_POINT ( 'NONE', ( -0.2155758056374566523, -0.3962293957075216366, 6.059013099287549942 ) ) ; +#2990 = CARTESIAN_POINT ( 'NONE', ( 0.8251714419037573522, -0.8712572622535658118, 5.662142407376974163 ) ) ; +#2991 = ORIENTED_EDGE ( 'NONE', *, *, #2159, .T. ) ; +#2992 = CARTESIAN_POINT ( 'NONE', ( 0.8628402680797501167, 0.7002336552598583674, 5.309607069964629389 ) ) ; +#2993 = CARTESIAN_POINT ( 'NONE', ( -2.622574073917688943E-16, -0.5097749077943204421, 6.129000000000000448 ) ) ; +#2994 = EDGE_LOOP ( 'NONE', ( #4893, #3387, #2889, #3910, #768, #4416 ) ) ; +#2995 = CARTESIAN_POINT ( 'NONE', ( 0.8304866914446549231, 0.8662219247293906355, 5.674432225316587974 ) ) ; +#2996 = ORIENTED_EDGE ( 'NONE', *, *, #1960, .T. ) ; +#2997 = EDGE_CURVE ( 'NONE', #1762, #113, #360, .T. ) ; +#2998 = CARTESIAN_POINT ( 'NONE', ( 0.5810416577065237176, 0.06375898914587524446, 6.218078057908186018 ) ) ; +#2999 = ORIENTED_EDGE ( 'NONE', *, *, #2426, .F. ) ; +#3000 = CARTESIAN_POINT ( 'NONE', ( -0.2912698034916771928, 0.2592259292123788583, 5.926640053130046049 ) ) ; +#3001 = CARTESIAN_POINT ( 'NONE', ( -0.5048965653802502951, -0.4236997009075481047, 6.302308868002461928 ) ) ; +#3002 = ORIENTED_EDGE ( 'NONE', *, *, #3795, .F. ) ; +#3003 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -0.7500000000000001110, 5.128999999999999559 ) ) ; +#3004 = CARTESIAN_POINT ( 'NONE', ( -0.5350018693844065254, -0.02024565604439356944, 6.159485645247337438 ) ) ; +#3005 = VERTEX_POINT ( 'NONE', #100 ) ; +#3006 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3007 = CARTESIAN_POINT ( 'NONE', ( 2.392615395102125430E-08, -0.6756856458982761771, 6.316136183440345775 ) ) ; +#3008 = LINE ( 'NONE', #651, #2377 ) ; +#3009 = CARTESIAN_POINT ( 'NONE', ( -1.191531308125827415, 0.1644751193384638988, 5.562957933457566284 ) ) ; +#3010 = EDGE_CURVE ( 'NONE', #2443, #963, #2469, .T. ) ; +#3011 = CARTESIAN_POINT ( 'NONE', ( -0.8736264038827145084, -0.7064610336692204173, 5.713381027863315254 ) ) ; +#3012 = CARTESIAN_POINT ( 'NONE', ( -0.2157792334209175100, -0.3964082323762948001, 6.059316101328122706 ) ) ; +#3013 = CARTESIAN_POINT ( 'NONE', ( 0.8468070823524828095, -0.8502663507492463912, 5.707125196611779749 ) ) ; +#3014 = VECTOR ( 'NONE', #2484, 39.37007874015748143 ) ; +#3015 = ORIENTED_EDGE ( 'NONE', *, *, #2420, .F. ) ; +#3016 = CYLINDRICAL_SURFACE ( 'NONE', #4023, 0.2500000000000000000 ) ; +#3017 = DIRECTION ( 'NONE', ( -0.6634139481689388385, 0.3830222215594890622, 0.6427876096865390299 ) ) ; +#3018 = ORIENTED_EDGE ( 'NONE', *, *, #2961, .T. ) ; +#3019 = CARTESIAN_POINT ( 'NONE', ( -0.4449245162833037615, 0.7706318677356882585, 5.130805054534240739 ) ) ; +#3020 = VECTOR ( 'NONE', #95, 39.37007874015748143 ) ; +#3021 = CARTESIAN_POINT ( 'NONE', ( 0.8912014220790730468, -8.420792061400266893E-16, 5.117418135287732817 ) ) ; +#3022 = ORIENTED_EDGE ( 'NONE', *, *, #3698, .T. ) ; +#3023 = CARTESIAN_POINT ( 'NONE', ( -0.3233589018527523451, 0.2182798233327016835, 5.905295428029138094 ) ) ; +#3024 = ADVANCED_FACE ( 'NONE', ( #4503 ), #2975, .F. ) ; +#3025 = EDGE_CURVE ( 'NONE', #1995, #261, #230, .T. ) ; +#3026 = CARTESIAN_POINT ( 'NONE', ( -0.5772579326435177682, -0.3517194953855758977, 6.316181730182568899 ) ) ; +#3027 = VERTEX_POINT ( 'NONE', #3731 ) ; +#3028 = CARTESIAN_POINT ( 'NONE', ( 0.2824179910304944197, -0.4516907063393786892, 6.156259057137660307 ) ) ; +#3029 = DIRECTION ( 'NONE', ( 0.4999999999999998890, 0.8660254037844388186, 0.000000000000000000 ) ) ; +#3030 = ORIENTED_EDGE ( 'NONE', *, *, #2441, .T. ) ; +#3031 = CARTESIAN_POINT ( 'NONE', ( -0.5349920402363717020, 0.02020266384996271397, 6.159507043090530765 ) ) ; +#3032 = CARTESIAN_POINT ( 'NONE', ( -0.8262843514407728351, 0.8702015309515730435, 5.664700937562260563 ) ) ; +#3033 = CARTESIAN_POINT ( 'NONE', ( 0.6714086293390446603, 0.9980026931699673698, 5.522824837521429941 ) ) ; +#3034 = CARTESIAN_POINT ( 'NONE', ( 0.5800695643221952524, 0.7679160210023464606, 5.291451494556268287 ) ) ; +#3035 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#3036 = CARTESIAN_POINT ( 'NONE', ( 0.2287658773652736233, 1.311297632095822729, 4.658015363927715313 ) ) ; +#3037 = AXIS2_PLACEMENT_3D ( 'NONE', #4644, #5015, #4597 ) ; +#3038 = EDGE_CURVE ( 'NONE', #3487, #4205, #4089, .T. ) ; +#3039 = CARTESIAN_POINT ( 'NONE', ( 0.8252745779989193453, -0.8711595303234873633, 5.662380614065544826 ) ) ; +#3040 = CIRCLE ( 'NONE', #222, 0.1330000000000000626 ) ; +#3041 = VERTEX_POINT ( 'NONE', #2071 ) ; +#3042 =( CONVERSION_BASED_UNIT ( 'INCH', #2743 ) LENGTH_UNIT ( ) NAMED_UNIT ( #2434 ) ); +#3043 = VECTOR ( 'NONE', #2590, 39.37007874015748143 ) ; +#3044 = DIRECTION ( 'NONE', ( -0.6634139481689369511, 0.3830222215594900614, -0.6427876096865400291 ) ) ; +#3045 = VERTEX_POINT ( 'NONE', #2922 ) ; +#3046 = CARTESIAN_POINT ( 'NONE', ( 1.004751182560740210E-16, 0.8204416026402755469, 5.135162841671623291 ) ) ; +#3047 = VECTOR ( 'NONE', #663, 39.37007874015748854 ) ; +#3048 = DIRECTION ( 'NONE', ( 1.165734175856411015E-15, 0.7660444431189782355, 0.6427876096865392519 ) ) ; +#3049 = VERTEX_POINT ( 'NONE', #4162 ) ; +#3050 = CARTESIAN_POINT ( 'NONE', ( 0.3669483926378173666, -0.1325056124992519957, 5.920222668014212708 ) ) ; +#3051 = CIRCLE ( 'NONE', #2373, 1.199999999999999956 ) ; +#3052 = DIRECTION ( 'NONE', ( -1.000000000000000000, 1.224646799147350002E-16, 3.007634634991669546E-32 ) ) ; +#3053 = VERTEX_POINT ( 'NONE', #2496 ) ; +#3054 = CARTESIAN_POINT ( 'NONE', ( 0.2331127334215408464, -0.3664756537147191295, 6.038823248737403837 ) ) ; +#3055 = AXIS2_PLACEMENT_3D ( 'NONE', #1165, #5246, #4029 ) ; +#3056 = FACE_OUTER_BOUND ( 'NONE', #3085, .T. ) ; +#3057 = ADVANCED_FACE ( 'NONE', ( #3327 ), #4952, .F. ) ; +#3058 = CARTESIAN_POINT ( 'NONE', ( 1.153173793643699652, -0.3320794471294727934, 5.736408563695376550 ) ) ; +#3059 = CARTESIAN_POINT ( 'NONE', ( 0.03460535366406437136, -0.6739063808788982035, 6.315287508750135892 ) ) ; +#3060 = VERTEX_POINT ( 'NONE', #4896 ) ; +#3061 = CYLINDRICAL_SURFACE ( 'NONE', #3318, 0.3899210354891938790 ) ; +#3062 = LINE ( 'NONE', #3087, #1162 ) ; +#3063 = AXIS2_PLACEMENT_3D ( 'NONE', #4084, #2077, #3277 ) ; +#3064 = DIRECTION ( 'NONE', ( -3.571570303986756206E-16, -0.7660444431189782355, -0.6427876096865391409 ) ) ; +#3065 = FACE_OUTER_BOUND ( 'NONE', #4019, .T. ) ; +#3066 = EDGE_CURVE ( 'NONE', #5068, #3068, #3704, .T. ) ; +#3067 = CARTESIAN_POINT ( 'NONE', ( 0.8254427960211607740, -0.8710000670198156936, 5.662768512583927105 ) ) ; +#3068 = VERTEX_POINT ( 'NONE', #1296 ) ; +#3069 = CARTESIAN_POINT ( 'NONE', ( 0.4364497701184222866, 0.4583781996026895511, 6.275722679830021633 ) ) ; +#3070 = PRESENTATION_STYLE_ASSIGNMENT (( #1445 ) ) ; +#3071 = LINE ( 'NONE', #3095, #1610 ) ; +#3072 = ORIENTED_EDGE ( 'NONE', *, *, #2772, .F. ) ; +#3073 = DIRECTION ( 'NONE', ( 1.000000000000000000, -7.284927983104700930E-16, 0.000000000000000000 ) ) ; +#3074 = DIRECTION ( 'NONE', ( -0.5000000000000003331, 0.8660254037844384856, 3.035766082959412415E-16 ) ) ; +#3075 = EDGE_CURVE ( 'NONE', #4652, #1585, #1172, .T. ) ; +#3076 = VERTEX_POINT ( 'NONE', #3762 ) ; +#3077 = CARTESIAN_POINT ( 'NONE', ( -0.3711295144317011130, 0.1195829241659267517, 5.928591840971050964 ) ) ; +#3078 = CARTESIAN_POINT ( 'NONE', ( -0.5845516360635667485, 0.06901785760602673070, 6.222951153440554606 ) ) ; +#3079 = ORIENTED_EDGE ( 'NONE', *, *, #4632, .T. ) ; +#3080 = CARTESIAN_POINT ( 'NONE', ( 0.2344989541793008336, -0.3800509163023655934, 6.053619253783318221 ) ) ; +#3081 = CARTESIAN_POINT ( 'NONE', ( -0.5285913706609538520, 1.080458275912688393, 5.522824837521431718 ) ) ; +#3082 = CARTESIAN_POINT ( 'NONE', ( 0.9736823578055235906, 0.3600831771678382198, 5.610249138468685004 ) ) ; +#3083 = CIRCLE ( 'NONE', #4031, 0.1330000000000000626 ) ; +#3084 = FACE_OUTER_BOUND ( 'NONE', #4420, .T. ) ; +#3085 = EDGE_LOOP ( 'NONE', ( #4687, #3177, #591, #2094, #4399, #1997 ) ) ; +#3086 = CARTESIAN_POINT ( 'NONE', ( -0.3685226087122981387, 0.4719818425186169120, 6.234904180713652266 ) ) ; +#3087 = CARTESIAN_POINT ( 'NONE', ( -0.9376584395713661868, -1.624072057483360476, 4.395566458943346078 ) ) ; +#3088 = CARTESIAN_POINT ( 'NONE', ( -1.167283275473046000, 0.2782933912528717246, 5.660936345322396868 ) ) ; +#3089 = CYLINDRICAL_SURFACE ( 'NONE', #2433, 2.250000000000000000 ) ; +#3090 = DIRECTION ( 'NONE', ( -6.802134699437020831E-16, -0.7660444431189771253, -0.6427876096865402511 ) ) ; +#3091 = ADVANCED_FACE ( 'NONE', ( #3677 ), #1643, .F. ) ; +#3092 = VERTEX_POINT ( 'NONE', #2360 ) ; +#3093 = CARTESIAN_POINT ( 'NONE', ( 0.6017883063643948427, -0.1017042844017066877, 6.248577832845350066 ) ) ; +#3094 =( CONVERSION_BASED_UNIT ( 'INCH', #2692 ) LENGTH_UNIT ( ) NAMED_UNIT ( #4080 ) ); +#3095 = CARTESIAN_POINT ( 'NONE', ( -0.6773525727996496659, -0.3910696902421642029, 5.167302222155944591 ) ) ; +#3096 = VERTEX_POINT ( 'NONE', #5190 ) ; +#3097 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) ); +#3098 = PLANE ( 'NONE', #1733 ) ; +#3099 = DIRECTION ( 'NONE', ( 5.551115123125778758E-16, 0.6427876096865386968, 0.7660444431189786796 ) ) ; +#3100 = VERTEX_POINT ( 'NONE', #1536 ) ; +#3101 = CARTESIAN_POINT ( 'NONE', ( -0.3626312816281629381, 0.1458351364422920959, 5.911557156124557899 ) ) ; +#3102 = EDGE_CURVE ( 'NONE', #1581, #3096, #1993, .T. ) ; +#3103 = CARTESIAN_POINT ( 'NONE', ( -0.1237034973844447494, 0.3699242798497905937, 5.962336334518719028 ) ) ; +#3104 = DIRECTION ( 'NONE', ( -3.571570303986756206E-16, -0.7660444431189782355, -0.6427876096865391409 ) ) ; +#3105 = VECTOR ( 'NONE', #3064, 39.37007874015748143 ) ; +#3106 = CARTESIAN_POINT ( 'NONE', ( 1.139057466930888829, -0.3775574074409595582, 5.776875333988866323 ) ) ; +#3107 = CARTESIAN_POINT ( 'NONE', ( -0.3750000000000000555, 0.9824517527273209927, 5.406025211417605725 ) ) ; +#3108 = VERTEX_POINT ( 'NONE', #5212 ) ; +#3109 = CARTESIAN_POINT ( 'NONE', ( -0.2850339750688150597, 0.4532022594927625492, 6.159485386716888833 ) ) ; +#3110 = CARTESIAN_POINT ( 'NONE', ( 0.4290832926986039575, -0.4607818666749401437, 6.271836282905964843 ) ) ; +#3111 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#3112 = FACE_OUTER_BOUND ( 'NONE', #3781, .T. ) ; +#3113 = AXIS2_PLACEMENT_3D ( 'NONE', #1518, #2791, #361 ) ; +#3114 = CARTESIAN_POINT ( 'NONE', ( 0.8000262694842036337, -0.6656063030357332044, 5.613074761121537470 ) ) ; +#3115 = CARTESIAN_POINT ( 'NONE', ( -0.2353040076634123068, -0.5350761538174060306, 6.218077904444902160 ) ) ; +#3116 = CARTESIAN_POINT ( 'NONE', ( 0.4887906296107115689, 0.4340111134058525777, 6.297283147370263734 ) ) ; +#3117 = FACE_OUTER_BOUND ( 'NONE', #572, .T. ) ; +#3118 = EDGE_CURVE ( 'NONE', #4152, #1523, #1128, .T. ) ; +#3119 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2027, #1251, #2106, #1280, #876, #498, #2423, #2955, #4484, #2053, #1740, #1305, #2848, #386, #2079, #3659, #818, #3280, #2930, #1682, #69, #1712, #3685, #4879, #4960, #4563, #2875, #4905, #901, #8 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999998276379, 0.1874999999997444822, 0.2187499999997027933, 0.2343749999996819766, 0.2421874999996743716, 0.2460937499996735389, 0.2480468749996732336, 0.2499999999996729283, 0.4999999999999100719, 0.6250000000000285327, 0.6875000000000878186, 0.7187500000001155742, 0.7343750000001293410, 0.7421875000001384448, 0.7460937500001431077, 0.7480468750001452172, 0.7500000000001474376, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#3120 = VERTEX_POINT ( 'NONE', #349 ) ; +#3121 = CARTESIAN_POINT ( 'NONE', ( 0.8965030396963137305, 0.7976739990120033097, 5.776875333988868988 ) ) ; +#3122 = ORIENTED_EDGE ( 'NONE', *, *, #3694, .T. ) ; +#3123 = VECTOR ( 'NONE', #1900, 39.37007874015748143 ) ; +#3124 = CARTESIAN_POINT ( 'NONE', ( -0.2636294823785685359, 0.4374822580205244837, 6.130089832683618845 ) ) ; +#3125 = DIRECTION ( 'NONE', ( -0.8000000000000004885, -0.4596266658713864528, 0.3856725658119229960 ) ) ; +#3126 = ORIENTED_EDGE ( 'NONE', *, *, #192, .T. ) ; +#3127 = EDGE_LOOP ( 'NONE', ( #597, #3830, #4136, #1505, #1455, #1092 ) ) ; +#3128 = CARTESIAN_POINT ( 'NONE', ( 0.3322984283617791967, -0.2044739188297974020, 5.902947522935534153 ) ) ; +#3129 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #29, #3300, #4926, #112, #951, #2156, #1353, #2228, #3412, #138, #571, #1025, #1784 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 1, 2, 4 ), + ( 0.000000000000000000, 0.2186424937661440582, 0.2459728054869138314, 0.2596379613473011050, 0.2733031172076884063, 0.3279637406492324492, 0.4372849875323155944 ), + .UNSPECIFIED. ) ; +#3130 = CARTESIAN_POINT ( 'NONE', ( 0.01360711708044792974, 0.3899212303501004562, 5.903217354205613887 ) ) ; +#3131 = CARTESIAN_POINT ( 'NONE', ( 0.3418089950098937013, 1.150288514806237616, 5.662380614065074091 ) ) ; +#3132 = EDGE_CURVE ( 'NONE', #2218, #3479, #1559, .T. ) ; +#3133 = CARTESIAN_POINT ( 'NONE', ( -0.5202943489854263692, -0.01311359574482461911, 6.141732043840549160 ) ) ; +#3134 = VECTOR ( 'NONE', #3157, 39.37007874015748143 ) ; +#3135 = VECTOR ( 'NONE', #4832, 39.37007874015748143 ) ; +#3136 = CARTESIAN_POINT ( 'NONE', ( -1.990051048614448869E-16, -1.491999999999999993, 3.479000000000000092 ) ) ; +#3137 = VERTEX_POINT ( 'NONE', #3181 ) ; +#3138 = CIRCLE ( 'NONE', #1271, 0.6296287800994468942 ) ; +#3139 = CARTESIAN_POINT ( 'NONE', ( -0.5080486355287642253, 0.4216019846872464116, 6.303252268755447751 ) ) ; +#3140 = CARTESIAN_POINT ( 'NONE', ( 0.3487990591063679924, -0.4715399903828406125, 6.220460831039957839 ) ) ; +#3141 = EDGE_CURVE ( 'NONE', #2161, #1577, #756, .T. ) ; +#3142 = CARTESIAN_POINT ( 'NONE', ( 0.4271969554171382022, -0.02243824516909155922, 6.031275932344004609 ) ) ; +#3143 = CARTESIAN_POINT ( 'NONE', ( 1.072336516388182615, -0.5512727270244796030, 5.825994415577062213 ) ) ; +#3144 = CARTESIAN_POINT ( 'NONE', ( 0.8296774555118437977, -0.6955192831415293320, 5.661007566361458743 ) ) ; +#3145 = ORIENTED_EDGE ( 'NONE', *, *, #4116, .F. ) ; +#3146 = DIRECTION ( 'NONE', ( -0.4999999999999998335, 0.8660254037844388186, 0.000000000000000000 ) ) ; +#3147 = CARTESIAN_POINT ( 'NONE', ( -0.9899098686870656527, -0.3598291069640213724, 5.626845977561750090 ) ) ; +#3148 = VERTEX_POINT ( 'NONE', #1586 ) ; +#3149 = CARTESIAN_POINT ( 'NONE', ( 0.8572555331797326872, 0.8397057500130300500, 5.725042583526463780 ) ) ; +#3150 = EDGE_LOOP ( 'NONE', ( #1813, #2353, #1649, #3630, #3204, #4738 ) ) ; +#3151 = FACE_OUTER_BOUND ( 'NONE', #4186, .T. ) ; +#3152 = CARTESIAN_POINT ( 'NONE', ( 1.166331184685988731, 0.2822622262114128922, 5.667715621920089042 ) ) ; +#3153 = ORIENTED_EDGE ( 'NONE', *, *, #181, .F. ) ; +#3154 = ORIENTED_EDGE ( 'NONE', *, *, #1566, .F. ) ; +#3155 = CARTESIAN_POINT ( 'NONE', ( -0.5999999999999999778, 1.039230484541330712, 5.473691469039889235 ) ) ; +#3156 = ADVANCED_FACE ( 'NONE', ( #324 ), #4865, .F. ) ; +#3157 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3158 = CARTESIAN_POINT ( 'NONE', ( -0.3412533487590250214, -1.150453368510926833, 5.663349676274335387 ) ) ; +#3159 = ADVANCED_FACE ( 'NONE', ( #2753 ), #399, .F. ) ; +#3160 = CARTESIAN_POINT ( 'NONE', ( -0.7887281695053012243, -0.2532998267649578805, 5.355730255524930428 ) ) ; +#3161 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #152, #5044, #556, #1874, #123, #4647, #1797, #3850, #3396, #4721, #5067, #989, #3473, #4278, #3872, #3501, #3422, #5096, #4250, #1442, #2293, #2615, #1412, #177, #3013, #5020, #583, #1822, #1365, #2241, #5124, #201, #3067, #3039, #2990, #1037, #1064, #4672 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1250000000000988376, 0.1875000000001461331, 0.2187500000001693645, 0.2343750000001813827, 0.2421875000001846578, 0.2460937500001887102, 0.2500000000001927347, 0.3750000000003345102, 0.4375000000004057310, 0.4687500000004410361, 0.4843750000004586886, 0.4921875000004642398, 0.4960937500004633516, 0.5000000000004625189, 0.6250000000005370149, 0.6875000000005699885, 0.7187500000005867529, 0.7343750000005989653, 0.7421875000006012968, 0.7460937500006019629, 0.7480468750005987433, 0.7500000000005955236, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#3162 = DIRECTION ( 'NONE', ( 0.4999999999999998335, -0.8660254037844388186, 0.000000000000000000 ) ) ; +#3163 = ORIENTED_EDGE ( 'NONE', *, *, #2359, .T. ) ; +#3164 = CARTESIAN_POINT ( 'NONE', ( -0.6135904484930136960, 0.1412060984789960671, 6.271836282905964843 ) ) ; +#3165 = CARTESIAN_POINT ( 'NONE', ( 0.3532562198069051362, -0.4717891350297673259, 6.223871975218305153 ) ) ; +#3166 = CARTESIAN_POINT ( 'NONE', ( -1.153173793644077127, 0.3320794471289393868, 5.736408563694878282 ) ) ; +#3167 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000000555, -1.139901311517799387, 5.593666288758528005 ) ) ; +#3168 = DIRECTION ( 'NONE', ( -0.6634139481689383944, 0.3830222215594900614, -0.6427876096865389188 ) ) ; +#3169 = ORIENTED_EDGE ( 'NONE', *, *, #3803, .F. ) ; +#3170 = EDGE_CURVE ( 'NONE', #3292, #3551, #1006, .T. ) ; +#3171 = CARTESIAN_POINT ( 'NONE', ( 0.5349920402363709249, -0.02020266384996500034, 6.159507043090530765 ) ) ; +#3172 = CARTESIAN_POINT ( 'NONE', ( -5.783046526498795293E-17, -1.337116258361070674E-15, 6.271836282905964843 ) ) ; +#3173 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2668, #5126, #3925, #1950 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.5000032659737013718, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#3174 = CARTESIAN_POINT ( 'NONE', ( -0.2354099827967095215, 0.3850744139398826205, 6.059316101328237281 ) ) ; +#3175 = CARTESIAN_POINT ( 'NONE', ( 1.154792589430906791, 0.3262481065685211568, 5.729407621505567150 ) ) ; +#3176 = ORIENTED_EDGE ( 'NONE', *, *, #1608, .T. ) ; +#3177 = ORIENTED_EDGE ( 'NONE', *, *, #5095, .T. ) ; +#3178 = CARTESIAN_POINT ( 'NONE', ( 0.2130634822344786850, -0.3938295916150358345, 6.055046826850971620 ) ) ; +#3179 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, 1.187171007058380079, 5.805572500925889834 ) ) ; +#3180 = CIRCLE ( 'NONE', #4386, 0.2500000000000000000 ) ; +#3181 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, 0.9455000000000001181, 3.479000000000000092 ) ) ; +#3182 = CARTESIAN_POINT ( 'NONE', ( 0.6250000000000000000, -1.082531754730549300, 4.849972727250857929 ) ) ; +#3183 = ORIENTED_EDGE ( 'NONE', *, *, #44, .F. ) ; +#3184 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #3719, #4991, #3986, #473 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 5.759586531581279978, 5.965361603251699840 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9964744966727187014, 0.9964744966727187014, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#3185 = LINE ( 'NONE', #1187, #3919 ) ; +#3186 = EDGE_CURVE ( 'NONE', #3108, #3005, #2413, .T. ) ; +#3187 = EDGE_CURVE ( 'NONE', #3049, #2949, #1691, .T. ) ; +#3188 = CARTESIAN_POINT ( 'NONE', ( 0.4551265001645181107, 0.7883022221559489173, 5.096860619515669377 ) ) ; +#3189 = EDGE_LOOP ( 'NONE', ( #2804, #4349, #1986, #3990 ) ) ; +#3190 = DIRECTION ( 'NONE', ( -1.276756478318930219E-15, -0.6427876096865391409, 0.7660444431189782355 ) ) ; +#3191 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3192 = CARTESIAN_POINT ( 'NONE', ( 0.4614747272692437119, -0.008414666544187644065, 6.071486235009865950 ) ) ; +#3193 = CARTESIAN_POINT ( 'NONE', ( 0.2332452460770967628, 0.3526887255502876295, 6.025386023352520937 ) ) ; +#3194 = DIRECTION ( 'NONE', ( -0.6958540455341970521, 0.000000000000000000, 0.7181832268395659247 ) ) ; +#3195 = LINE ( 'NONE', #4823, #193 ) ; +#3196 = CARTESIAN_POINT ( 'NONE', ( 0.6166651215640379657, 0.1557604612820119028, 6.279297187825541471 ) ) ; +#3197 = AXIS2_PLACEMENT_3D ( 'NONE', #824, #2880, #2851 ) ; +#3198 = CARTESIAN_POINT ( 'NONE', ( -1.199999999999999956, -3.989589966298086314E-16, 5.473691469039889235 ) ) ; +#3199 = ADVANCED_FACE ( 'NONE', ( #540, #2173 ), #4609, .F. ) ; +#3200 = CARTESIAN_POINT ( 'NONE', ( 0.8707764508193910347, 0.8257290232835290400, 5.746097767432007508 ) ) ; +#3201 = CARTESIAN_POINT ( 'NONE', ( 0.2173681192332081458, -0.5657623189172257261, 6.243538158947440131 ) ) ; +#3202 = CIRCLE ( 'NONE', #4577, 0.1330000000000000626 ) ; +#3203 = CARTESIAN_POINT ( 'NONE', ( 0.9376584395713661868, 1.624072057483350706, 4.395566458943346078 ) ) ; +#3204 = ORIENTED_EDGE ( 'NONE', *, *, #1815, .T. ) ; +#3205 = VERTEX_POINT ( 'NONE', #3782 ) ; +#3206 = FACE_OUTER_BOUND ( 'NONE', #3699, .T. ) ; +#3207 = AXIS2_PLACEMENT_3D ( 'NONE', #22, #2573, #52 ) ; +#3208 = CARTESIAN_POINT ( 'NONE', ( -1.155547283703800776, -0.3235797176140002285, 5.726267908650021887 ) ) ; +#3209 = VERTEX_POINT ( 'NONE', #2518 ) ; +#3210 = CIRCLE ( 'NONE', #4069, 0.1874999999999999167 ) ; +#3211 = VECTOR ( 'NONE', #423, 39.37007874015748854 ) ; +#3212 = CARTESIAN_POINT ( 'NONE', ( -0.2245698881448157103, 0.4050798377452173860, 6.073407060710982464 ) ) ; +#3213 = CARTESIAN_POINT ( 'NONE', ( -0.2419139240619683495, -1.175363359067816749, 5.777310701146430638 ) ) ; +#3214 = ORIENTED_EDGE ( 'NONE', *, *, #410, .T. ) ; +#3215 = CARTESIAN_POINT ( 'NONE', ( -0.5102918962219432641, -0.009500966375148300891, 6.129715588962397099 ) ) ; +#3216 = DIRECTION ( 'NONE', ( 4.248067130688606096E-16, 0.7660444431189782355, -0.6427876096865391409 ) ) ; +#3217 = ORIENTED_EDGE ( 'NONE', *, *, #4146, .T. ) ; +#3218 = CARTESIAN_POINT ( 'NONE', ( 0.6773525727996496659, 0.3910696902421618160, 5.167302222155944591 ) ) ; +#3219 = EDGE_CURVE ( 'NONE', #2868, #537, #2800, .T. ) ; +#3220 = CARTESIAN_POINT ( 'NONE', ( -0.2202874064984561286, 1.179827985835653958, 5.792086697226737968 ) ) ; +#3221 = CIRCLE ( 'NONE', #4753, 0.3899210354891941011 ) ; +#3222 = CARTESIAN_POINT ( 'NONE', ( 0.4916041193141713617, -0.006035983438917771025, 6.107280644769233824 ) ) ; +#3223 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3224 = CARTESIAN_POINT ( 'NONE', ( 0.8270043897556571544, -0.6938890505676876819, 5.657280487395258461 ) ) ; +#3225 = VECTOR ( 'NONE', #4294, 39.37007874015748854 ) ; +#3226 = CARTESIAN_POINT ( 'NONE', ( -0.8216172868739674007, -0.8746117609838257589, 5.653796199861313099 ) ) ; +#3227 = DIRECTION ( 'NONE', ( 0.6634139481689388385, 0.3830222215594888957, 0.6427876096865389188 ) ) ; +#3228 = PRODUCT_CONTEXT ( 'NONE', #1657, 'mechanical' ) ; +#3229 = VECTOR ( 'NONE', #688, 39.37007874015748854 ) ; +#3230 = CARTESIAN_POINT ( 'NONE', ( -0.2720349422007606877, -0.4457345817034575886, 6.143739950345476153 ) ) ; +#3231 = EDGE_CURVE ( 'NONE', #275, #4805, #2369, .T. ) ; +#3232 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, -0.8125000000000000000, 3.104000000000000092 ) ) ; +#3233 = CARTESIAN_POINT ( 'NONE', ( -0.03507580122798174826, -0.6756857072769271166, 6.316136211672421119 ) ) ; +#3234 = CARTESIAN_POINT ( 'NONE', ( -0.3858400872864291564, -0.05626580631045993014, 5.986163717094036052 ) ) ; +#3235 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #1396, #206, #4231, #5025 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 0.08726646259971156117, 0.8726646259972311581 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9492530216741821292, 0.9492530216741821292, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#3236 = AXIS2_PLACEMENT_3D ( 'NONE', #1914, #1939, #2731 ) ; +#3237 = VERTEX_POINT ( 'NONE', #1345 ) ; +#3238 = CARTESIAN_POINT ( 'NONE', ( 0.2325204645932005543, -0.4150802746039164437, 6.088400557716728834 ) ) ; +#3239 = ORIENTED_EDGE ( 'NONE', *, *, #4202, .F. ) ; +#3240 = EDGE_CURVE ( 'NONE', #4111, #784, #1864, .T. ) ; +#3241 = CARTESIAN_POINT ( 'NONE', ( 0.5078194151786449284, -0.2931896760531102486, 6.064721239031358735 ) ) ; +#3242 = CARTESIAN_POINT ( 'NONE', ( -0.2796954918240458499, -1.166954559958379045, 5.745822387874755854 ) ) ; +#3243 = ORIENTED_EDGE ( 'NONE', *, *, #1908, .T. ) ; +#3244 = DIRECTION ( 'NONE', ( 0.5000000000000003331, 0.8660254037844383745, 0.000000000000000000 ) ) ; +#3245 = CARTESIAN_POINT ( 'NONE', ( 0.7986823578055235462, -0.6631920684923938714, 5.610249138468685004 ) ) ; +#3246 = EDGE_LOOP ( 'NONE', ( #1910, #1564, #2941, #838, #5208, #3450 ) ) ; +#3247 = CARTESIAN_POINT ( 'NONE', ( -0.6185788178285546168, 0.1727738619729384528, 6.285951639676605751 ) ) ; +#3248 = CARTESIAN_POINT ( 'NONE', ( 0.6202093190520383548, -0.1978525064351430995, 6.294752585730086558 ) ) ; +#3249 = VERTEX_POINT ( 'NONE', #1444 ) ; +#3250 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.360911383585519550E-15, 6.378999999999999559 ) ) ; +#3251 = DIRECTION ( 'NONE', ( -6.802134699437021817E-16, -0.7660444431189772363, -0.6427876096865402511 ) ) ; +#3252 = CARTESIAN_POINT ( 'NONE', ( -0.8740517291196426841, 0.8222196556066347917, 5.750389552695699180 ) ) ; +#3253 = CARTESIAN_POINT ( 'NONE', ( -0.2270564468315773854, -0.5507706413651034527, 6.231306833133854362 ) ) ; +#3254 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3255 = AXIS2_PLACEMENT_3D ( 'NONE', #535, #508, #125 ) ; +#3256 = CARTESIAN_POINT ( 'NONE', ( -0.2325046000303848115, 0.5407454954574243411, 6.222951153440226868 ) ) ; +#3257 = EDGE_CURVE ( 'NONE', #777, #685, #925, .T. ) ; +#3258 = CARTESIAN_POINT ( 'NONE', ( 0.2499994067520721897, 0.4730218282468500179, 6.159017837711770582 ) ) ; +#3259 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#3260 = CARTESIAN_POINT ( 'NONE', ( 1.138630670297862801, 0.3788393671414656549, 5.777770560989949011 ) ) ; +#3261 = CARTESIAN_POINT ( 'NONE', ( 0.2332754083397063360, 0.5392261685455747022, 6.221651625993539270 ) ) ; +#3262 = ORIENTED_EDGE ( 'NONE', *, *, #3231, .T. ) ; +#3263 = CARTESIAN_POINT ( 'NONE', ( 0.1649105109043819406, -0.3682075580192827324, 6.002172553012061762 ) ) ; +#3264 = ORIENTED_EDGE ( 'NONE', *, *, #683, .T. ) ; +#3265 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.9961946980917461003, -0.08715574274765000573 ) ) ; +#3266 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #2480, #4117, #4486, #2056 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 3.459416357517675067, 3.665191429188095373 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9964744966727187014, 0.9964744966727187014, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#3267 = CARTESIAN_POINT ( 'NONE', ( -0.3415867867273291725, -1.150354464234922602, 5.662768512582613489 ) ) ; +#3268 = ORIENTED_EDGE ( 'NONE', *, *, #2681, .F. ) ; +#3269 = CARTESIAN_POINT ( 'NONE', ( -0.4515683818664338323, -0.7821393804843288500, 5.167302222155944591 ) ) ; +#3270 = ADVANCED_FACE ( 'NONE', ( #945 ), #3323, .F. ) ; +#3271 = CARTESIAN_POINT ( 'NONE', ( 0.4414780203617504339, 0.2548874538971578341, 6.129000000000000448 ) ) ; +#3272 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -0.7706318677356902569, 5.130805054534240739 ) ) ; +#3273 = ORIENTED_EDGE ( 'NONE', *, *, #3505, .F. ) ; +#3274 = DIRECTION ( 'NONE', ( -4.440892098500626162E-16, 0.6427876096865381417, 0.7660444431189792347 ) ) ; +#3275 = CARTESIAN_POINT ( 'NONE', ( -0.8628402680797501167, -0.7002336552598602548, 5.309607069964629389 ) ) ; +#3276 = ORIENTED_EDGE ( 'NONE', *, *, #2608, .T. ) ; +#3277 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#3278 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#3279 = AXIS2_PLACEMENT_3D ( 'NONE', #5241, #1889, #3993 ) ; +#3280 = CARTESIAN_POINT ( 'NONE', ( 0.3591008472575089039, 0.1520103342929175483, 5.911591706036552374 ) ) ; +#3281 = CARTESIAN_POINT ( 'NONE', ( -0.8039092126907347868, -0.8909332744291782458, 5.606944554793233948 ) ) ; +#3282 = CARTESIAN_POINT ( 'NONE', ( 0.6197617335403002858, 0.2207690457450786625, 6.301207040980489005 ) ) ; +#3283 = CARTESIAN_POINT ( 'NONE', ( 0.3426324912062798100, -1.150043665598778242, 5.660936345322277852 ) ) ; +#3284 = CARTESIAN_POINT ( 'NONE', ( -1.250000000000001776, -0.4575317547305497445, 4.658015363927715313 ) ) ; +#3285 = CARTESIAN_POINT ( 'NONE', ( -1.021234122634726793, 0.8537658773652746502, 4.658015363927715313 ) ) ; +#3286 = CARTESIAN_POINT ( 'NONE', ( -0.1845071557944090446, -0.6019879651539370435, 6.271836282905964843 ) ) ; +#3287 = EDGE_CURVE ( 'NONE', #3479, #3756, #4326, .T. ) ; +#3288 = FACE_OUTER_BOUND ( 'NONE', #269, .T. ) ; +#3289 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3290 = EDGE_LOOP ( 'NONE', ( #4916, #1932, #4551, #5075, #5184, #1771 ) ) ; +#3291 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.9221302479016257880, -0.3868795754558338462 ) ) ; +#3292 = VERTEX_POINT ( 'NONE', #2492 ) ; +#3293 = CARTESIAN_POINT ( 'NONE', ( 0.1181745040516710143, 0.6473732343496212405, 6.301353781529409837 ) ) ; +#3294 = CARTESIAN_POINT ( 'NONE', ( 0.5986485051665177970, 0.09463471954446459056, 6.243538072459287491 ) ) ; +#3295 = ORIENTED_EDGE ( 'NONE', *, *, #4014, .T. ) ; +#3296 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ; +#3297 = EDGE_CURVE ( 'NONE', #784, #4111, #2022, .T. ) ; +#3298 = CARTESIAN_POINT ( 'NONE', ( 0.5228886502021367066, 0.01408302599673164936, 6.144755693105385497 ) ) ; +#3299 = VECTOR ( 'NONE', #3877, 39.37007874015748854 ) ; +#3300 = CARTESIAN_POINT ( 'NONE', ( -0.6077637863795746220, -0.1136248394733610362, 6.257697487976332518 ) ) ; +#3301 = ORIENTED_EDGE ( 'NONE', *, *, #3705, .T. ) ; +#3302 = VECTOR ( 'NONE', #4476, 39.37007874015748143 ) ; +#3303 = CARTESIAN_POINT ( 'NONE', ( -0.3404690693224720066, -0.4707676225072069398, 6.213852194794680095 ) ) ; +#3304 = CARTESIAN_POINT ( 'NONE', ( -0.9736823578055235906, 0.3600831771678402182, 5.610249138468685004 ) ) ; +#3305 = ORIENTED_EDGE ( 'NONE', *, *, #2426, .T. ) ; +#3306 = EDGE_CURVE ( 'NONE', #3648, #1847, #2918, .T. ) ; +#3307 = CARTESIAN_POINT ( 'NONE', ( 1.163580972778079259, -0.2934558207193588841, 5.685938387783007641 ) ) ; +#3308 = FACE_BOUND ( 'NONE', #3707, .T. ) ; +#3309 = CARTESIAN_POINT ( 'NONE', ( -0.8972092752328246767, 0.7968794351830756906, 5.777581622962341790 ) ) ; +#3310 = CARTESIAN_POINT ( 'NONE', ( 0.3634510575007771083, 0.4720220380294738449, 6.231305296303782271 ) ) ; +#3311 = EDGE_CURVE ( 'NONE', #1076, #2366, #5099, .T. ) ; +#3312 = CARTESIAN_POINT ( 'NONE', ( 0.3696519616003889896, -1.141660686982668649, 5.606856458476498162 ) ) ; +#3313 = CARTESIAN_POINT ( 'NONE', ( -0.2325487142097364401, 0.5406592925327436960, 6.222877651799255005 ) ) ; +#3314 = LINE ( 'NONE', #366, #1521 ) ; +#3315 = CARTESIAN_POINT ( 'NONE', ( -1.135780407103927026, -0.3873156680025564569, 5.783407949541439663 ) ) ; +#3316 = AXIS2_PLACEMENT_3D ( 'NONE', #2901, #2981, #4538 ) ; +#3317 = CARTESIAN_POINT ( 'NONE', ( 0.2244875911525939516, -0.5551399342141695170, 6.234903360087240110 ) ) ; +#3318 = AXIS2_PLACEMENT_3D ( 'NONE', #2260, #2638, #172 ) ; +#3319 = CARTESIAN_POINT ( 'NONE', ( 0.2244869613810676068, 0.5551408622873604815, 6.234904180725292733 ) ) ; +#3320 = ORIENTED_EDGE ( 'NONE', *, *, #458, .T. ) ; +#3321 = FACE_OUTER_BOUND ( 'NONE', #4232, .T. ) ; +#3322 = ORIENTED_EDGE ( 'NONE', *, *, #3599, .T. ) ; +#3323 = PLANE ( 'NONE', #2534 ) ; +#3324 = DIRECTION ( 'NONE', ( 0.5566703992264190326, -0.3213938048432700145, 0.7660444431189781245 ) ) ; +#3325 = ORIENTED_EDGE ( 'NONE', *, *, #691, .F. ) ; +#3326 = CARTESIAN_POINT ( 'NONE', ( 0.8719867810375157013, -0.3013692085454370284, 5.470303972386260760 ) ) ; +#3327 = FACE_OUTER_BOUND ( 'NONE', #3983, .T. ) ; +#3328 = ADVANCED_FACE ( 'NONE', ( #4552 ), #889, .F. ) ; +#3329 = CARTESIAN_POINT ( 'NONE', ( 3.933861110876538837E-16, 0.5097749077943188878, 6.129000000000000448 ) ) ; +#3330 = VERTEX_POINT ( 'NONE', #919 ) ; +#3331 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#3332 = CARTESIAN_POINT ( 'NONE', ( 0.1861516073481160327, 1.185527156868034560, 5.803613436555864702 ) ) ; +#3333 = VERTEX_POINT ( 'NONE', #2547 ) ; +#3334 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.6427876096865391409, 0.7660444431189782355 ) ) ; +#3335 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -7.724931805341829553E-16, 3.479000000000000092 ) ) ; +#3336 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #2105, #6, #4512, #849 ), + .UNSPECIFIED., .F., .F. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 0.3178237039278820064, 0.5235987755983009251 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9964744966727188125, 0.9964744966727188125, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#3337 = FACE_OUTER_BOUND ( 'NONE', #2660, .T. ) ; +#3338 = CIRCLE ( 'NONE', #1029, 0.2499999999999998612 ) ; +#3339 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#3340 = CARTESIAN_POINT ( 'NONE', ( 0.2997369440301195231, -1.161959611335032783, 5.723657599039746025 ) ) ; +#3341 = FACE_OUTER_BOUND ( 'NONE', #4684, .T. ) ; +#3342 = CARTESIAN_POINT ( 'NONE', ( -1.007915077231789379E-16, 0.6756856571182421334, 6.316136173767027628 ) ) ; +#3343 = ADVANCED_FACE ( 'NONE', ( #4187 ), #1876, .F. ) ; +#3344 = CARTESIAN_POINT ( 'NONE', ( -0.8962153705899985612, -0.7979956984068650172, 5.776585064013698201 ) ) ; +#3345 = VECTOR ( 'NONE', #911, 39.37007874015748854 ) ; +#3346 = FACE_OUTER_BOUND ( 'NONE', #3351, .T. ) ; +#3347 = CARTESIAN_POINT ( 'NONE', ( 0.2327478332558047813, 0.5402692230089709557, 6.222544359609986309 ) ) ; +#3348 = VERTEX_POINT ( 'NONE', #1118 ) ; +#3349 = VECTOR ( 'NONE', #1530, 39.37007874015748854 ) ; +#3350 = CARTESIAN_POINT ( 'NONE', ( 1.040732281126459435, -0.3891709545852141128, 5.696783350770202148 ) ) ; +#3351 = EDGE_LOOP ( 'NONE', ( #2069, #2406, #1, #4268, #4195, #2043, #5056, #2571 ) ) ; +#3352 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#3353 = CARTESIAN_POINT ( 'NONE', ( 0.6137281695053011799, -0.5564087180895118667, 5.355730255524930428 ) ) ; +#3354 = ORIENTED_EDGE ( 'NONE', *, *, #3411, .T. ) ; +#3355 = CARTESIAN_POINT ( 'NONE', ( -0.08137525361779095190, -0.3813329828537250776, 5.928196182617482712 ) ) ; +#3356 = CARTESIAN_POINT ( 'NONE', ( 0.8508281758544096185, 0.4912258763636598857, 5.406025211417605725 ) ) ; +#3357 = CARTESIAN_POINT ( 'NONE', ( -0.6200730500981526117, -0.1957305247169167650, 6.294010020239052317 ) ) ; +#3358 = ORIENTED_EDGE ( 'NONE', *, *, #4290, .F. ) ; +#3359 = CARTESIAN_POINT ( 'NONE', ( 0.6594867810375157902, 0.6694300051538208951, 5.470303972386260760 ) ) ; +#3360 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, 1.187171007058370309, 5.805572500925889834 ) ) ; +#3361 = ORIENTED_EDGE ( 'NONE', *, *, #381, .T. ) ; +#3362 = EDGE_CURVE ( 'NONE', #3096, #3137, #2356, .T. ) ; +#3363 = LINE ( 'NONE', #1710, #750 ) ; +#3364 = CARTESIAN_POINT ( 'NONE', ( -0.3858400872864291564, 0.05626580631045787623, 5.986163717094036052 ) ) ; +#3365 = CARTESIAN_POINT ( 'NONE', ( -1.048626403882720659, -0.4033521423446669307, 5.713381027863315254 ) ) ; +#3366 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#3367 = CARTESIAN_POINT ( 'NONE', ( 0.2442623859332752612, -1.174877827781376061, 5.775699719081118566 ) ) ; +#3368 = CARTESIAN_POINT ( 'NONE', ( -0.5078194151786449284, -0.2931896760531102486, 6.064721239031358735 ) ) ; +#3369 = CARTESIAN_POINT ( 'NONE', ( -0.7795816565475354176, 0.6521642734793818841, 5.195033353103291951 ) ) ; +#3370 = CIRCLE ( 'NONE', #1719, 0.1875000000000000555 ) ; +#3371 = EDGE_CURVE ( 'NONE', #3237, #4846, #5090, .T. ) ; +#3372 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#3373 = ORIENTED_EDGE ( 'NONE', *, *, #2650, .F. ) ; +#3374 = CARTESIAN_POINT ( 'NONE', ( 0.8081559794025906518, 0.8870768729460212221, 5.619127258109356760 ) ) ; +#3375 = EDGE_LOOP ( 'NONE', ( #3764, #1460, #5158, #5036, #3361, #3446, #4072 ) ) ; +#3376 = DIRECTION ( 'NONE', ( 3.571570303986756206E-16, 0.7660444431189782355, 0.6427876096865391409 ) ) ; +#3377 = CARTESIAN_POINT ( 'NONE', ( 0.5843520649415571144, 0.06870969194722728601, 6.222672007713478060 ) ) ; +#3378 = EDGE_CURVE ( 'NONE', #1269, #4692, #3173, .T. ) ; +#3379 = VERTEX_POINT ( 'NONE', #258 ) ; +#3380 = CARTESIAN_POINT ( 'NONE', ( 0.6328194151786387112, -0.07668332510699824023, 6.064721239031350741 ) ) ; +#3381 = CONICAL_SURFACE ( 'NONE', #1499, 0.5097749077943197760, 0.6981317007977323463 ) ; +#3382 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 1.625000000000000000, 3.104000000000000092 ) ) ; +#3383 = CARTESIAN_POINT ( 'NONE', ( -0.5986486003083939522, 0.09463484624190969530, 6.243538158956131845 ) ) ; +#3384 = ORIENTED_EDGE ( 'NONE', *, *, #4020, .F. ) ; +#3385 = CARTESIAN_POINT ( 'NONE', ( -0.7996834935816121703, 0.8947101821780649722, 5.593666288758528005 ) ) ; +#3386 = CARTESIAN_POINT ( 'NONE', ( 0.4795441317486422994, -0.4391337512295615531, 6.294010020238695269 ) ) ; +#3387 = ORIENTED_EDGE ( 'NONE', *, *, #3066, .T. ) ; +#3388 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2398, #4032, #3550, #2820, #2740, #5146, #3144, #2002, #3969, #3224, #1947, #5248, #281, #4744, #256, #3629, #1546, #4771, #3577, #1897, #3524, #1492, #5200, #3114, #1090 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 4 ), + ( 0.4999966969226332103, 0.5019498348253066400, 0.5039029727279800142, 0.5078092485332615924, 0.5156218001438298559, 0.5312469033650146777, 0.5624971098073414666, 0.6249975226920256866, 0.7499983484614141105, 0.7539046242667113429, 0.7578109000720085753, 0.7656234516825883851, 0.7812485549037482269, 0.8124987613460691316, 0.8749991742307132725, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#3389 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -0.2999999999999999889, 5.879000000000000448 ) ) ; +#3390 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, 0.8125000000000000000, 3.953999999999999737 ) ) ; +#3391 = CIRCLE ( 'NONE', #1080, 0.1875000000000000278 ) ; +#3392 = VECTOR ( 'NONE', #157, 39.37007874015748854 ) ; +#3393 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3394 = CARTESIAN_POINT ( 'NONE', ( 0.3423746956285088072, -1.150120379294506057, 5.661389411697435925 ) ) ; +#3395 = DIRECTION ( 'NONE', ( -3.061616997868378704E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +#3396 = CARTESIAN_POINT ( 'NONE', ( 0.8983856144743801453, -0.7955531565316955600, 5.778743187815336135 ) ) ; +#3397 = EDGE_CURVE ( 'NONE', #2389, #48, #5253, .T. ) ; +#3398 = ORIENTED_EDGE ( 'NONE', *, *, #1666, .F. ) ; +#3399 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.8590516373556182916, 0.5118889375212473114 ) ) ; +#3400 = EDGE_CURVE ( 'NONE', #5230, #3586, #311, .T. ) ; +#3401 = AXIS2_PLACEMENT_3D ( 'NONE', #3557, #4387, #718 ) ; +#3402 = DIRECTION ( 'NONE', ( -6.802134699437020831E-16, -0.7660444431189771253, -0.6427876096865402511 ) ) ; +#3403 = EDGE_LOOP ( 'NONE', ( #4477, #489, #3804, #481 ) ) ; +#3404 = FACE_OUTER_BOUND ( 'NONE', #4679, .T. ) ; +#3405 = EDGE_LOOP ( 'NONE', ( #802, #2471, #862, #4576 ) ) ; +#3406 = AXIS2_PLACEMENT_3D ( 'NONE', #161, #4729, #3533 ) ; +#3407 = CARTESIAN_POINT ( 'NONE', ( 0.1293267956409203390, 0.6414029486602053076, 6.297904280586476666 ) ) ; +#3408 = CARTESIAN_POINT ( 'NONE', ( 0.5844673218405778137, 0.06888754911884062415, 6.222833263326950082 ) ) ; +#3409 = VERTEX_POINT ( 'NONE', #741 ) ; +#3410 = CARTESIAN_POINT ( 'NONE', ( -0.3111952347534789887, 0.2349852891087362838, 5.911591706043772376 ) ) ; +#3411 = EDGE_CURVE ( 'NONE', #3108, #455, #5225, .T. ) ; +#3412 = CARTESIAN_POINT ( 'NONE', ( -0.5706219665366363269, -0.05010951366427918163, 6.204103035824426904 ) ) ; +#3413 = ORIENTED_EDGE ( 'NONE', *, *, #5272, .T. ) ; +#3414 = CARTESIAN_POINT ( 'NONE', ( -0.5349920402363717020, 0.02020266384996271397, 6.159507043090530765 ) ) ; +#3415 = DIRECTION ( 'NONE', ( -0.6634139481689385054, 0.3830222215594888957, 0.6427876096865393629 ) ) ; +#3416 = ORIENTED_EDGE ( 'NONE', *, *, #440, .F. ) ; +#3417 = FACE_OUTER_BOUND ( 'NONE', #2605, .T. ) ; +#3418 = CARTESIAN_POINT ( 'NONE', ( -0.1833337866915112357, -1.037201647221739798, 5.626845977561527157 ) ) ; +#3419 = CARTESIAN_POINT ( 'NONE', ( 0.8575826284042152858, -0.7067122271723805804, 5.696972105878575832 ) ) ; +#3420 = CARTESIAN_POINT ( 'NONE', ( 0.3164780203617504339, -0.4713938048432713135, 6.129000000000000448 ) ) ; +#3421 = DIRECTION ( 'NONE', ( -0.6634139481689380613, 0.3830222215594901169, -0.6427876096865391409 ) ) ; +#3422 = CARTESIAN_POINT ( 'NONE', ( 0.8658265010463113143, -0.8308685090452895272, 5.738551864806655800 ) ) ; +#3423 = VERTEX_POINT ( 'NONE', #2266 ) ; +#3424 = CARTESIAN_POINT ( 'NONE', ( -0.2704785714920710515, -0.2808926139301993197, 5.947937117753927971 ) ) ; +#3425 = CARTESIAN_POINT ( 'NONE', ( -0.6250000000000000000, 1.082531754730549300, 4.849972727250857929 ) ) ; +#3426 = EDGE_CURVE ( 'NONE', #3725, #4154, #5150, .T. ) ; +#3427 = EDGE_LOOP ( 'NONE', ( #4355, #5265, #3643, #4662, #5081, #4648 ) ) ; +#3428 = CARTESIAN_POINT ( 'NONE', ( 0.8508639946166439705, 0.8461788838033021953, 5.714158253676018262 ) ) ; +#3429 = FACE_OUTER_BOUND ( 'NONE', #3246, .T. ) ; +#3430 = ORIENTED_EDGE ( 'NONE', *, *, #2728, .T. ) ; +#3431 = AXIS2_PLACEMENT_3D ( 'NONE', #3447, #1311, #4206 ) ; +#3432 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 0.000000000000000000 ) ) ; +#3433 = CARTESIAN_POINT ( 'NONE', ( -0.4290832926986046791, -0.4607818666749385894, 6.271836282905964843 ) ) ; +#3434 = ORIENTED_EDGE ( 'NONE', *, *, #4146, .F. ) ; +#3435 = CARTESIAN_POINT ( 'NONE', ( 0.2352640473529976628, -0.3281021980147050265, 6.002107703382351112 ) ) ; +#3436 = DIRECTION ( 'NONE', ( 3.571570303986756206E-16, 0.7660444431189782355, 0.6427876096865391409 ) ) ; +#3437 = VERTEX_POINT ( 'NONE', #2375 ) ; +#3438 = EDGE_CURVE ( 'NONE', #2603, #2779, #50, .T. ) ; +#3439 = CARTESIAN_POINT ( 'NONE', ( -0.5230442286045877687, 0.01330459158807826767, 6.144968119823790431 ) ) ; +#3440 = CARTESIAN_POINT ( 'NONE', ( -0.8359301571926323060, 0.8609392696367061948, 5.685712360042982638 ) ) ; +#3441 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#3442 = CARTESIAN_POINT ( 'NONE', ( 1.037840268079750050, 0.3971247639353054915, 5.309607069964629389 ) ) ; +#3443 = CARTESIAN_POINT ( 'NONE', ( -1.167428874406753581, 0.2776825052636245905, 5.659874780767825797 ) ) ; +#3444 = CARTESIAN_POINT ( 'NONE', ( -0.2499970215446267741, -0.4725879520023630875, 6.158558140301465755 ) ) ; +#3445 = DIRECTION ( 'NONE', ( -1.000000000000000000, 8.195543980992789655E-16, 0.000000000000000000 ) ) ; +#3446 = ORIENTED_EDGE ( 'NONE', *, *, #5211, .F. ) ; +#3447 = CARTESIAN_POINT ( 'NONE', ( -0.4414780203617504339, 0.2548874538971590553, 6.129000000000000448 ) ) ; +#3448 = CARTESIAN_POINT ( 'NONE', ( 3.933861110876538837E-16, 0.5097749077943188878, 6.129000000000000448 ) ) ; +#3449 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #857, #1688, #2935, #4568 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#3450 = ORIENTED_EDGE ( 'NONE', *, *, #46, .F. ) ; +#3451 = DIRECTION ( 'NONE', ( -6.250248031976811775E-16, -0.7660444431189782355, 0.6427876096865391409 ) ) ; +#3452 = EDGE_CURVE ( 'NONE', #2603, #4425, #4592, .T. ) ; +#3453 = DIRECTION ( 'NONE', ( 0.5566703992264192546, 0.3213938048432691819, 0.7660444431189783465 ) ) ; +#3454 = ORIENTED_EDGE ( 'NONE', *, *, #4371, .T. ) ; +#3455 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, -1.109813176013889846, 5.713381027863315254 ) ) ; +#3456 = CARTESIAN_POINT ( 'NONE', ( -0.6166651215651339779, -0.1557604612871976157, 6.279297187828201565 ) ) ; +#3457 = ORIENTED_EDGE ( 'NONE', *, *, #4564, .T. ) ; +#3458 = CARTESIAN_POINT ( 'NONE', ( 0.02735642117789109304, 0.3891769352203303112, 5.905295428015948644 ) ) ; +#3459 = CARTESIAN_POINT ( 'NONE', ( 0.3530231993661020473, 1.146956406594453082, 5.642743906589291036 ) ) ; +#3460 = EDGE_LOOP ( 'NONE', ( #3301, #1473, #1478, #154, #4042, #2100, #3855 ) ) ; +#3461 = CIRCLE ( 'NONE', #2522, 0.1330000000000000626 ) ; +#3462 = EDGE_CURVE ( 'NONE', #3555, #5108, #4743, .T. ) ; +#3463 = CARTESIAN_POINT ( 'NONE', ( -0.4757302947208699728, 0.006171508064499358140, 6.088400557723481654 ) ) ; +#3464 = CARTESIAN_POINT ( 'NONE', ( -1.681607939076289693, 0.9708767962971043275, 4.129000000000000448 ) ) ; +#3465 = ORIENTED_EDGE ( 'NONE', *, *, #2441, .F. ) ; +#3466 = EDGE_CURVE ( 'NONE', #3648, #937, #3266, .T. ) ; +#3467 = CIRCLE ( 'NONE', #2770, 0.2500000000000000000 ) ; +#3468 = CARTESIAN_POINT ( 'NONE', ( -0.3511232560949524850, 0.4716792742115138437, 6.222246818970694093 ) ) ; +#3469 = CARTESIAN_POINT ( 'NONE', ( -0.3487217279073209220, 1.148211523748049689, 5.649915673857281107 ) ) ; +#3470 = CYLINDRICAL_SURFACE ( 'NONE', #4949, 0.1875000000000000555 ) ; +#3471 = CARTESIAN_POINT ( 'NONE', ( -0.1665128148422702903, -0.3677957406123292805, 6.002107703382717929 ) ) ; +#3472 = VECTOR ( 'NONE', #1140, 39.37007874015748854 ) ; +#3473 = CARTESIAN_POINT ( 'NONE', ( 0.8903672648388440969, -0.8045751113225079187, 5.770727711706399532 ) ) ; +#3474 = VECTOR ( 'NONE', #4888, 39.37007874015748854 ) ; +#3475 = ORIENTED_EDGE ( 'NONE', *, *, #4951, .F. ) ; +#3476 = ADVANCED_FACE ( 'NONE', ( #5280 ), #1225, .F. ) ; +#3477 = CARTESIAN_POINT ( 'NONE', ( -0.3240740676130619558, -0.2185285410131467543, 5.903217844728877672 ) ) ; +#3478 = CARTESIAN_POINT ( 'NONE', ( -0.3164780203617503784, -0.4713938048432707584, 6.129000000000000448 ) ) ; +#3479 = VERTEX_POINT ( 'NONE', #3688 ) ; +#3480 = LINE ( 'NONE', #967, #2780 ) ; +#3481 = AXIS2_PLACEMENT_3D ( 'NONE', #86, #1703, #1731 ) ; +#3482 = FACE_BOUND ( 'NONE', #1125, .T. ) ; +#3483 = ORIENTED_EDGE ( 'NONE', *, *, #851, .T. ) ; +#3484 = CARTESIAN_POINT ( 'NONE', ( -0.3738603157773388030, 0.1108134366217576605, 5.934561472118630832 ) ) ; +#3485 = AXIS2_PLACEMENT_3D ( 'NONE', #2701, #3048, #3905 ) ; +#3486 = CARTESIAN_POINT ( 'NONE', ( -0.5844803013568952155, 0.06890760339685592095, 6.222851426380393569 ) ) ; +#3487 = VERTEX_POINT ( 'NONE', #441 ) ; +#3488 = CARTESIAN_POINT ( 'NONE', ( -0.1027728272654520186, 0.3761643312596376076, 5.943519118031453274 ) ) ; +#3489 = AXIS2_PLACEMENT_3D ( 'NONE', #2993, #3402, #2244 ) ; +#3490 = CARTESIAN_POINT ( 'NONE', ( 0.6633281758544076201, -0.8159854027828268297, 5.406025211417605725 ) ) ; +#3491 = AXIS2_PLACEMENT_3D ( 'NONE', #1661, #1261, #3693 ) ; +#3492 = CARTESIAN_POINT ( 'NONE', ( -0.4242666027659070527, 0.02424080399795196586, 6.027911261264240039 ) ) ; +#3493 = EDGE_CURVE ( 'NONE', #3620, #2063, #136, .T. ) ; +#3494 = CARTESIAN_POINT ( 'NONE', ( -0.1874969832226789090, -1.051874449749947260, 5.643846109716830206 ) ) ; +#3495 = ORIENTED_EDGE ( 'NONE', *, *, #2097, .T. ) ; +#3496 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, 0.8125000000000000000, 3.104000000000000092 ) ) ; +#3497 = CARTESIAN_POINT ( 'NONE', ( -0.3133703059790203804, 1.158356131613304196, 5.706295872974589400 ) ) ; +#3498 = AXIS2_PLACEMENT_3D ( 'NONE', #3389, #2104, #2051 ) ; +#3499 = CARTESIAN_POINT ( 'NONE', ( 0.6250000000000000000, 1.082531754730549300, 4.849972727250857929 ) ) ; +#3500 = CARTESIAN_POINT ( 'NONE', ( -0.2470560079614974314, -0.4470509579365421482, 6.130089832683999873 ) ) ; +#3501 = CARTESIAN_POINT ( 'NONE', ( 0.8707645480828382079, -0.8257006812120637473, 5.745822387887380422 ) ) ; +#3502 = ORIENTED_EDGE ( 'NONE', *, *, #4802, .F. ) ; +#3503 = CARTESIAN_POINT ( 'NONE', ( 0.5844919842636051577, -0.06892565615859880257, 6.222867768771142671 ) ) ; +#3504 = DIRECTION ( 'NONE', ( -0.4999999999999998335, 0.8660254037844385966, 1.288588128118389387E-16 ) ) ; +#3505 = EDGE_CURVE ( 'NONE', #139, #3137, #5041, .T. ) ; +#3506 = VERTEX_POINT ( 'NONE', #2958 ) ; +#3507 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #4646, #3036, #1872, #986 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 5.759586531581288860, 6.806784082777883604 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9106836025229594345, 0.9106836025229594345, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#3508 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, -0.9058473084154252675, 5.470303972386260760 ) ) ; +#3509 = CARTESIAN_POINT ( 'NONE', ( -0.2416476612724869077, -0.3060144142332243411, 5.879000000000000448 ) ) ; +#3510 = ORIENTED_EDGE ( 'NONE', *, *, #988, .T. ) ; +#3511 = CARTESIAN_POINT ( 'NONE', ( 0.3822058331810388454, -0.07786849971810351489, 5.962298109070916396 ) ) ; +#3512 = ORIENTED_EDGE ( 'NONE', *, *, #134, .F. ) ; +#3513 = CARTESIAN_POINT ( 'NONE', ( -5.783046526498795293E-17, -1.337116258361070674E-15, 6.271836282905964843 ) ) ; +#3514 = CARTESIAN_POINT ( 'NONE', ( 0.2941169650608285169, 1.163396639243780228, 5.730263837021367657 ) ) ; +#3515 = CARTESIAN_POINT ( 'NONE', ( 0.9899098686868957886, 0.3598291069640213724, 5.626845977561574230 ) ) ; +#3516 = AXIS2_PLACEMENT_3D ( 'NONE', #179, #3751, #1824 ) ; +#3517 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.8590516373556178475, 0.5118889375212479775 ) ) ; +#3518 = ORIENTED_EDGE ( 'NONE', *, *, #4547, .T. ) ; +#3519 = LINE ( 'NONE', #2661, #70 ) ; +#3520 = ADVANCED_FACE ( 'NONE', ( #4962 ), #1387, .F. ) ; +#3521 = CARTESIAN_POINT ( 'NONE', ( -0.2544403485445834168, 1.172713713630854748, 5.768205459013898917 ) ) ; +#3522 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 1.758000000000000007, 3.104000000000000092 ) ) ; +#3523 = CARTESIAN_POINT ( 'NONE', ( 0.2332795014728174521, 0.3520610612505291614, 6.024784635834111945 ) ) ; +#3524 = CARTESIAN_POINT ( 'NONE', ( 0.8065018419336458244, -0.6750795601084662589, 5.625296605288260032 ) ) ; +#3525 = CARTESIAN_POINT ( 'NONE', ( -0.2430395290370670203, -0.5159352789983473464, 6.201076894126090089 ) ) ; +#3526 = CARTESIAN_POINT ( 'NONE', ( 0.5844803013568619088, -0.06890760339680800095, 6.222851426380346496 ) ) ; +#3527 = CARTESIAN_POINT ( 'NONE', ( 0.6826897502467756951, 0.3941511110779724603, 5.096860619515669377 ) ) ; +#3528 = VERTEX_POINT ( 'NONE', #1362 ) ; +#3529 = FACE_OUTER_BOUND ( 'NONE', #202, .T. ) ; +#3530 = ORIENTED_EDGE ( 'NONE', *, *, #1004, .T. ) ; +#3531 = EDGE_CURVE ( 'NONE', #261, #3883, #173, .T. ) ; +#3532 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.6427876096865391409, -0.7660444431189781245 ) ) ; +#3533 = DIRECTION ( 'NONE', ( -0.4999999999999998335, 0.8660254037844388186, 0.000000000000000000 ) ) ; +#3534 = ORIENTED_EDGE ( 'NONE', *, *, #1795, .F. ) ; +#3535 = ORIENTED_EDGE ( 'NONE', *, *, #3240, .F. ) ; +#3536 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #1704, #1273, #4845, #2099 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.268928027592554297, 3.054326190990089174 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9492530216741800198, 0.9492530216741800198, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#3537 = CARTESIAN_POINT ( 'NONE', ( 0.3399490756252608881, -0.1909801152221513310, 5.903292738066989287 ) ) ; +#3538 = AXIS2_PLACEMENT_3D ( 'NONE', #2562, #981, #527 ) ; +#3539 = EDGE_CURVE ( 'NONE', #3148, #2718, #984, .T. ) ; +#3540 = CARTESIAN_POINT ( 'NONE', ( 0.2848640191080758499, -0.4531414548970978395, 6.159280621619644513 ) ) ; +#3541 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.294298002108009606E-15, 6.079000000000000625 ) ) ; +#3542 = FACE_OUTER_BOUND ( 'NONE', #5259, .T. ) ; +#3543 = FACE_OUTER_BOUND ( 'NONE', #650, .T. ) ; +#3544 = ORIENTED_EDGE ( 'NONE', *, *, #2524, .T. ) ; +#3545 = CARTESIAN_POINT ( 'NONE', ( -0.5756568976287270711, 0.3540999100099083696, 6.316086704512273720 ) ) ; +#3546 = CARTESIAN_POINT ( 'NONE', ( -0.3696162423837919819, 1.141672437742214719, 5.606944554801519764 ) ) ; +#3547 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, -1.097358419195169299, 5.309607069964629389 ) ) ; +#3548 = CARTESIAN_POINT ( 'NONE', ( 0.2364218436580375060, 0.3269204708033690565, 6.002172553011626555 ) ) ; +#3549 = AXIS2_PLACEMENT_3D ( 'NONE', #2477, #1194, #3741 ) ; +#3550 = CARTESIAN_POINT ( 'NONE', ( 0.8300850544579000401, -0.6957561752536287614, 5.661576568002715248 ) ) ; +#3551 = VERTEX_POINT ( 'NONE', #934 ) ; +#3552 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#3553 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #763, #2394, #4025, #4050 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#3554 = CARTESIAN_POINT ( 'NONE', ( -0.2410500019247721892, -0.4057134929350401098, 6.083873751948464914 ) ) ; +#3555 = VERTEX_POINT ( 'NONE', #2932 ) ; +#3556 = EDGE_CURVE ( 'NONE', #3806, #1592, #159, .T. ) ; +#3557 = CARTESIAN_POINT ( 'NONE', ( -0.2500000000000000000, 0.9460215340208327772, 5.518181750081197379 ) ) ; +#3558 = VECTOR ( 'NONE', #922, 39.37007874015748143 ) ; +#3559 = EDGE_CURVE ( 'NONE', #3555, #1044, #2140, .T. ) ; +#3560 = CARTESIAN_POINT ( 'NONE', ( -1.115620250748909470, 0.4420310578669109924, 5.805572500925889834 ) ) ; +#3561 = CARTESIAN_POINT ( 'NONE', ( 0.8736264038827145084, 0.7064610336692165315, 5.713381027863315254 ) ) ; +#3562 = ORIENTED_EDGE ( 'NONE', *, *, #3010, .T. ) ; +#3563 = ORIENTED_EDGE ( 'NONE', *, *, #5240, .T. ) ; +#3564 = CARTESIAN_POINT ( 'NONE', ( 0.2907087093692062307, -0.2598536754337919530, 5.927147773436251654 ) ) ; +#3565 = DIRECTION ( 'NONE', ( -0.5000000000000001110, -0.8660254037844384856, 0.000000000000000000 ) ) ; +#3566 = CARTESIAN_POINT ( 'NONE', ( 0.3643030013741282991, 1.143420365706228514, 5.620048901747676240 ) ) ; +#3567 = FACE_OUTER_BOUND ( 'NONE', #2722, .T. ) ; +#3568 = VECTOR ( 'NONE', #2829, 39.37007874015748143 ) ; +#3569 = EDGE_CURVE ( 'NONE', #3528, #2733, #45, .T. ) ; +#3570 = DIRECTION ( 'NONE', ( 0.6634139481689388385, 0.3830222215594888957, -0.6427876096865389188 ) ) ; +#3571 = ORIENTED_EDGE ( 'NONE', *, *, #4020, .T. ) ; +#3572 = AXIS2_PLACEMENT_3D ( 'NONE', #3965, #1160, #2788 ) ; +#3573 = CARTESIAN_POINT ( 'NONE', ( -0.4795441317478748577, 0.4391337512299339774, 6.294010020238390624 ) ) ; +#3574 = CARTESIAN_POINT ( 'NONE', ( -0.3052284687226812232, 1.160525835497635994, 5.716910670410160655 ) ) ; +#3575 = CARTESIAN_POINT ( 'NONE', ( -1.156155013602602422, 0.3213999976852531248, 5.723657599040425481 ) ) ; +#3576 = CARTESIAN_POINT ( 'NONE', ( 0.2416476612724870188, 0.3060144142332220651, 5.986163717094036052 ) ) ; +#3577 = CARTESIAN_POINT ( 'NONE', ( 0.8098032695511007129, -0.6790466825113169458, 5.630997577482117045 ) ) ; +#3578 = ORIENTED_EDGE ( 'NONE', *, *, #4129, .T. ) ; +#3579 = DIRECTION ( 'NONE', ( 9.480812427427115842E-16, 0.7660444431189776804, -0.6427876096865396960 ) ) ; +#3580 = CARTESIAN_POINT ( 'NONE', ( -0.3705998951858189838, -0.1212106952860827203, 5.927542632676257028 ) ) ; +#3581 = DIRECTION ( 'NONE', ( 4.248067130688606096E-16, 0.7660444431189782355, -0.6427876096865391409 ) ) ; +#3582 = CARTESIAN_POINT ( 'NONE', ( 0.2008208592754108235, 0.3851193759464283106, 6.038823248738358629 ) ) ; +#3583 = CARTESIAN_POINT ( 'NONE', ( -0.2736403833492310200, 0.4457931912156212761, 6.144755415743259341 ) ) ; +#3584 = EDGE_CURVE ( 'NONE', #1358, #5230, #1683, .T. ) ; +#3585 = CARTESIAN_POINT ( 'NONE', ( 0.2849920402363720906, 0.4532153657421811310, 6.159507043090530765 ) ) ; +#3586 = VERTEX_POINT ( 'NONE', #4246 ) ; +#3587 = ORIENTED_EDGE ( 'NONE', *, *, #3186, .F. ) ; +#3588 = CARTESIAN_POINT ( 'NONE', ( 0.2180394375817033825, -0.3982088572688365913, 6.062477588642471105 ) ) ; +#3589 = AXIS2_PLACEMENT_3D ( 'NONE', #2262, #4741, #4670 ) ; +#3590 = CARTESIAN_POINT ( 'NONE', ( -0.8703155468292433916, -0.8262073485719751975, 5.745448354740344321 ) ) ; +#3591 = CARTESIAN_POINT ( 'NONE', ( -0.1882540719899009063, 0.3780565050829192697, 6.024784635834150137 ) ) ; +#3592 = CARTESIAN_POINT ( 'NONE', ( 0.3828194151786387667, -0.5096960269992171222, 6.064721239031350741 ) ) ; +#3593 = ORIENTED_EDGE ( 'NONE', *, *, #1302, .T. ) ; +#3594 = CARTESIAN_POINT ( 'NONE', ( 1.250000000000000000, -1.330279032376149597E-15, 4.849972727250857929 ) ) ; +#3595 = CARTESIAN_POINT ( 'NONE', ( -0.6633281758544095075, -0.8159854027828268297, 5.406025211417605725 ) ) ; +#3596 = VERTEX_POINT ( 'NONE', #4988 ) ; +#3597 = CARTESIAN_POINT ( 'NONE', ( -0.5217981895786669710, 0.4111482819134495426, 6.306870712082975672 ) ) ; +#3598 = CARTESIAN_POINT ( 'NONE', ( -0.9406202507489094256, 0.7451399491914646456, 5.805572500925889834 ) ) ; +#3599 = EDGE_CURVE ( 'NONE', #2091, #2443, #5004, .T. ) ; +#3600 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#3601 = CARTESIAN_POINT ( 'NONE', ( -0.6633281758544076201, 0.8159854027828249423, 5.406025211417605725 ) ) ; +#3602 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #831, .NOT_KNOWN. ) ; +#3603 = FACE_OUTER_BOUND ( 'NONE', #1856, .T. ) ; +#3604 = ORIENTED_EDGE ( 'NONE', *, *, #621, .F. ) ; +#3605 = CARTESIAN_POINT ( 'NONE', ( 0.5844990392303464066, -0.06893655214333350989, 6.222877651799250565 ) ) ; +#3606 = CARTESIAN_POINT ( 'NONE', ( 5.682243826821669072E-16, 0.5863793521062165004, 6.064721239031358735 ) ) ; +#3607 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) ); +#3608 = CARTESIAN_POINT ( 'NONE', ( 0.2322730025073770910, -0.5411972490037667560, 6.223335101062661856 ) ) ; +#3609 = CARTESIAN_POINT ( 'NONE', ( 1.129751310136972720, 0.4045727441679436986, 5.793052418678827920 ) ) ; +#3610 = VERTEX_POINT ( 'NONE', #2563 ) ; +#3611 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #1309, #3285, #4965, #4911 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.617993877991495300, 3.665191429188091821 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9106836025229592124, 0.9106836025229592124, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#3612 = ORIENTED_EDGE ( 'NONE', *, *, #790, .T. ) ; +#3613 = CARTESIAN_POINT ( 'NONE', ( 0.1966521318517711336, -0.3826263230192409881, 6.034154198208450559 ) ) ; +#3614 = EDGE_CURVE ( 'NONE', #2779, #3237, #2107, .T. ) ; +#3615 = CARTESIAN_POINT ( 'NONE', ( -1.154589526793077026, -0.3269855561954349010, 5.730263837021699835 ) ) ; +#3616 = VERTEX_POINT ( 'NONE', #120 ) ; +#3617 = CARTESIAN_POINT ( 'NONE', ( -0.2325204645928807545, 0.4150802746033586121, 6.088400557716145300 ) ) ; +#3618 = CARTESIAN_POINT ( 'NONE', ( -0.3404744564952308927, -1.150684004573187202, 5.664700937563197591 ) ) ; +#3619 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2101, #2581, #4218, #5008, #2978, #4534, #3303, #4109, #90, #2870, #1356, #1245, #114, #871, #2048 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.2499999999997798428, 0.3749999999996702083, 0.4374999999996158073, 0.4687499999995890509, 0.4843749999995802802, 0.4921874999995808908, 0.4999999999995814459, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#3620 = VERTEX_POINT ( 'NONE', #71 ) ; +#3621 = CARTESIAN_POINT ( 'NONE', ( 0.1441924260139429148, 0.3622802205436811418, 5.986163717094036052 ) ) ; +#3622 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, -0.6794999999999999929, 3.953999999999999737 ) ) ; +#3623 = ORIENTED_EDGE ( 'NONE', *, *, #3635, .F. ) ; +#3624 = CARTESIAN_POINT ( 'NONE', ( -0.6151920504564915015, 0.1487874885988640927, 6.275722679830935569 ) ) ; +#3625 = EDGE_CURVE ( 'NONE', #963, #5217, #579, .T. ) ; +#3626 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#3627 = CARTESIAN_POINT ( 'NONE', ( 0.4379185432414377521, -0.01668107705778698602, 6.043708584793903604 ) ) ; +#3628 = CARTESIAN_POINT ( 'NONE', ( 1.174683493581610394, 0.2451911293397330549, 5.593666288758528005 ) ) ; +#3629 = CARTESIAN_POINT ( 'NONE', ( 0.8123189827470623792, -0.6817649348225094386, 5.635157286334448123 ) ) ; +#3630 = ORIENTED_EDGE ( 'NONE', *, *, #2066, .T. ) ; +#3631 = CARTESIAN_POINT ( 'NONE', ( 0.6191423467895946775, 0.2291820323824621808, 6.303252268755594301 ) ) ; +#3632 = CIRCLE ( 'NONE', #5243, 2.250000000000000000 ) ; +#3633 = CARTESIAN_POINT ( 'NONE', ( 0.6137281695053011799, -0.5564087180895118667, 5.355730255524930428 ) ) ; +#3634 = CARTESIAN_POINT ( 'NONE', ( 0.2155758056374637299, 0.3962293957075219697, 6.059013099287563264 ) ) ; +#3635 = EDGE_CURVE ( 'NONE', #191, #2765, #1724, .T. ) ; +#3636 = FACE_OUTER_BOUND ( 'NONE', #4842, .T. ) ; +#3637 = AXIS2_PLACEMENT_3D ( 'NONE', #3678, #4505, #5296 ) ; +#3638 = CARTESIAN_POINT ( 'NONE', ( 1.163583903140437359, 0.2933804146129878609, 5.685576664318652718 ) ) ; +#3639 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #3042, 'distance_accuracy_value', 'NONE'); +#3640 = ORIENTED_EDGE ( 'NONE', *, *, #2324, .T. ) ; +#3641 = CARTESIAN_POINT ( 'NONE', ( -0.1875000000000000278, 1.066783749530899605, 5.661614086336346219 ) ) ; +#3642 = AXIS2_PLACEMENT_3D ( 'NONE', #3796, #4201, #2163 ) ; +#3643 = ORIENTED_EDGE ( 'NONE', *, *, #3297, .T. ) ; +#3644 = AXIS2_PLACEMENT_3D ( 'NONE', #18, #2146, #2855 ) ; +#3645 = VECTOR ( 'NONE', #4313, 39.37007874015748854 ) ; +#3646 = CARTESIAN_POINT ( 'NONE', ( -0.1911401493102304061, 0.3795460579704495463, 6.027911261261582609 ) ) ; +#3647 = DIRECTION ( 'NONE', ( 1.000000000000000000, 1.784094010544409707E-16, -2.126200446592109633E-16 ) ) ; +#3648 = VERTEX_POINT ( 'NONE', #957 ) ; +#3649 = CARTESIAN_POINT ( 'NONE', ( -0.4534985198946681617, -0.01060584040477070833, 6.062079889089788232 ) ) ; +#3650 = CARTESIAN_POINT ( 'NONE', ( 9.184850993605158298E-17, 0.7500000000000001110, 5.128999999999999559 ) ) ; +#3651 = ORIENTED_EDGE ( 'NONE', *, *, #4121, .T. ) ; +#3652 = CARTESIAN_POINT ( 'NONE', ( -0.8736264038827166178, 0.7064610336692185300, 5.713381027863315254 ) ) ; +#3653 = CARTESIAN_POINT ( 'NONE', ( 1.004690319563159795, -0.3635548762673587175, 5.643834550591058097 ) ) ; +#3654 = ORIENTED_EDGE ( 'NONE', *, *, #232, .F. ) ; +#3655 = CIRCLE ( 'NONE', #2455, 0.2500000000000000555 ) ; +#3656 = ADVANCED_FACE ( 'NONE', ( #2213 ), #4175, .F. ) ; +#3657 = CARTESIAN_POINT ( 'NONE', ( -1.155834277805032562, 0.3225521942617916582, 5.725042583526316342 ) ) ; +#3658 = LINE ( 'NONE', #437, #812 ) ; +#3659 = CARTESIAN_POINT ( 'NONE', ( 0.3444852495020295780, 0.1831765060966393244, 5.903217354208975642 ) ) ; +#3660 = AXIS2_PLACEMENT_3D ( 'NONE', #4786, #2361, #1587 ) ; +#3661 = CARTESIAN_POINT ( 'NONE', ( -0.8247878284444088992, -0.8716219970822098873, 5.661253493220129052 ) ) ; +#3662 = CIRCLE ( 'NONE', #1360, 0.6296287800994468942 ) ; +#3663 = EDGE_CURVE ( 'NONE', #5059, #2546, #5026, .T. ) ; +#3664 = DIRECTION ( 'NONE', ( -0.6634139481689370621, 0.3830222215594901169, -0.6427876096865401401 ) ) ; +#3665 = CARTESIAN_POINT ( 'NONE', ( 0.6015694151786391553, -0.1308099128435256941, 6.064721239031350741 ) ) ; +#3666 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #3082, #3515, #549, #3817 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 0.5000032659737013718 ), + .UNSPECIFIED. ) ; +#3667 = CARTESIAN_POINT ( 'NONE', ( 0.2324312584862118503, -0.5408887162288944506, 6.223073101853395350 ) ) ; +#3668 = CARTESIAN_POINT ( 'NONE', ( 1.166703274109391453, 0.2807196202859376655, 5.665104666033585090 ) ) ; +#3669 = EDGE_CURVE ( 'NONE', #2474, #3209, #2237, .T. ) ; +#3670 = VERTEX_POINT ( 'NONE', #4695 ) ; +#3671 = CARTESIAN_POINT ( 'NONE', ( 1.017611827438179128, -0.3710121115558720484, 5.661614086336346219 ) ) ; +#3672 = ORIENTED_EDGE ( 'NONE', *, *, #87, .T. ) ; +#3673 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#3674 = CARTESIAN_POINT ( 'NONE', ( -0.2961184259404006092, -1.162887893440758491, 5.727943781059432027 ) ) ; +#3675 = ORIENTED_EDGE ( 'NONE', *, *, #3614, .T. ) ; +#3676 = CARTESIAN_POINT ( 'NONE', ( 1.199999999999999956, -1.461283649571129740E-15, 5.473691469039889235 ) ) ; +#3677 = FACE_OUTER_BOUND ( 'NONE', #2994, .T. ) ; +#3678 = CARTESIAN_POINT ( 'NONE', ( -3.581366610240468148E-17, -1.273684206347440940E-15, 5.986163717094036052 ) ) ; +#3679 = ORIENTED_EDGE ( 'NONE', *, *, #790, .F. ) ; +#3680 = DIRECTION ( 'NONE', ( 0.4999999999999998335, -0.8660254037844385966, -1.645406930227279119E-16 ) ) ; +#3681 = CARTESIAN_POINT ( 'NONE', ( -1.017611827438179128, 0.3710121115558701055, 5.661614086336346219 ) ) ; +#3682 = ORIENTED_EDGE ( 'NONE', *, *, #5178, .F. ) ; +#3683 = DIRECTION ( 'NONE', ( -0.4999999999999998335, -0.8660254037844385966, -1.288588128118389387E-16 ) ) ; +#3684 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.8590516373556178475, -0.5118889375212479775 ) ) ; +#3685 = CARTESIAN_POINT ( 'NONE', ( 0.3701311417628532774, 0.1226340845747592029, 5.926640053128837238 ) ) ; +#3686 = EDGE_CURVE ( 'NONE', #1810, #2501, #242, .T. ) ; +#3687 = CARTESIAN_POINT ( 'NONE', ( -0.8569282592191554970, -0.8400327696745935047, 5.724503263314529633 ) ) ; +#3688 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, -0.6794999999999999929, 3.479000000000000092 ) ) ; +#3689 = DIRECTION ( 'NONE', ( -0.8089634933040121823, 0.000000000000000000, 0.5878588831525550784 ) ) ; +#3690 = CARTESIAN_POINT ( 'NONE', ( 0.2137190145156838694, 0.3946108192894547950, 6.056259134400494126 ) ) ; +#3691 = VECTOR ( 'NONE', #4167, 39.37007874015748854 ) ; +#3692 = DIRECTION ( 'NONE', ( -1.000000000000000000, 3.642463991552350465E-16, 0.000000000000000000 ) ) ; +#3693 = DIRECTION ( 'NONE', ( 0.8000000000000004885, -0.4596266658713864528, 0.3856725658119229960 ) ) ; +#3694 = EDGE_CURVE ( 'NONE', #3205, #2710, #701, .T. ) ; +#3695 = CARTESIAN_POINT ( 'NONE', ( 0.1845071557944090446, 0.6019879651539330467, 6.271836282905964843 ) ) ; +#3696 = ORIENTED_EDGE ( 'NONE', *, *, #3426, .T. ) ; +#3697 = CARTESIAN_POINT ( 'NONE', ( 0.1884785811214385598, -0.3781700787334127400, 6.025025194221857561 ) ) ; +#3698 = EDGE_CURVE ( 'NONE', #33, #4152, #3062, .T. ) ; +#3699 = EDGE_LOOP ( 'NONE', ( #727, #2805, #1003, #1405 ) ) ; +#3700 = CARTESIAN_POINT ( 'NONE', ( 0.1609566326555348370, 0.6216639975092059789, 6.285812736321640060 ) ) ; +#3701 = CARTESIAN_POINT ( 'NONE', ( -0.2515988532491484908, -1.173368225706821200, 5.770727711698301121 ) ) ; +#3702 = ORIENTED_EDGE ( 'NONE', *, *, #2524, .F. ) ; +#3703 = CARTESIAN_POINT ( 'NONE', ( 0.08200290702923275499, -0.3811990496750352064, 5.928591840970979021 ) ) ; +#3704 = LINE ( 'NONE', #404, #1350 ) ; +#3705 = EDGE_CURVE ( 'NONE', #2366, #3045, #4968, .T. ) ; +#3706 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 0.000000000000000000 ) ) ; +#3707 = EDGE_LOOP ( 'NONE', ( #3126, #1085 ) ) ; +#3708 = CYLINDRICAL_SURFACE ( 'NONE', #4514, 0.2500000000000000555 ) ; +#3709 = CARTESIAN_POINT ( 'NONE', ( -0.2446939664535320857, 1.174786851234701945, 5.775397075565894767 ) ) ; +#3710 = ORIENTED_EDGE ( 'NONE', *, *, #1462, .T. ) ; +#3711 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2349, #3978, #1956, #3582, #2909, #4147, #3690, #3634, #2033, #1629, #472, #1717, #2113, #3748, #1259, #797, #1658, #14, #5284, #75, #881, #2882, #1284, #4061, #4883, #2428, #3258, #2510, #2059 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 4 ), + ( 0.000000000000000000, 0.1402142008310023613, 0.2103213012465035558, 0.2453748514542539449, 0.2497565452302228095, 0.2519473921182073251, 0.2541382390061918684, 0.2629016265581241019, 0.2804284016619882913, 0.4206426024929078022, 0.4907497029083676687, 0.5258032531160975465, 0.5433300282199654552, 0.5520934157718992985, 0.5564751095478664977, 0.5586659564358529284, 0.5608568033238393591 ), + .UNSPECIFIED. ) ; +#3712 = CARTESIAN_POINT ( 'NONE', ( 1.167428874406649442, -0.2776825052643452363, 5.659874780769097669 ) ) ; +#3713 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 0.000000000000000000 ) ) ; +#3714 = CARTESIAN_POINT ( 'NONE', ( -0.8584136224860907660, 0.8385222892804118366, 5.726939577286165317 ) ) ; +#3715 = CARTESIAN_POINT ( 'NONE', ( 0.3522077396315150266, 0.4717357325970947812, 6.223073101853435318 ) ) ; +#3716 = CARTESIAN_POINT ( 'NONE', ( 0.3046018143835257930, -1.160694499685158698, 5.717705779768117225 ) ) ; +#3717 = CARTESIAN_POINT ( 'NONE', ( -0.2488962534506005408, 0.4931890884477664883, 6.179736733211048438 ) ) ; +#3718 = DIRECTION ( 'NONE', ( -0.5566703992264180334, -0.3213938048432695149, 0.7660444431189790127 ) ) ; +#3719 = CARTESIAN_POINT ( 'NONE', ( -0.5999999999999999778, -1.039230484541330712, 5.473691469039889235 ) ) ; +#3720 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#3721 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3722 = EDGE_CURVE ( 'NONE', #3880, #975, #503, .T. ) ; +#3723 = ORIENTED_EDGE ( 'NONE', *, *, #2830, .T. ) ; +#3724 = CYLINDRICAL_SURFACE ( 'NONE', #2866, 0.2499999999999998612 ) ; +#3725 = VERTEX_POINT ( 'NONE', #846 ) ; +#3726 = VECTOR ( 'NONE', #4428, 39.37007874015748854 ) ; +#3727 = CARTESIAN_POINT ( 'NONE', ( 0.1105155794605277575, 0.6510538740497309185, 6.303401698767373773 ) ) ; +#3728 = CARTESIAN_POINT ( 'NONE', ( 0.6079912770095493579, 0.1189844425327886840, 6.259648211577618859 ) ) ; +#3729 = ORIENTED_EDGE ( 'NONE', *, *, #27, .T. ) ; +#3730 = CARTESIAN_POINT ( 'NONE', ( -0.4515683818664330551, 0.7821393804843267406, 5.167302222155944591 ) ) ; +#3731 = CARTESIAN_POINT ( 'NONE', ( 0.2416476612724857975, -0.3060144142332251738, 5.986163717094036052 ) ) ; +#3732 = VECTOR ( 'NONE', #917, 39.37007874015748854 ) ; +#3733 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3734 = ORIENTED_EDGE ( 'NONE', *, *, #3770, .F. ) ; +#3735 = AXIS2_PLACEMENT_3D ( 'NONE', #1770, #3090, #3445 ) ; +#3736 = CARTESIAN_POINT ( 'NONE', ( 0.7887281695053012243, 0.2532998267649559376, 5.355730255524930428 ) ) ; +#3737 = CARTESIAN_POINT ( 'NONE', ( 0.4867969532980423453, -0.4350672307155650231, 6.296557675060063808 ) ) ; +#3738 = ORIENTED_EDGE ( 'NONE', *, *, #2055, .T. ) ; +#3739 = EDGE_CURVE ( 'NONE', #4154, #4525, #1201, .T. ) ; +#3740 = CARTESIAN_POINT ( 'NONE', ( 0.6773525727996496659, -0.3910696902421649801, 5.167302222155944591 ) ) ; +#3741 = DIRECTION ( 'NONE', ( 6.123233995736769734E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +#3742 = CARTESIAN_POINT ( 'NONE', ( 0.5664780203617503229, 0.03838110295104814329, 6.129000000000000448 ) ) ; +#3743 = CARTESIAN_POINT ( 'NONE', ( 0.6147066099902934733, 0.2592831705733027459, 6.309261594103809934 ) ) ; +#3744 = CARTESIAN_POINT ( 'NONE', ( 0.4515683818664330551, -0.7821393804843288500, 5.167302222155944591 ) ) ; +#3745 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #4300, #654, #1465, #3499 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 5.759586531581287971, 6.806784082777885381 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9106836025229592124, 0.9106836025229592124, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#3746 = CARTESIAN_POINT ( 'NONE', ( -0.2270575473292400503, 0.5507688678427332674, 6.231305296303781383 ) ) ; +#3747 = AXIS2_PLACEMENT_3D ( 'NONE', #190, #2410, #2754 ) ; +#3748 = CARTESIAN_POINT ( 'NONE', ( 0.2193693343759655912, 0.3996900536714499963, 6.064788160726542365 ) ) ; +#3749 = CARTESIAN_POINT ( 'NONE', ( -1.141966118079164261, -0.3687931143806383871, 5.770727711701403528 ) ) ; +#3750 = CIRCLE ( 'NONE', #1438, 0.1329999999999999238 ) ; +#3751 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3752 = VECTOR ( 'NONE', #4847, 39.37007874015748143 ) ; +#3753 = CARTESIAN_POINT ( 'NONE', ( 0.2270564468203715991, 0.5507706413844088988, 6.231306833149655056 ) ) ; +#3754 = ORIENTED_EDGE ( 'NONE', *, *, #3922, .F. ) ; +#3755 = DIRECTION ( 'NONE', ( -6.250248031976811775E-16, -0.7660444431189782355, 0.6427876096865391409 ) ) ; +#3756 = VERTEX_POINT ( 'NONE', #32 ) ; +#3757 = EDGE_CURVE ( 'NONE', #1298, #4154, #2552, .T. ) ; +#3758 = DIRECTION ( 'NONE', ( -0.4999999999999997224, -0.8660254037844388186, 0.000000000000000000 ) ) ; +#3759 = CARTESIAN_POINT ( 'NONE', ( 0.5842608912583352465, 0.06856923306392054274, 6.222544503062202637 ) ) ; +#3760 = ORIENTED_EDGE ( 'NONE', *, *, #1117, .F. ) ; +#3761 = CARTESIAN_POINT ( 'NONE', ( 0.08637540179566292886, -0.3802383382302493287, 5.931430154262627319 ) ) ; +#3762 = CARTESIAN_POINT ( 'NONE', ( 0.6015694151786392663, 0.1308099128435215586, 6.064721239031350741 ) ) ; +#3763 = FACE_OUTER_BOUND ( 'NONE', #927, .T. ) ; +#3764 = ORIENTED_EDGE ( 'NONE', *, *, #2794, .T. ) ; +#3765 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, 0.8125000000000000000, 3.479000000000000092 ) ) ; +#3766 = ORIENTED_EDGE ( 'NONE', *, *, #3698, .F. ) ; +#3767 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.327604692846759648E-15, 6.229000000000000981 ) ) ; +#3768 = FACE_OUTER_BOUND ( 'NONE', #5153, .T. ) ; +#3769 = DIRECTION ( 'NONE', ( -0.4999999999999998890, -0.8660254037844387076, -1.788933584601079358E-16 ) ) ; +#3770 = EDGE_CURVE ( 'NONE', #2887, #775, #2697, .T. ) ; +#3771 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3772 = CARTESIAN_POINT ( 'NONE', ( 0.3422028629988436710, -1.150171487907918122, 5.661691036252454623 ) ) ; +#3773 = CARTESIAN_POINT ( 'NONE', ( -0.2317785454501569142, 0.5421543247495637097, 6.224142810813360960 ) ) ; +#3774 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.8590516373556170704, -0.5118889375212491988 ) ) ; +#3775 = CARTESIAN_POINT ( 'NONE', ( -0.8908162198988994751, -0.8040221990854020673, 5.770936376843164517 ) ) ; +#3776 = PLANE ( 'NONE', #4209 ) ; +#3777 = CARTESIAN_POINT ( 'NONE', ( -0.5515624061974868653, 0.03104406583473402412, 6.179736733220627443 ) ) ; +#3778 = EDGE_LOOP ( 'NONE', ( #3510, #4560, #4431, #3947, #4333, #1265, #2980 ) ) ; +#3779 = CIRCLE ( 'NONE', #3516, 2.250000000000000000 ) ; +#3780 = CARTESIAN_POINT ( 'NONE', ( 0.1888147729163989486, -0.3783406711898845143, 6.025386023352561793 ) ) ; +#3781 = EDGE_LOOP ( 'NONE', ( #2591, #289, #3030, #3457, #302, #2644 ) ) ; +#3782 = CARTESIAN_POINT ( 'NONE', ( -0.9406202507489094256, -0.7451399491914646456, 5.805572500925889834 ) ) ; +#3783 = CARTESIAN_POINT ( 'NONE', ( 0.5765341367510244952, 0.05754766291311688708, 6.211947588461346648 ) ) ; +#3784 = ORIENTED_EDGE ( 'NONE', *, *, #1206, .T. ) ; +#3785 = CARTESIAN_POINT ( 'NONE', ( 0.9736823578055235906, 0.3600831771678382198, 5.610249138468685004 ) ) ; +#3786 = ADVANCED_FACE ( 'NONE', ( #1595 ), #4079, .F. ) ; +#3787 = CARTESIAN_POINT ( 'NONE', ( 0.6942786809891653421, 0.6895171179565235953, 5.518181750081197379 ) ) ; +#3788 = CARTESIAN_POINT ( 'NONE', ( -0.6147066099901011826, -0.2592831705749472082, 6.309261594104191850 ) ) ; +#3789 = EDGE_LOOP ( 'NONE', ( #109, #4536, #3982, #870 ) ) ; +#3790 = LINE ( 'NONE', #3736, #499 ) ; +#3791 = CARTESIAN_POINT ( 'NONE', ( 0.5010724687556686874, -0.4263448826661070945, 6.301207040980768781 ) ) ; +#3792 = ORIENTED_EDGE ( 'NONE', *, *, #1828, .F. ) ; +#3793 = CARTESIAN_POINT ( 'NONE', ( -0.2499999999999994726, 0.5863793521062106162, 6.064721239031350741 ) ) ; +#3794 = CARTESIAN_POINT ( 'NONE', ( -0.7996834935816140577, -0.8947101821780649722, 5.593666288758528005 ) ) ; +#3795 = EDGE_CURVE ( 'NONE', #3120, #3957, #218, .T. ) ; +#3796 = CARTESIAN_POINT ( 'NONE', ( -5.783046526498795293E-17, -1.337116258361070674E-15, 6.271836282905964843 ) ) ; +#3797 = CARTESIAN_POINT ( 'NONE', ( -1.163560357214541652, -0.2934671171102182230, 5.685712360058584380 ) ) ; +#3798 = CARTESIAN_POINT ( 'NONE', ( -0.2137190145156302734, -0.3946108192894292599, 6.056259134400396427 ) ) ; +#3799 = AXIS2_PLACEMENT_3D ( 'NONE', #3946, #1196, #362 ) ; +#3800 = ORIENTED_EDGE ( 'NONE', *, *, #988, .F. ) ; +#3801 = FACE_OUTER_BOUND ( 'NONE', #3778, .T. ) ; +#3802 = CARTESIAN_POINT ( 'NONE', ( 0.7986823578055256556, 0.6631920684923917619, 5.610249138468685004 ) ) ; +#3803 = EDGE_CURVE ( 'NONE', #3148, #2386, #3391, .T. ) ; +#3804 = ORIENTED_EDGE ( 'NONE', *, *, #4487, .T. ) ; +#3805 = LINE ( 'NONE', #943, #3299 ) ; +#3806 = VERTEX_POINT ( 'NONE', #4929 ) ; +#3807 = CARTESIAN_POINT ( 'NONE', ( 0.01752228419401301307, 0.6756856571182424664, 6.316136173767019635 ) ) ; +#3808 = CARTESIAN_POINT ( 'NONE', ( 0.5844128294717348959, 0.06880339645701291640, 6.222757007984919042 ) ) ; +#3809 = VERTEX_POINT ( 'NONE', #3598 ) ; +#3810 = CARTESIAN_POINT ( 'NONE', ( -0.1874999999999996114, 0.5097749077943191098, 6.129000000000000448 ) ) ; +#3811 = CARTESIAN_POINT ( 'NONE', ( -0.5852562238038886422, 0.07011158405305577268, 6.223931354182020037 ) ) ; +#3812 = ORIENTED_EDGE ( 'NONE', *, *, #3493, .F. ) ; +#3813 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4196, #4899, #316, #1476, #4752, #4362, #2303, #5181, #3174, #1786, #4803, #1099, #1957, #693, #1930, #635, #1501, #1145, #3124, #2273, #3583, #3980, #1552, #140, #2769, #3953, #3814, #239, #2673 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 4 ), + ( 0.000000000000000000, 0.1402142008311715871, 0.2103213012467573806, 0.2453748514545502912, 0.2497565452305232359, 0.2519473921185095278, 0.2541382390064957919, 0.2629016265584298018, 0.2804284016622923814, 0.4206426024931816943, 0.4907497029086264617, 0.5258032531163461254, 0.5433300282202059295, 0.5520934157721387736, 0.5564751095481079712, 0.5586659564360896280, 0.5608568033240713957 ), + .UNSPECIFIED. ) ; +#3814 = CARTESIAN_POINT ( 'NONE', ( -0.2846492164297881322, 0.4530167513014621838, 6.159017837711099119 ) ) ; +#3815 = CARTESIAN_POINT ( 'NONE', ( 0.2397764363809881949, 1.175801342795197879, 5.778743187815039484 ) ) ; +#3816 = ORIENTED_EDGE ( 'NONE', *, *, #861, .F. ) ; +#3817 = CARTESIAN_POINT ( 'NONE', ( 1.017612079093787258, 0.3710122568151794642, 5.661614435832778014 ) ) ; +#3818 = CIRCLE ( 'NONE', #2275, 0.1875000000000000278 ) ; +#3819 = CARTESIAN_POINT ( 'NONE', ( 0.06010930014181826986, -0.6686545590865199395, 6.312672587575815619 ) ) ; +#3820 = AXIS2_PLACEMENT_3D ( 'NONE', #1169, #3771, #3339 ) ; +#3821 = EDGE_CURVE ( 'NONE', #1148, #1044, #1095, .T. ) ; +#3822 = CARTESIAN_POINT ( 'NONE', ( -1.200000000000002398, 0.08245558274271827526, 5.522824837521429941 ) ) ; +#3823 = CARTESIAN_POINT ( 'NONE', ( -1.164929484079106237, -0.2879768200564825076, 5.677078363337594524 ) ) ; +#3824 = CARTESIAN_POINT ( 'NONE', ( -0.2499916534330859086, -0.4719379028046405411, 6.157868532996118027 ) ) ; +#3825 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #3109, #4739, #2236, #4717, #1868, #252, #3869, #5142, #2610, #983, #1488, #3468, #3940, #5091, #5119, #4298, #1436, #1461, #4245, #3086, #4693, #1059, #4350, #1033, #197 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4 ), + ( 0.5608568033240713957, 0.6706426024921662288, 0.7255355020762113138, 0.7529819518682359103, 0.7667051767642462101, 0.7735667892122513045, 0.7769975954362516868, 0.7787129985482519334, 0.7795707001042500028, 0.7799995508822509249, 0.7804284016602518470, 0.8353213012451887742, 0.8902142008301259235, 0.9451071004150629618, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#3826 = DIRECTION ( 'NONE', ( 1.000000000000000000, -7.284927983104700930E-16, 0.000000000000000000 ) ) ; +#3827 = ORIENTED_EDGE ( 'NONE', *, *, #973, .T. ) ; +#3828 = AXIS2_PLACEMENT_3D ( 'NONE', #4395, #1640, #375 ) ; +#3829 = LINE ( 'NONE', #1800, #2699 ) ; +#3830 = ORIENTED_EDGE ( 'NONE', *, *, #3985, .T. ) ; +#3831 = CARTESIAN_POINT ( 'NONE', ( 0.8898490325666070788, -1.005500461357157865E-15, 5.130805054534240739 ) ) ; +#3832 = ORIENTED_EDGE ( 'NONE', *, *, #3287, .F. ) ; +#3833 = VECTOR ( 'NONE', #2759, 39.37007874015748143 ) ; +#3834 = EDGE_CURVE ( 'NONE', #261, #1995, #147, .T. ) ; +#3835 = DIRECTION ( 'NONE', ( 0.6634139481689380613, -0.3830222215594901169, 0.6427876096865391409 ) ) ; +#3836 = ORIENTED_EDGE ( 'NONE', *, *, #721, .T. ) ; +#3837 = CARTESIAN_POINT ( 'NONE', ( -0.2971900007482114470, 0.2524400055097860696, 5.921530663862509591 ) ) ; +#3838 = CARTESIAN_POINT ( 'NONE', ( -0.4702702679448488854, -0.4439547060972636183, 6.290540039404564077 ) ) ; +#3839 = ORIENTED_EDGE ( 'NONE', *, *, #4384, .T. ) ; +#3840 = CARTESIAN_POINT ( 'NONE', ( 0.07002445731144434082, 0.3835940931564268408, 5.921530663853324938 ) ) ; +#3841 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 1.758000000000000007, 3.479000000000000092 ) ) ; +#3842 = ORIENTED_EDGE ( 'NONE', *, *, #4504, .T. ) ; +#3843 = CARTESIAN_POINT ( 'NONE', ( -0.4916041193095170847, 0.006035983438297809478, 6.107280644764683686 ) ) ; +#3844 = CARTESIAN_POINT ( 'NONE', ( 0.1169633466581505715, -0.6479731915359374650, 6.301691424386019591 ) ) ; +#3845 = DIRECTION ( 'NONE', ( -3.571570303986756206E-16, -0.7660444431189782355, -0.6427876096865391409 ) ) ; +#3846 = DIRECTION ( 'NONE', ( 0.6634139481689388385, 0.3830222215594888957, -0.6427876096865389188 ) ) ; +#3847 = LINE ( 'NONE', #3420, #4013 ) ; +#3848 = CARTESIAN_POINT ( 'NONE', ( -0.2498668801369489934, -0.4674255048956060810, 6.153038823646399536 ) ) ; +#3849 = EDGE_CURVE ( 'NONE', #4033, #3060, #5076, .T. ) ; +#3850 = CARTESIAN_POINT ( 'NONE', ( 0.9000308847521367728, -0.7936923138950889856, 5.780336627631155189 ) ) ; +#3851 = EDGE_LOOP ( 'NONE', ( #4806, #116, #478, #2623 ) ) ; +#3852 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #1180, #4392, #4341, #3155 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 0.3178237039278815068, 0.5235987755983009251 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9964744966727188125, 0.9964744966727188125, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#3853 = CARTESIAN_POINT ( 'NONE', ( 1.199999999999999956, -1.147340386210322419E-15, 6.079000000000000625 ) ) ; +#3854 = CARTESIAN_POINT ( 'NONE', ( 1.250000000000000000, -7.724931805341829553E-16, 3.479000000000000092 ) ) ; +#3855 = ORIENTED_EDGE ( 'NONE', *, *, #3311, .T. ) ; +#3856 = CARTESIAN_POINT ( 'NONE', ( 0.8528900155710265052, 0.8441401591354238398, 5.717705779772430219 ) ) ; +#3857 = EDGE_CURVE ( 'NONE', #2179, #2696, #1567, .T. ) ; +#3858 = CARTESIAN_POINT ( 'NONE', ( 1.115620250748909470, 0.4420310578669094381, 5.805572500925889834 ) ) ; +#3859 = ORIENTED_EDGE ( 'NONE', *, *, #3867, .T. ) ; +#3860 = DIRECTION ( 'NONE', ( 0.6197348675208463886, 0.7848112473575534764, 0.000000000000000000 ) ) ; +#3861 = LINE ( 'NONE', #4979, #2956 ) ; +#3862 = ORIENTED_EDGE ( 'NONE', *, *, #513, .T. ) ; +#3863 = CARTESIAN_POINT ( 'NONE', ( 0.2355435453642003019, -0.3857250551359825419, 6.060059581942062401 ) ) ; +#3864 = FACE_OUTER_BOUND ( 'NONE', #2859, .T. ) ; +#3865 = ORIENTED_EDGE ( 'NONE', *, *, #4889, .T. ) ; +#3866 = DIRECTION ( 'NONE', ( -0.5566703992264190326, -0.3213938048432700145, 0.7660444431189781245 ) ) ; +#3867 = EDGE_CURVE ( 'NONE', #3610, #1342, #2871, .T. ) ; +#3868 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3869 = CARTESIAN_POINT ( 'NONE', ( -0.3381046034927500665, 0.4705193509765789317, 6.211947421632075361 ) ) ; +#3870 = CARTESIAN_POINT ( 'NONE', ( 0.3457375383353646914, -0.4713173251575972778, 6.218077904446640325 ) ) ; +#3871 = CARTESIAN_POINT ( 'NONE', ( -0.2165896544569092252, -0.3971304653845192378, 6.060531982410119589 ) ) ; +#3872 = CARTESIAN_POINT ( 'NONE', ( 0.8740517291274695344, -0.8222196555960222808, 5.750389552706352880 ) ) ; +#3873 = ORIENTED_EDGE ( 'NONE', *, *, #5030, .F. ) ; +#3874 = FILL_AREA_STYLE ('',( #2243 ) ) ; +#3875 = CARTESIAN_POINT ( 'NONE', ( -0.3805951229840598415, -0.6592100901213189257, 5.020800798730772563 ) ) ; +#3876 = ORIENTED_EDGE ( 'NONE', *, *, #1382, .T. ) ; +#3877 = DIRECTION ( 'NONE', ( -0.6958540455341970521, 3.948100292417400886E-16, -0.7181832268395659247 ) ) ; +#3878 = EDGE_CURVE ( 'NONE', #3237, #2501, #428, .T. ) ; +#3879 = FACE_BOUND ( 'NONE', #1319, .T. ) ; +#3880 = VERTEX_POINT ( 'NONE', #5035 ) ; +#3881 = CARTESIAN_POINT ( 'NONE', ( -0.2932565577326032846, 0.2569790648882935846, 5.924878623419214563 ) ) ; +#3882 = CARTESIAN_POINT ( 'NONE', ( -0.6201422323241829737, -0.2082174800142368998, 6.297766623893407356 ) ) ; +#3883 = VERTEX_POINT ( 'NONE', #3841 ) ; +#3884 = CARTESIAN_POINT ( 'NONE', ( 0.08163023182854767246, 0.3812786851683398481, 5.928356580365088391 ) ) ; +#3885 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 0.000000000000000000 ) ) ; +#3886 = AXIS2_PLACEMENT_3D ( 'NONE', #1545, #1137, #2422 ) ; +#3887 = CARTESIAN_POINT ( 'NONE', ( -0.4538787052036161174, 0.01027673665983211762, 6.062477588650854621 ) ) ; +#3888 = CARTESIAN_POINT ( 'NONE', ( -0.8274639263498337893, 0.8690798422980900995, 5.667384321148687398 ) ) ; +#3889 = VERTEX_POINT ( 'NONE', #3004 ) ; +#3890 = VECTOR ( 'NONE', #4532, 39.37007874015748143 ) ; +#3891 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, -0.8125000000000000000, 3.104000000000000092 ) ) ; +#3892 = CARTESIAN_POINT ( 'NONE', ( -0.3169773339961192149, 1.157374444941560609, 5.701330577506015018 ) ) ; +#3893 = EDGE_CURVE ( 'NONE', #864, #5293, #2500, .T. ) ; +#3894 = CARTESIAN_POINT ( 'NONE', ( -1.168790200520769318, 0.2718931576374646331, 5.649528895308484344 ) ) ; +#3895 = CARTESIAN_POINT ( 'NONE', ( -0.2193693343763318537, -0.3996900536717653551, 6.064788160727141886 ) ) ; +#3896 = CARTESIAN_POINT ( 'NONE', ( -0.1631258597857234982, 0.6195445600565130384, 6.284267777499555230 ) ) ; +#3897 = CONICAL_SURFACE ( 'NONE', #5255, 0.5097749077943197760, 0.6981317007977323463 ) ; +#3898 = AXIS2_PLACEMENT_3D ( 'NONE', #3046, #1372, #2270 ) ; +#3899 = EDGE_LOOP ( 'NONE', ( #241, #3679 ) ) ; +#3900 = CARTESIAN_POINT ( 'NONE', ( 0.6110546648435039030, -0.1292026384777798242, 6.265683030098737838 ) ) ; +#3901 = CARTESIAN_POINT ( 'NONE', ( 0.6495190528383287809, -0.3750000000000000555, 5.128999999999999559 ) ) ; +#3902 = ORIENTED_EDGE ( 'NONE', *, *, #2903, .T. ) ; +#3903 = CARTESIAN_POINT ( 'NONE', ( 0.6135904484930136960, 0.1412060984789950679, 6.271836282905964843 ) ) ; +#3904 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3905 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, -1.813560433165304925E-15 ) ) ; +#3906 = ORIENTED_EDGE ( 'NONE', *, *, #534, .T. ) ; +#3907 = CARTESIAN_POINT ( 'NONE', ( 0.3714087670033828781, -0.1187146957853887352, 5.929159544729000864 ) ) ; +#3908 = AXIS2_PLACEMENT_3D ( 'NONE', #2281, #2730, #5191 ) ; +#3909 = EDGE_CURVE ( 'NONE', #3586, #1806, #65, .T. ) ; +#3910 = ORIENTED_EDGE ( 'NONE', *, *, #4487, .F. ) ; +#3911 = CARTESIAN_POINT ( 'NONE', ( 0.1027211335903034511, 0.3767721271706848118, 5.941670513687076216 ) ) ; +#3912 = AXIS2_PLACEMENT_3D ( 'NONE', #1258, #3664, #416 ) ; +#3913 = CARTESIAN_POINT ( 'NONE', ( 0.2961184259396976159, 1.162887893440758269, 5.727943781060037765 ) ) ; +#3914 = CARTESIAN_POINT ( 'NONE', ( 1.156602477596104128, -0.3197858658830409762, 5.721697987464453128 ) ) ; +#3915 = DIRECTION ( 'NONE', ( 0.6634139481689382833, -0.3830222215594891177, -0.6427876096865394739 ) ) ; +#3916 = ORIENTED_EDGE ( 'NONE', *, *, #4116, .T. ) ; +#3917 = DIRECTION ( 'NONE', ( -1.000000000000000000, 3.642463991552350465E-16, 0.000000000000000000 ) ) ; +#3918 = CARTESIAN_POINT ( 'NONE', ( -0.3004691183139391319, 1.161765598786469234, 5.722767956778400666 ) ) ; +#3919 = VECTOR ( 'NONE', #2333, 39.37007874015748854 ) ; +#3920 = CARTESIAN_POINT ( 'NONE', ( -1.169767679213737477, 0.2676609621908117576, 5.641659190544926261 ) ) ; +#3921 = CARTESIAN_POINT ( 'NONE', ( 0.4414780203617504339, 0.2548874538971578341, 6.129000000000000448 ) ) ; +#3922 = EDGE_CURVE ( 'NONE', #5207, #3437, #4087, .T. ) ; +#3923 = CARTESIAN_POINT ( 'NONE', ( -0.5999999999999999778, -1.039230484541330712, 5.473691469039889235 ) ) ; +#3924 = CARTESIAN_POINT ( 'NONE', ( -0.2448110671228807822, -0.5100778971818183960, 6.195676070644609901 ) ) ; +#3925 = CARTESIAN_POINT ( 'NONE', ( 1.040726955420391953, 0.3891613873615861752, 5.696772153281595585 ) ) ; +#3926 = DIRECTION ( 'NONE', ( -6.802134699437021817E-16, -0.7660444431189772363, -0.6427876096865402511 ) ) ; +#3927 = ORIENTED_EDGE ( 'NONE', *, *, #5272, .F. ) ; +#3928 = CARTESIAN_POINT ( 'NONE', ( 0.8939439981593094720, 0.8005421271647947812, 5.774258526520538837 ) ) ; +#3929 = EDGE_CURVE ( 'NONE', #864, #1788, #4731, .T. ) ; +#3930 = ORIENTED_EDGE ( 'NONE', *, *, #3893, .T. ) ; +#3931 = LINE ( 'NONE', #5034, #7 ) ; +#3932 = CARTESIAN_POINT ( 'NONE', ( -0.2499676822388576802, -0.4734477930975866666, 6.159485386716847977 ) ) ; +#3933 = EDGE_LOOP ( 'NONE', ( #3654, #3454, #2119, #3325, #1208, #3465, #1646, #1798, #4782 ) ) ; +#3934 = DIRECTION ( 'NONE', ( -0.5000000000000000000, 0.8660254037844385966, 0.000000000000000000 ) ) ; +#3935 = CARTESIAN_POINT ( 'NONE', ( 0.2364570729313768827, -0.3898244432163889273, 6.064788160726364730 ) ) ; +#3936 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000000555, 1.139901311517799387, 5.593666288758528005 ) ) ; +#3937 = VECTOR ( 'NONE', #2459, 39.37007874015748143 ) ; +#3938 = CARTESIAN_POINT ( 'NONE', ( 0.8176574784459607059, -0.4720747652856882026, 5.438164591901928802 ) ) ; +#3939 = ORIENTED_EDGE ( 'NONE', *, *, #683, .F. ) ; +#3940 = CARTESIAN_POINT ( 'NONE', ( -0.3515129553803754692, 0.4717001477797865827, 6.222544359609668341 ) ) ; +#3941 = CARTESIAN_POINT ( 'NONE', ( -0.3424528777478046404, 1.150098210706367086, 5.661253493221089172 ) ) ; +#3942 = ADVANCED_FACE ( 'NONE', ( #4955 ), #1707, .F. ) ; +#3943 = CARTESIAN_POINT ( 'NONE', ( 0.4227963625217271426, -0.02517589006753177816, 6.026227888688770129 ) ) ; +#3944 = CARTESIAN_POINT ( 'NONE', ( 0.2332902190304184387, 0.3518729128296930186, 6.024604706213829708 ) ) ; +#3945 = EDGE_CURVE ( 'NONE', #1561, #4652, #2979, .T. ) ; +#3946 = CARTESIAN_POINT ( 'NONE', ( 0.9236543808441181058, -0.5332721054185314280, 5.661815083166008122 ) ) ; +#3947 = ORIENTED_EDGE ( 'NONE', *, *, #2739, .T. ) ; +#3948 = CARTESIAN_POINT ( 'NONE', ( 0.4439043401837303726, 0.4556383459255813895, 6.279327844346155096 ) ) ; +#3949 = CARTESIAN_POINT ( 'NONE', ( -0.3858400872864291564, -0.05626580631045993014, 5.986163717094036052 ) ) ; +#3950 = CARTESIAN_POINT ( 'NONE', ( 0.4449245162833033729, -0.7706318677356902569, 5.130805054534240739 ) ) ; +#3951 = VERTEX_POINT ( 'NONE', #1736 ) ; +#3952 = FACE_OUTER_BOUND ( 'NONE', #2843, .T. ) ; +#3953 = CARTESIAN_POINT ( 'NONE', ( -0.2842746611827488556, 0.4527977475284246656, 6.158558140299608574 ) ) ; +#3954 = CARTESIAN_POINT ( 'NONE', ( 1.145045532176614200, 0.3590911279138676582, 5.762818239999975667 ) ) ; +#3955 = EDGE_CURVE ( 'NONE', #4452, #3506, #176, .T. ) ; +#3956 = ORIENTED_EDGE ( 'NONE', *, *, #1778, .F. ) ; +#3957 = VERTEX_POINT ( 'NONE', #5138 ) ; +#3958 = CARTESIAN_POINT ( 'NONE', ( 0.2911446728005152584, -0.2593646644222638575, 5.926754952973935175 ) ) ; +#3959 = AXIS2_PLACEMENT_3D ( 'NONE', #3464, #1031, #576 ) ; +#3960 = DIRECTION ( 'NONE', ( -0.6634139481689382833, 0.3830222215594896729, 0.6427876096865393629 ) ) ; +#3961 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3962 = CARTESIAN_POINT ( 'NONE', ( -0.4717041676995720745, -0.005889648819830492488, 6.083659388690149328 ) ) ; +#3963 = DIRECTION ( 'NONE', ( 0.6634139481689371731, -0.3830222215594895618, -0.6427876096865402511 ) ) ; +#3964 = ORIENTED_EDGE ( 'NONE', *, *, #3306, .T. ) ; +#3965 = CARTESIAN_POINT ( 'NONE', ( -0.9442786809891654531, 0.2565044160643059068, 5.518181750081197379 ) ) ; +#3966 = CARTESIAN_POINT ( 'NONE', ( 0.3503458561750233402, -0.4716355139731508994, 6.221651625992674184 ) ) ; +#3967 = CARTESIAN_POINT ( 'NONE', ( 0.4179235492987230516, -0.02836726908674915004, 6.020663318491751959 ) ) ; +#3968 = DIRECTION ( 'NONE', ( 0.6634139481689381723, 0.3830222215594881741, -0.6427876096865402511 ) ) ; +#3969 = CARTESIAN_POINT ( 'NONE', ( 0.8284815728551712111, -0.6948059848656760185, 5.659344430190981434 ) ) ; +#3970 = ADVANCED_FACE ( 'NONE', ( #1055 ), #299, .F. ) ; +#3971 = CARTESIAN_POINT ( 'NONE', ( -0.2326717791905255073, -0.5404184114449387399, 6.222671864549456089 ) ) ; +#3972 = CARTESIAN_POINT ( 'NONE', ( 0.5767116935009902745, -0.05690533216548562812, 6.211979336398128382 ) ) ; +#3973 = CARTESIAN_POINT ( 'NONE', ( -0.3707991795801386381, -0.1206003877880777592, 5.927934137911411661 ) ) ; +#3974 = LINE ( 'NONE', #1549, #4430 ) ; +#3975 = VECTOR ( 'NONE', #500, 39.37007874015748143 ) ; +#3976 = VERTEX_POINT ( 'NONE', #1457 ) ; +#3977 = STYLED_ITEM ( 'NONE', ( #4037 ), #2822 ) ; +#3978 = CARTESIAN_POINT ( 'NONE', ( 0.1665128148425426280, 0.3677957406123582018, 6.002107703382945303 ) ) ; +#3979 = AXIS2_PLACEMENT_3D ( 'NONE', #4133, #402, #2521 ) ; +#3980 = CARTESIAN_POINT ( 'NONE', ( -0.2777591748894598367, 0.4486897630675378279, 6.150277400604930556 ) ) ; +#3981 = CARTESIAN_POINT ( 'NONE', ( 1.162670588411015338, 0.2969721150805145204, 5.690972158473918796 ) ) ; +#3982 = ORIENTED_EDGE ( 'NONE', *, *, #3505, .T. ) ; +#3983 = EDGE_LOOP ( 'NONE', ( #4184, #2758, #2633, #1139 ) ) ; +#3984 = CARTESIAN_POINT ( 'NONE', ( 0.2234500486462255020, -0.4038561702948944565, 6.071486235015473909 ) ) ; +#3985 = EDGE_CURVE ( 'NONE', #2949, #4033, #1428, .T. ) ; +#3986 = CARTESIAN_POINT ( 'NONE', ( -0.7382052857004974822, -0.9496588225722405463, 5.562957933457564508 ) ) ; +#3987 = AXIS2_PLACEMENT_3D ( 'NONE', #1236, #3673, #3265 ) ; +#3988 = DIRECTION ( 'NONE', ( -0.4999999999999998335, -0.8660254037844385966, -1.024963537107219596E-15 ) ) ; +#3989 = CARTESIAN_POINT ( 'NONE', ( -0.2969747929134328168, -1.162669148667692998, 5.726939577285921956 ) ) ; +#3990 = ORIENTED_EDGE ( 'NONE', *, *, #2974, .T. ) ; +#3991 = CARTESIAN_POINT ( 'NONE', ( -0.5231788952848563934, -0.01431925408957949314, 6.145205846053180210 ) ) ; +#3992 = VECTOR ( 'NONE', #1246, 39.37007874015748143 ) ; +#3993 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 0.000000000000000000 ) ) ; +#3994 = VECTOR ( 'NONE', #4849, 39.37007874015748143 ) ; +#3995 = ORIENTED_EDGE ( 'NONE', *, *, #4454, .F. ) ; +#3996 = CIRCLE ( 'NONE', #1702, 0.6296287800994468942 ) ; +#3997 = CARTESIAN_POINT ( 'NONE', ( -0.6180809702031347941, 0.2381294013477847638, 6.305186707020996373 ) ) ; +#3998 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#3999 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#4000 = DIRECTION ( 'NONE', ( -0.5000000000000002220, -0.8660254037844384856, 0.000000000000000000 ) ) ; +#4001 = CARTESIAN_POINT ( 'NONE', ( -0.9376584395713641884, 1.624072057483360476, 4.395566458943346078 ) ) ; +#4002 = CARTESIAN_POINT ( 'NONE', ( 0.5848270673493216609, -0.06944430371739306052, 6.223335101062819064 ) ) ; +#4003 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#4004 = CARTESIAN_POINT ( 'NONE', ( -1.017612079093999533, -0.3710122568153053635, 5.661614435833072889 ) ) ; +#4005 = ADVANCED_FACE ( 'NONE', ( #3056 ), #217, .F. ) ; +#4006 = ADVANCED_FACE ( 'NONE', ( #4369 ), #1789, .T. ) ; +#4007 = CARTESIAN_POINT ( 'NONE', ( -0.5999999999999999778, 1.039230484541330712, 5.473691469039889235 ) ) ; +#4008 = CARTESIAN_POINT ( 'NONE', ( 1.250000000000000000, -6.892264536872972008E-16, 3.104000000000000092 ) ) ; +#4009 = DIRECTION ( 'NONE', ( -0.6634139481689388385, -0.3830222215594888957, 0.6427876096865389188 ) ) ; +#4010 = ORIENTED_EDGE ( 'NONE', *, *, #4757, .T. ) ; +#4011 = ORIENTED_EDGE ( 'NONE', *, *, #2475, .F. ) ; +#4012 = CARTESIAN_POINT ( 'NONE', ( -0.2849920402363720906, -0.4532153657421842952, 6.159507043090530765 ) ) ; +#4013 = VECTOR ( 'NONE', #602, 39.37007874015748854 ) ; +#4014 = EDGE_CURVE ( 'NONE', #2834, #2366, #735, .T. ) ; +#4015 = CARTESIAN_POINT ( 'NONE', ( -1.144886323092076053, -0.3596083617216501715, 5.763258631753726213 ) ) ; +#4016 = EDGE_LOOP ( 'NONE', ( #2831, #3430, #4588, #2431, #4208, #1909 ) ) ; +#4017 = CARTESIAN_POINT ( 'NONE', ( -0.1441924260139419434, 0.3622802205436811418, 5.986163717094036052 ) ) ; +#4018 = CARTESIAN_POINT ( 'NONE', ( -0.3418089950100017260, -1.150288514806205864, 5.662380614064884021 ) ) ; +#4019 = EDGE_LOOP ( 'NONE', ( #2073, #629, #5289, #4049 ) ) ; +#4020 = EDGE_CURVE ( 'NONE', #251, #2696, #558, .T. ) ; +#4021 = DIRECTION ( 'NONE', ( -0.5566703992264194767, 0.3213938048432700700, -0.7660444431189779024 ) ) ; +#4022 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, 0.8097085448544666386, 5.355730255524930428 ) ) ; +#4023 = AXIS2_PLACEMENT_3D ( 'NONE', #3369, #1720, #2963 ) ; +#4024 = VERTEX_POINT ( 'NONE', #3490 ) ; +#4025 = CARTESIAN_POINT ( 'NONE', ( 0.1874974012643398080, -1.081702521926135141, 5.679393789334366893 ) ) ; +#4026 = CARTESIAN_POINT ( 'NONE', ( 0.6135904484930136960, -0.1412060984789980378, 6.271836282905964843 ) ) ; +#4027 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1313, #103, #2542, #1662 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 0.5000032659731813434 ), + .UNSPECIFIED. ) ; +#4028 = EDGE_CURVE ( 'NONE', #5186, #1725, #3051, .T. ) ; +#4029 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.8590516373556182916, 0.5118889375212473114 ) ) ; +#4030 = CARTESIAN_POINT ( 'NONE', ( 0.2358392676158534706, 0.3879321206067048999, 6.062477588642025239 ) ) ; +#4031 = AXIS2_PLACEMENT_3D ( 'NONE', #447, #1202, #3259 ) ; +#4032 = CARTESIAN_POINT ( 'NONE', ( 0.8300627119612007387, -0.6957432813916677450, 5.661545237352147986 ) ) ; +#4033 = VERTEX_POINT ( 'NONE', #1028 ) ; +#4034 = CARTESIAN_POINT ( 'NONE', ( 0.6201422323245461277, 0.2082174800101864176, 6.297766623892522730 ) ) ; +#4035 = SHAPE_DEFINITION_REPRESENTATION ( #11, #2255 ) ; +#4036 = CARTESIAN_POINT ( 'NONE', ( -0.2371476488202122201, -0.3215847954173395307, 5.997403140051182469 ) ) ; +#4037 = PRESENTATION_STYLE_ASSIGNMENT (( #2746 ) ) ; +#4038 = DIRECTION ( 'NONE', ( -0.4999999999999997780, 0.8660254037844387076, 0.000000000000000000 ) ) ; +#4039 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, 1.187171007058370309, 5.805572500925889834 ) ) ; +#4040 = ORIENTED_EDGE ( 'NONE', *, *, #2607, .F. ) ; +#4041 = CARTESIAN_POINT ( 'NONE', ( 0.3446859479778154323, -0.1823314670562987405, 5.903921191883682695 ) ) ; +#4042 = ORIENTED_EDGE ( 'NONE', *, *, #2559, .T. ) ; +#4043 = ADVANCED_FACE ( 'NONE', ( #3864 ), #1079, .F. ) ; +#4044 = CARTESIAN_POINT ( 'NONE', ( -0.2376732921474538907, 0.4230946234622575686, 6.099710673681518536 ) ) ; +#4045 = CARTESIAN_POINT ( 'NONE', ( 0.1833398300830162142, 1.095876675478171025, 5.696772153281695061 ) ) ; +#4046 = ORIENTED_EDGE ( 'NONE', *, *, #1873, .T. ) ; +#4047 = CARTESIAN_POINT ( 'NONE', ( -0.4842512281201206692, -0.005025349302919349462, 6.098609531599490374 ) ) ; +#4048 = CARTESIAN_POINT ( 'NONE', ( 5.682243826821669072E-16, 0.5863793521062165004, 6.064721239031358735 ) ) ; +#4049 = ORIENTED_EDGE ( 'NONE', *, *, #3945, .F. ) ; +#4050 = CARTESIAN_POINT ( 'NONE', ( 0.1875000000000000278, -1.066783749530909597, 5.661614086336346219 ) ) ; +#4051 = CARTESIAN_POINT ( 'NONE', ( 0.6196111875824128479, -0.1852886456362285994, 6.290540039404695527 ) ) ; +#4052 = EDGE_LOOP ( 'NONE', ( #3754, #1277 ) ) ; +#4053 = CARTESIAN_POINT ( 'NONE', ( 0.4662434012498627434, -0.007441094303539324412, 6.077142145749040658 ) ) ; +#4054 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#4055 = CARTESIAN_POINT ( 'NONE', ( -0.8983856144743604943, 0.7955531565317315312, 5.778743187815320148 ) ) ; +#4056 = CARTESIAN_POINT ( 'NONE', ( -0.1936349950053451729, -0.5937897961221668686, 6.265682740388165861 ) ) ; +#4057 = ADVANCED_FACE ( 'NONE', ( #2836 ), #726, .F. ) ; +#4058 = CARTESIAN_POINT ( 'NONE', ( 0.3520470360329399639, 0.4717276378517644697, 6.222951153440229533 ) ) ; +#4059 = VECTOR ( 'NONE', #2052, 39.37007874015748143 ) ; +#4060 = CARTESIAN_POINT ( 'NONE', ( -0.1875000000000000278, 1.066783749530899605, 5.661614086336346219 ) ) ; +#4061 = CARTESIAN_POINT ( 'NONE', ( 0.2499666308279844540, 0.4704265078876142536, 6.156259057137390300 ) ) ; +#4062 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4522, #3233, #341, #2403, #2853, #2429, #1630, #367, #4831, #1660, #4094, #2485, #4124, #4859, #418, #1229, #3286 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 2, 2, 2, 2, 4 ), + ( 0.4966201209929598237, 0.7483100604964809666, 0.7640406817154516972, 0.7797713029344225388, 0.8112325453723623347, 0.8741550302482414825, 0.9056162726861811674, 0.9370775151241206302, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#4063 = LINE ( 'NONE', #4008, #3937 ) ; +#4064 = CARTESIAN_POINT ( 'NONE', ( 1.152659587413499942, 0.3337072078577767997, 5.737804117386271052 ) ) ; +#4065 = ORIENTED_EDGE ( 'NONE', *, *, #3705, .F. ) ; +#4066 = DIRECTION ( 'NONE', ( 1.000000000000000000, -7.284927983104700930E-16, 0.000000000000000000 ) ) ; +#4067 = AXIS2_PLACEMENT_3D ( 'NONE', #4130, #1292, #425 ) ; +#4068 = VERTEX_POINT ( 'NONE', #2811 ) ; +#4069 = AXIS2_PLACEMENT_3D ( 'NONE', #4548, #661, #4702 ) ; +#4070 = CARTESIAN_POINT ( 'NONE', ( -0.2500000000000405231, 0.4596218850609293805, 6.144968119815865215 ) ) ; +#4071 = LINE ( 'NONE', #2862, #1175 ) ; +#4072 = ORIENTED_EDGE ( 'NONE', *, *, #3625, .T. ) ; +#4073 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 0.000000000000000000 ) ) ; +#4074 = EDGE_CURVE ( 'NONE', #142, #2945, #4071, .T. ) ; +#4075 = DIRECTION ( 'NONE', ( -0.4999999999999998890, 0.8660254037844388186, 0.000000000000000000 ) ) ; +#4076 = FACE_OUTER_BOUND ( 'NONE', #2416, .T. ) ; +#4077 = EDGE_LOOP ( 'NONE', ( #1418, #3956, #1580, #5223, #3842, #2040 ) ) ; +#4078 = CARTESIAN_POINT ( 'NONE', ( -0.6202093190521211774, 0.1978525064326562832, 6.294752585729445293 ) ) ; +#4079 = CYLINDRICAL_SURFACE ( 'NONE', #4827, 0.1329999999999999238 ) ; +#4080 = DIMENSIONAL_EXPONENTS ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000, 0.000000000000000000, 0.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ; +#4081 = EDGE_LOOP ( 'NONE', ( #1434, #3812, #5141, #3927 ) ) ; +#4082 = VECTOR ( 'NONE', #58, 39.37007874015748143 ) ; +#4083 = AXIS2_PLACEMENT_3D ( 'NONE', #53, #1669, #920 ) ; +#4084 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, -0.8125000000000000000, 3.953999999999999737 ) ) ; +#4085 = FACE_BOUND ( 'NONE', #383, .T. ) ; +#4086 = CARTESIAN_POINT ( 'NONE', ( -0.8658265010415010510, 0.8308685090523522110, 5.738551864799261715 ) ) ; +#4087 = CIRCLE ( 'NONE', #4254, 0.1875000000000000278 ) ; +#4088 = CARTESIAN_POINT ( 'NONE', ( -0.8564581524898227105, -0.8405119933619853434, 5.723724100246021074 ) ) ; +#4089 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #842, #28, #4978, #5005, #5295, #2895, #486, #2045, #2947, #1272, #924, #2523, #111, #4106, #1349, #519, #2130, #430, #1757, #1322, #3298, #4583, #4193, #4531, #868, #2154, #4925, #2865, #4614 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 4 ), + ( 0.000000000000000000, 0.1402144409670512404, 0.2103216614505770132, 0.2453752716923399135, 0.2497569729725583887, 0.2519478236126723170, 0.2541386742527862452, 0.2629020768132415697, 0.2804288819341524963, 0.4206433229014112651, 0.4907505433850437582, 0.5258041536268601712, 0.5433309587477712643, 0.5520943613082267554, 0.5564760625884573875, 0.5586669132285698725, 0.5608577638686823574 ), + .UNSPECIFIED. ) ; +#4090 = CARTESIAN_POINT ( 'NONE', ( 0.2849920402363720906, 0.4532153657421811310, 6.159507043090530765 ) ) ; +#4091 = FACE_OUTER_BOUND ( 'NONE', #4016, .T. ) ; +#4092 = EDGE_CURVE ( 'NONE', #2718, #3648, #1967, .T. ) ; +#4093 = CARTESIAN_POINT ( 'NONE', ( -0.3805951229840598415, 0.6592100901213169273, 5.020800798730772563 ) ) ; +#4094 = CARTESIAN_POINT ( 'NONE', ( -0.1507079416677284678, -0.6283321535139413383, 6.289966507019935982 ) ) ; +#4095 = CARTESIAN_POINT ( 'NONE', ( 0.1874974012643075838, -1.051864777811610807, 5.643834550590978161 ) ) ; +#4096 = CARTESIAN_POINT ( 'NONE', ( 0.2396708416319216217, 0.5249993225427116439, 6.209224166985332971 ) ) ; +#4097 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #5252, #4036, #365, #4800, #4359, #5203, #1953, #2768, #4441, #5226, #1982, #4409, #1926, #2824, #2744, #5152, #3554, #770, #1119, #3230, #4383 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.2499999999999160116, 0.2812499999999099054, 0.3124999999999037992, 0.3749999999998915312, 0.4374999999998793188, 0.4687499999998683831, 0.4843749999998583911, 0.4921874999998531175, 0.4999999999998478994, 0.7499999999999238387, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#4098 = ADVANCED_FACE ( 'NONE', ( #1994 ), #2466, .F. ) ; +#4099 = ORIENTED_EDGE ( 'NONE', *, *, #4788, .F. ) ; +#4100 = CARTESIAN_POINT ( 'NONE', ( 1.030530563957938961, -0.3784737483246667922, 5.679393789334461040 ) ) ; +#4101 = ORIENTED_EDGE ( 'NONE', *, *, #3411, .F. ) ; +#4102 = CARTESIAN_POINT ( 'NONE', ( 0.1845071557944090446, 0.6019879651539330467, 6.271836282905964843 ) ) ; +#4103 = CARTESIAN_POINT ( 'NONE', ( -0.3239736370900108131, -1.155436684569473460, 5.691237000060683116 ) ) ; +#4104 = VERTEX_POINT ( 'NONE', #3182 ) ; +#4105 = CARTESIAN_POINT ( 'NONE', ( -0.1441924260139429148, -0.3622802205436830847, 5.986163717094036052 ) ) ; +#4106 = CARTESIAN_POINT ( 'NONE', ( 0.4558265323528177260, 0.009865574484553517320, 6.064788308385526072 ) ) ; +#4107 = FACE_OUTER_BOUND ( 'NONE', #4396, .T. ) ; +#4108 = ORIENTED_EDGE ( 'NONE', *, *, #779, .T. ) ; +#4109 = CARTESIAN_POINT ( 'NONE', ( -0.3461377450330211936, -0.4712822279481330146, 6.218334507093444152 ) ) ; +#4110 = CARTESIAN_POINT ( 'NONE', ( -1.990051048614448869E-16, -1.625000000000000000, 3.953999999999999737 ) ) ; +#4111 = VERTEX_POINT ( 'NONE', #3592 ) ; +#4112 = CARTESIAN_POINT ( 'NONE', ( 1.173533138228520567, -0.2507023541898043550, 5.606856458484051231 ) ) ; +#4113 = CYLINDRICAL_SURFACE ( 'NONE', #2012, 0.1330000000000000626 ) ; +#4114 = CARTESIAN_POINT ( 'NONE', ( -0.9000308847520970268, 0.7936923138951628154, 5.780336627631126767 ) ) ; +#4115 = CARTESIAN_POINT ( 'NONE', ( -0.8082155410420214237, -0.8870223829650002445, 5.619299322881960101 ) ) ; +#4116 = EDGE_CURVE ( 'NONE', #954, #3348, #4269, .T. ) ; +#4117 = CARTESIAN_POINT ( 'NONE', ( -0.4533260224253251591, -1.114133941910703252, 5.562957933457567172 ) ) ; +#4118 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #4286 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #3094, #2297, #1901 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) ); +#4119 = CARTESIAN_POINT ( 'NONE', ( -1.157763619688790824, -0.3156440634415588198, 5.716802663700609521 ) ) ; +#4120 = FACE_OUTER_BOUND ( 'NONE', #294, .T. ) ; +#4121 = EDGE_CURVE ( 'NONE', #1847, #830, #351, .T. ) ; +#4122 = CARTESIAN_POINT ( 'NONE', ( -3.581366610240468148E-17, -1.273684206347440940E-15, 5.986163717094036052 ) ) ; +#4123 = CARTESIAN_POINT ( 'NONE', ( -0.9116173045812134834, -0.7806884830774004636, 5.792086697227500913 ) ) ; +#4124 = CARTESIAN_POINT ( 'NONE', ( -0.1605474393433664604, -0.6214462687279296293, 6.285526382527715228 ) ) ; +#4125 = CARTESIAN_POINT ( 'NONE', ( -0.5683684002454937323, 0.04705188851944312051, 6.201038154610001740 ) ) ; +#4126 = EDGE_LOOP ( 'NONE', ( #5048, #2135, #740, #2246 ) ) ; +#4127 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#4128 = EDGE_LOOP ( 'NONE', ( #1375, #3995, #1468, #5274, #432, #548, #730 ) ) ; +#4129 = EDGE_CURVE ( 'NONE', #1126, #5007, #5182, .T. ) ; +#4130 = CARTESIAN_POINT ( 'NONE', ( 0.5078194151786440402, -0.2931896760531110258, 6.064721239031358735 ) ) ; +#4131 = CARTESIAN_POINT ( 'NONE', ( 0.5905096317189258981, 0.07874874197163725387, 6.231306892340729320 ) ) ; +#4132 = ORIENTED_EDGE ( 'NONE', *, *, #1117, .T. ) ; +#4133 = CARTESIAN_POINT ( 'NONE', ( 0.4414780203617504339, 0.2548874538971578341, 6.129000000000000448 ) ) ; +#4134 = DIRECTION ( 'NONE', ( 0.6634139481689388385, 0.3830222215594888957, -0.6427876096865389188 ) ) ; +#4135 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, 0.8125000000000000000, 3.104000000000000092 ) ) ; +#4136 = ORIENTED_EDGE ( 'NONE', *, *, #2572, .F. ) ; +#4137 = PLANE ( 'NONE', #1952 ) ; +#4138 = CARTESIAN_POINT ( 'NONE', ( 0.1973985779355847681, 1.183701179905833678, 5.800274753242168124 ) ) ; +#4139 = EDGE_LOOP ( 'NONE', ( #808, #3530, #55, #4791, #257, #2170 ) ) ; +#4140 = DIRECTION ( 'NONE', ( 2.775557561562890858E-16, 0.6427876096865391409, 0.7660444431189782355 ) ) ; +#4141 = FACE_BOUND ( 'NONE', #4292, .T. ) ; +#4142 = CARTESIAN_POINT ( 'NONE', ( -0.9154102982435652347, 0.7759127600639823541, 5.793167151937760551 ) ) ; +#4143 = CARTESIAN_POINT ( 'NONE', ( 0.5439363917241704094, 0.3922041198417396402, 6.311932765464763229 ) ) ; +#4144 = CARTESIAN_POINT ( 'NONE', ( 0.2427944878008143903, -1.175181826808958219, 5.776711110814265915 ) ) ; +#4145 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#4146 = EDGE_CURVE ( 'NONE', #5242, #2868, #4342, .T. ) ; +#4147 = CARTESIAN_POINT ( 'NONE', ( 0.2118842711600255890, 0.3931075096315193029, 6.053619253783745435 ) ) ; +#4148 = CARTESIAN_POINT ( 'NONE', ( -0.4449245162833049272, -0.7706318677356902569, 5.130805054534240739 ) ) ; +#4149 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#4150 = CIRCLE ( 'NONE', #1929, 0.3899210354891941011 ) ; +#4151 = LINE ( 'NONE', #4915, #4328 ) ; +#4152 = VERTEX_POINT ( 'NONE', #1268 ) ; +#4153 = CARTESIAN_POINT ( 'NONE', ( 0.7887281695052992259, -0.2532998267649578805, 5.355730255524930428 ) ) ; +#4154 = VERTEX_POINT ( 'NONE', #4633 ) ; +#4155 = VECTOR ( 'NONE', #2709, 39.37007874015748143 ) ; +#4156 = DIRECTION ( 'NONE', ( 3.330669073875471100E-16, 0.6427876096865391409, -0.7660444431189782355 ) ) ; +#4157 = CARTESIAN_POINT ( 'NONE', ( 0.4465813368670032979, 0.7735015651656812485, 5.157008074717787771 ) ) ; +#4158 = ORIENTED_EDGE ( 'NONE', *, *, #3669, .T. ) ; +#4159 = CARTESIAN_POINT ( 'NONE', ( -0.4442483215270726649, -0.7694606640620843541, 5.144191973780746885 ) ) ; +#4160 = VECTOR ( 'NONE', #1819, 39.37007874015748854 ) ; +#4161 = EDGE_CURVE ( 'NONE', #1995, #2725, #1780, .T. ) ; +#4162 = CARTESIAN_POINT ( 'NONE', ( 0.4140694151786390442, -0.4555694392626898348, 6.064721239031350741 ) ) ; +#4163 = AXIS2_PLACEMENT_3D ( 'NONE', #3901, #3017, #1849 ) ; +#4164 = CONICAL_SURFACE ( 'NONE', #566, 0.5097749077943197760, 0.6981317007977323463 ) ; +#4165 = CARTESIAN_POINT ( 'NONE', ( -1.250000000000000000, -2.540341340432940998E-16, 4.849972727250857929 ) ) ; +#4166 = ORIENTED_EDGE ( 'NONE', *, *, #2166, .F. ) ; +#4167 = DIRECTION ( 'NONE', ( 0.4999999999999998335, 0.8660254037844385966, 1.645406930227269504E-16 ) ) ; +#4168 = CARTESIAN_POINT ( 'NONE', ( 0.6004768888183594777, -0.3080914456824916936, 6.315368908631503686 ) ) ; +#4169 = ORIENTED_EDGE ( 'NONE', *, *, #2622, .F. ) ; +#4170 = CARTESIAN_POINT ( 'NONE', ( 1.167283275472993154, -0.2782933912532403187, 5.660936345323043462 ) ) ; +#4171 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #5062, #2684, #679, #4322 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 3.054326190990089174, 3.839724354387441974 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9492530216742034455, 0.9492530216742034455, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#4172 = FACE_BOUND ( 'NONE', #406, .T. ) ; +#4173 = CARTESIAN_POINT ( 'NONE', ( 0.6633281758544095075, 0.8159854027828249423, 5.406025211417605725 ) ) ; +#4174 = AXIS2_PLACEMENT_3D ( 'NONE', #2890, #453, #4921 ) ; +#4175 = CYLINDRICAL_SURFACE ( 'NONE', #5085, 0.05000000000000004441 ) ; +#4176 = CARTESIAN_POINT ( 'NONE', ( 0.3641531173804960497, -1.143422044855643582, 5.619127258107419642 ) ) ; +#4177 = CYLINDRICAL_SURFACE ( 'NONE', #3197, 0.2500000000000000555 ) ; +#4178 = CARTESIAN_POINT ( 'NONE', ( 0.7382052857005013680, -0.9496588225722386589, 5.562957933457567172 ) ) ; +#4179 = CARTESIAN_POINT ( 'NONE', ( -1.199999999999999956, -1.360911383585519550E-15, 6.378999999999999559 ) ) ; +#4180 = VECTOR ( 'NONE', #1496, 39.37007874015748854 ) ; +#4181 = CARTESIAN_POINT ( 'NONE', ( -0.2287658773652736233, -1.311297632095825172, 4.658015363927715313 ) ) ; +#4182 = EDGE_CURVE ( 'NONE', #5059, #3951, #947, .T. ) ; +#4183 = CARTESIAN_POINT ( 'NONE', ( 0.2384294091663756165, 0.5280668512610567911, 6.211947421643299272 ) ) ; +#4184 = ORIENTED_EDGE ( 'NONE', *, *, #381, .F. ) ; +#4185 = CARTESIAN_POINT ( 'NONE', ( -0.8171929182987269780, -0.6883099015441779267, 5.643834550590879573 ) ) ; +#4186 = EDGE_LOOP ( 'NONE', ( #4010, #2047, #2065, #3651 ) ) ; +#4187 = FACE_OUTER_BOUND ( 'NONE', #2329, .T. ) ; +#4188 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#4189 = EDGE_CURVE ( 'NONE', #4758, #1298, #746, .T. ) ; +#4190 = ORIENTED_EDGE ( 'NONE', *, *, #3141, .T. ) ; +#4191 = CARTESIAN_POINT ( 'NONE', ( 0.09096290669194367906, -0.3791792492417357385, 5.934561472117135139 ) ) ; +#4192 = ADVANCED_FACE ( 'NONE', ( #2599 ), #2093, .F. ) ; +#4193 = CARTESIAN_POINT ( 'NONE', ( 0.5297360420389540803, 0.01732180920672846819, 6.153039115255759306 ) ) ; +#4194 = CARTESIAN_POINT ( 'NONE', ( -0.6017883063684130729, 0.1017042844117740513, 6.248577832852135749 ) ) ; +#4195 = ORIENTED_EDGE ( 'NONE', *, *, #127, .T. ) ; +#4196 = CARTESIAN_POINT ( 'NONE', ( -0.2416476612724857975, 0.3060144142332220651, 5.986163717094036052 ) ) ; +#4197 = CARTESIAN_POINT ( 'NONE', ( 0.6193829872516514179, -0.2254034014487414916, 6.302308868002135078 ) ) ; +#4198 = ORIENTED_EDGE ( 'NONE', *, *, #3311, .F. ) ; +#4199 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#4200 = CARTESIAN_POINT ( 'NONE', ( -0.6969867810375158790, -0.6044780998699881280, 5.470303972386260760 ) ) ; +#4201 = DIRECTION ( 'NONE', ( 0.000000000000000000, 2.220446049250309876E-16, -1.000000000000000000 ) ) ; +#4202 = EDGE_CURVE ( 'NONE', #2949, #3049, #2969, .T. ) ; +#4203 = DIRECTION ( 'NONE', ( -0.7980483689013623261, -0.4630069900918596382, 0.3856725658119224964 ) ) ; +#4204 = DIRECTION ( 'NONE', ( -0.4999999999999997780, 0.8660254037844387076, 0.000000000000000000 ) ) ; +#4205 = VERTEX_POINT ( 'NONE', #5001 ) ; +#4206 = DIRECTION ( 'NONE', ( 0.5000000000000001110, 0.8660254037844384856, 0.000000000000000000 ) ) ; +#4207 = FACE_OUTER_BOUND ( 'NONE', #4446, .T. ) ; +#4208 = ORIENTED_EDGE ( 'NONE', *, *, #4642, .T. ) ; +#4209 = AXIS2_PLACEMENT_3D ( 'NONE', #5069, #77, #3399 ) ; +#4210 = CARTESIAN_POINT ( 'NONE', ( 0.8250223388443440609, 0.8713985144977620667, 5.661797653372235395 ) ) ; +#4211 = ORIENTED_EDGE ( 'NONE', *, *, #4572, .F. ) ; +#4212 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#4213 = EDGE_LOOP ( 'NONE', ( #3535, #2225 ) ) ; +#4214 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, -0.6794999999999999929, 3.479000000000000092 ) ) ; +#4215 = ADVANCED_FACE ( 'NONE', ( #2548 ), #890, .F. ) ; +#4216 = CARTESIAN_POINT ( 'NONE', ( -0.5867431197130258402, 0.07246678716137885945, 6.225996798350077022 ) ) ; +#4217 = ORIENTED_EDGE ( 'NONE', *, *, #2714, .F. ) ; +#4218 = CARTESIAN_POINT ( 'NONE', ( -0.3039996939992844482, -0.4626572241981743439, 6.181162789368338295 ) ) ; +#4219 = CARTESIAN_POINT ( 'NONE', ( 0.4903927433641093181, -0.4329501871468404706, 6.297766623892808724 ) ) ; +#4220 = ORIENTED_EDGE ( 'NONE', *, *, #1339, .F. ) ; +#4221 = CARTESIAN_POINT ( 'NONE', ( -0.3858400872864291564, 0.05626580631045787623, 5.986163717094036052 ) ) ; +#4222 = CARTESIAN_POINT ( 'NONE', ( 0.09334047092469757723, -0.6581990526001609831, 6.307264297494227456 ) ) ; +#4223 = CARTESIAN_POINT ( 'NONE', ( -0.7986823578055235462, 0.6631920684923917619, 5.610249138468685004 ) ) ; +#4224 = CARTESIAN_POINT ( 'NONE', ( 0.3073804122153389051, -1.159959276403694783, 5.714158253670345466 ) ) ; +#4225 = EDGE_CURVE ( 'NONE', #921, #3209, #2178, .T. ) ; +#4226 = CARTESIAN_POINT ( 'NONE', ( -0.1845071557944078511, 0.6019879651539330467, 6.271836282905964843 ) ) ; +#4227 = EDGE_LOOP ( 'NONE', ( #2812, #3964, #1426, #4046, #2783, #1497, #2325 ) ) ; +#4228 = CARTESIAN_POINT ( 'NONE', ( -0.2585120751362829372, -0.2920925111953862618, 5.962336334516289860 ) ) ; +#4229 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 1.625000000000000000, 3.479000000000000092 ) ) ; +#4230 = ORIENTED_EDGE ( 'NONE', *, *, #2084, .F. ) ; +#4231 = CARTESIAN_POINT ( 'NONE', ( -0.4491831713700198958, -0.7780080747177920975, 5.105498434834316868 ) ) ; +#4232 = EDGE_LOOP ( 'NONE', ( #1155, #5134, #3862, #4385 ) ) ; +#4233 = CARTESIAN_POINT ( 'NONE', ( 0.5866099659718700954, 0.07218737134397623656, 6.225791774768233644 ) ) ; +#4234 = ORIENTED_EDGE ( 'NONE', *, *, #4987, .F. ) ; +#4235 = CARTESIAN_POINT ( 'NONE', ( -0.2749336667643285104, 0.2773451747853865612, 5.941670513694774058 ) ) ; +#4236 = CARTESIAN_POINT ( 'NONE', ( -0.4439043401863503879, -0.4556383459246959311, 6.279327844347484699 ) ) ; +#4237 = ORIENTED_EDGE ( 'NONE', *, *, #3466, .T. ) ; +#4238 = CARTESIAN_POINT ( 'NONE', ( 0.4577015327247003773, -0.4503044012595248669, 6.285725290086483064 ) ) ; +#4239 = ORIENTED_EDGE ( 'NONE', *, *, #4225, .T. ) ; +#4240 = EDGE_CURVE ( 'NONE', #5052, #3809, #5072, .T. ) ; +#4241 = CARTESIAN_POINT ( 'NONE', ( 0.1845071557944090446, 0.6019879651539330467, 6.271836282905964843 ) ) ; +#4242 = AXIS2_PLACEMENT_3D ( 'NONE', #2148, #1315, #4550 ) ; +#4243 = CARTESIAN_POINT ( 'NONE', ( -0.8251714419038845838, 0.8712572622534636713, 5.662142407377254827 ) ) ; +#4244 = VECTOR ( 'NONE', #1756, 39.37007874015748854 ) ; +#4245 = CARTESIAN_POINT ( 'NONE', ( -0.3634531436720576103, 0.4720219717317112318, 6.231306833138819279 ) ) ; +#4246 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, 0.9455000000000001181, 3.479000000000000092 ) ) ; +#4247 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.9221302479016258991, -0.3868795754558334021 ) ) ; +#4248 = CARTESIAN_POINT ( 'NONE', ( -2.152929072901046855E-16, -1.758000000000000007, 3.104000000000000092 ) ) ; +#4249 = EDGE_CURVE ( 'NONE', #4205, #2779, #4959, .T. ) ; +#4250 = CARTESIAN_POINT ( 'NONE', ( 0.8604725617338467858, -0.8364110830465416591, 5.730263837024129892 ) ) ; +#4251 = ORIENTED_EDGE ( 'NONE', *, *, #5254, .F. ) ; +#4252 = DIRECTION ( 'NONE', ( -3.061616997868378704E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +#4253 = EDGE_CURVE ( 'NONE', #178, #435, #1052, .T. ) ; +#4254 = AXIS2_PLACEMENT_3D ( 'NONE', #168, #3436, #1326 ) ; +#4255 = DIRECTION ( 'NONE', ( -0.6634139481689380613, -0.3830222215594886181, -0.6427876096865401401 ) ) ; +#4256 = ORIENTED_EDGE ( 'NONE', *, *, #4755, .T. ) ; +#4257 = CARTESIAN_POINT ( 'NONE', ( 0.8248461180650165092, 0.8715653736744775060, 5.661389411697512308 ) ) ; +#4258 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #1096, #1903, #796, #3198 ), + .UNSPECIFIED., .F., .F. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 0.3178237039278810072, 0.5235987755982999259 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9964744966727188125, 0.9964744966727188125, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#4259 = AXIS2_PLACEMENT_3D ( 'NONE', #1593, #3190, #4458 ) ; +#4260 = PLANE ( 'NONE', #3485 ) ; +#4261 = ADVANCED_FACE ( 'NONE', ( #2625 ), #2674, .F. ) ; +#4262 = ORIENTED_EDGE ( 'NONE', *, *, #1858, .F. ) ; +#4263 = CYLINDRICAL_SURFACE ( 'NONE', #2535, 0.1329999999999999238 ) ; +#4264 = CARTESIAN_POINT ( 'NONE', ( -0.6169639516478837571, -0.2463163468726085881, 6.306870712084058361 ) ) ; +#4265 = ORIENTED_EDGE ( 'NONE', *, *, #2735, .F. ) ; +#4266 = CARTESIAN_POINT ( 'NONE', ( 0.2332949138254538646, -0.3458072453142408409, 6.018156986630340377 ) ) ; +#4267 = CARTESIAN_POINT ( 'NONE', ( 0.2515988532454947468, 1.173368225707447143, 5.770727711700634366 ) ) ; +#4268 = ORIENTED_EDGE ( 'NONE', *, *, #1566, .T. ) ; +#4269 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4841, #4451, #4045, #783 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.5000032659731813434, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#4270 = CARTESIAN_POINT ( 'NONE', ( -0.4296901818233959669, 0.02100741961388443227, 6.034154198216021392 ) ) ; +#4271 = PLANE ( 'NONE', #3538 ) ; +#4272 = CARTESIAN_POINT ( 'NONE', ( 2.250000000000000000, -7.724931805341829553E-16, 3.479000000000000092 ) ) ; +#4273 = CARTESIAN_POINT ( 'NONE', ( 0.8301120792519715019, -0.6957717833939421892, 5.661614436093666214 ) ) ; +#4274 = LINE ( 'NONE', #1793, #1972 ) ; +#4275 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#4276 = AXIS2_PLACEMENT_3D ( 'NONE', #1439, #4696, #4247 ) ; +#4277 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #724, #669, #1127, #2752, #1611, #3238, #2703, #2306, #1962, #3984, #3588, #3178, #1988, #1582, #3613, #5232, #270, #1911, #3780, #3697, #803, #80, #2064, #451, #3263, #2516, #4862 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.2500000000000095479, 0.3750000000000198730, 0.4375000000000197065, 0.4687500000000194289, 0.5000000000000190958, 0.6250000000000502931, 0.6875000000000658362, 0.7187500000000782707, 0.7343750000000804912, 0.7421875000000812683, 0.7460937500000816014, 0.7480468750000859313, 0.7500000000000903722, 0.8750000000000451861, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#4278 = CARTESIAN_POINT ( 'NONE', ( 0.8838731382169304762, -0.8116964593749382839, 5.763258631761715378 ) ) ; +#4279 = EDGE_CURVE ( 'NONE', #3041, #1044, #4311, .T. ) ; +#4280 = ORIENTED_EDGE ( 'NONE', *, *, #1563, .T. ) ; +#4281 = DIRECTION ( 'NONE', ( 6.250248031976811775E-16, 0.7660444431189782355, -0.6427876096865391409 ) ) ; +#4282 = ORIENTED_EDGE ( 'NONE', *, *, #4727, .F. ) ; +#4283 = LINE ( 'NONE', #2247, #4665 ) ; +#4284 = LINE ( 'NONE', #5157, #1435 ) ; +#4285 = ORIENTED_EDGE ( 'NONE', *, *, #2639, .T. ) ; +#4286 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #3094, 'distance_accuracy_value', 'NONE'); +#4287 = AXIS2_PLACEMENT_3D ( 'NONE', #4003, #823, #4825 ) ; +#4288 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #1763, #848, #1328, #411 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.268928027592559182, 3.054326190990077627 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9492530216741821292, 0.9492530216741821292, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#4289 = CARTESIAN_POINT ( 'NONE', ( 0.3749379055200268707, -0.1070587986129722252, 5.937348728574960433 ) ) ; +#4290 = EDGE_CURVE ( 'NONE', #48, #2389, #660, .T. ) ; +#4291 = CARTESIAN_POINT ( 'NONE', ( -0.6096253817659795793, -0.2805697043099703580, 6.312462533170234202 ) ) ; +#4292 = EDGE_LOOP ( 'NONE', ( #2569, #355 ) ) ; +#4293 = CARTESIAN_POINT ( 'NONE', ( 0.05474255455705236834, 0.3860907334177778316, 5.914219959703620688 ) ) ; +#4294 = DIRECTION ( 'NONE', ( 0.6634139481689381723, -0.3830222215594895618, -0.6427876096865392519 ) ) ; +#4295 = CARTESIAN_POINT ( 'NONE', ( 1.142670174465733268, -0.3664801485736016717, 5.768586320661901468 ) ) ; +#4296 = CARTESIAN_POINT ( 'NONE', ( 0.6969867810375158790, -0.6044780998699901264, 5.470303972386260760 ) ) ; +#4297 = ORIENTED_EDGE ( 'NONE', *, *, #4788, .T. ) ; +#4298 = CARTESIAN_POINT ( 'NONE', ( -0.3518919930738989010, 0.4717197720362467095, 6.222833236376877686 ) ) ; +#4299 = CARTESIAN_POINT ( 'NONE', ( 0.3516801833889589557, -0.4717088772451904499, 6.222671864549526255 ) ) ; +#4300 = CARTESIAN_POINT ( 'NONE', ( 1.250000000000000000, -1.330279032376149597E-15, 4.849972727250857929 ) ) ; +#4301 = CARTESIAN_POINT ( 'NONE', ( -0.1828304023427504699, -0.3749429446039538316, 6.018156986630982530 ) ) ; +#4302 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2294, #4772, #712, #3924, #3525, #1493, #1979, #2795, #3115, #4745, #1116, #4380, #2343, #3971, #1949, #1547, #819, #4515, #3253, #4853, #1626, #9, #2849, #4056, #2876 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4 ), + ( 0.5608568033238987560, 0.6706426024922558238, 0.7255355020764315821, 0.7529819518685195723, 0.7667051767645635119, 0.7735667892125854816, 0.7769975954365946347, 0.7787129985486012096, 0.7795707001046066065, 0.7799995508826113033, 0.7804284016606158891, 0.8353213012454618891, 0.8902142008303080001, 0.9451071004151538890, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#4303 = CARTESIAN_POINT ( 'NONE', ( -0.1750000000000000167, 0.8097085448544666386, 5.355730255524930428 ) ) ; +#4304 = ORIENTED_EDGE ( 'NONE', *, *, #1766, .T. ) ; +#4305 = CARTESIAN_POINT ( 'NONE', ( 0.4702702679476989389, 0.4439547060956676727, 6.290540039405555284 ) ) ; +#4306 = CARTESIAN_POINT ( 'NONE', ( -2.250000000000000000, -4.553142873025859947E-16, 3.479000000000000092 ) ) ; +#4307 = ADVANCED_FACE ( 'NONE', ( #4707 ), #1020, .F. ) ; +#4308 = VERTEX_POINT ( 'NONE', #3932 ) ; +#4309 = CARTESIAN_POINT ( 'NONE', ( 3.791200677927629740E-33, -0.8594421130351409532, 6.378999999999999559 ) ) ; +#4310 = CARTESIAN_POINT ( 'NONE', ( -0.9550695643221949194, -0.1183969681640179156, 5.291451494556268287 ) ) ; +#4311 = LINE ( 'NONE', #1421, #5267 ) ; +#4312 = EDGE_LOOP ( 'NONE', ( #1399, #3305, #2915, #3072, #3145, #2618 ) ) ; +#4313 = DIRECTION ( 'NONE', ( -0.6634139481689379503, 0.3830222215594900614, -0.6427876096865390299 ) ) ; +#4314 = EDGE_LOOP ( 'NONE', ( #1097, #5125 ) ) ; +#4315 = CARTESIAN_POINT ( 'NONE', ( -0.09096290669948735308, 0.3791792492379783552, 5.934561472124078918 ) ) ; +#4316 = CARTESIAN_POINT ( 'NONE', ( 0.2750372446832088369, 1.168060829441730286, 5.750389552696791640 ) ) ; +#4317 = AXIS2_PLACEMENT_3D ( 'NONE', #3335, #2078, #1623 ) ; +#4318 = ADVANCED_FACE ( 'NONE', ( #637 ), #4260, .F. ) ; +#4319 = CARTESIAN_POINT ( 'NONE', ( -0.4132297376443963000, 0.03164615391811201328, 6.015278229240371921 ) ) ; +#4320 = CYLINDRICAL_SURFACE ( 'NONE', #1848, 0.2499999999999998335 ) ; +#4321 = ORIENTED_EDGE ( 'NONE', *, *, #2942, .F. ) ; +#4322 = CARTESIAN_POINT ( 'NONE', ( -0.9031367637328661102, -4.982613026981668853E-16, 5.167302222155944591 ) ) ; +#4323 = CARTESIAN_POINT ( 'NONE', ( 0.3511232560952703419, -0.4716792742115346049, 6.222246818970935678 ) ) ; +#4324 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, -1.023275245660240085, 5.610249138468685004 ) ) ; +#4325 = CARTESIAN_POINT ( 'NONE', ( -0.4140694151786393218, -0.4555694392626893907, 6.064721239031350741 ) ) ; +#4326 = CIRCLE ( 'NONE', #825, 0.1330000000000000626 ) ; +#4327 = FACE_OUTER_BOUND ( 'NONE', #4872, .T. ) ; +#4328 = VECTOR ( 'NONE', #4604, 39.37007874015748143 ) ; +#4329 = CIRCLE ( 'NONE', #4585, 0.1875000000000001110 ) ; +#4330 = DIRECTION ( 'NONE', ( -2.239058834696060229E-16, -0.7660444431189782355, -0.6427876096865391409 ) ) ; +#4331 = CARTESIAN_POINT ( 'NONE', ( 0.5846389981177417816, -0.06915298363189519015, 6.223073101853479727 ) ) ; +#4332 = CYLINDRICAL_SURFACE ( 'NONE', #2550, 0.04999999999999994726 ) ; +#4333 = ORIENTED_EDGE ( 'NONE', *, *, #3635, .T. ) ; +#4334 = FILL_AREA_STYLE ('',( #340 ) ) ; +#4335 = ORIENTED_EDGE ( 'NONE', *, *, #550, .F. ) ; +#4336 = EDGE_CURVE ( 'NONE', #1076, #3976, #1696, .T. ) ; +#4337 = DIRECTION ( 'NONE', ( 0.6197348675208463886, 0.7848112473575534764, 0.000000000000000000 ) ) ; +#4338 = AXIS2_PLACEMENT_3D ( 'NONE', #3271, #2810, #5291 ) ; +#4339 = FACE_BOUND ( 'NONE', #4314, .T. ) ; +#4340 = ORIENTED_EDGE ( 'NONE', *, *, #3219, .F. ) ; +#4341 = CARTESIAN_POINT ( 'NONE', ( -0.6714086293390428839, 0.9980026931699695902, 5.522824837521429941 ) ) ; +#4342 = CIRCLE ( 'NONE', #2628, 0.3000000000000000999 ) ; +#4343 = EDGE_CURVE ( 'NONE', #2488, #178, #4284, .T. ) ; +#4344 = CARTESIAN_POINT ( 'NONE', ( 0.2354099827966941172, -0.3850744139397801469, 6.059316101328104054 ) ) ; +#4345 = CARTESIAN_POINT ( 'NONE', ( 0.2866399855210015613, 1.165261999697216666, 5.738551864800061075 ) ) ; +#4346 = ADVANCED_FACE ( 'NONE', ( #2248, #3879, #2276, #4339, #3482, #590, #667 ), #1502, .F. ) ; +#4347 = CARTESIAN_POINT ( 'NONE', ( -0.1875030168572080491, -1.081693438863908341, 5.679382527199699382 ) ) ; +#4348 = DIRECTION ( 'NONE', ( 5.551115123125781716E-16, 0.6427876096865391409, -0.7660444431189782355 ) ) ; +#4349 = ORIENTED_EDGE ( 'NONE', *, *, #3539, .F. ) ; +#4350 = CARTESIAN_POINT ( 'NONE', ( -0.4070391430124513099, 0.4670436806787210959, 6.259648185232820516 ) ) ; +#4351 = CARTESIAN_POINT ( 'NONE', ( -0.3557109848948057373, 1.146065182814655303, 5.636485113379840151 ) ) ; +#4352 = CARTESIAN_POINT ( 'NONE', ( -1.167220813693483406, 0.2785550056200393754, 5.661389411697503427 ) ) ; +#4353 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000000555, -0.8863129891663661386, 5.291451494556268287 ) ) ; +#4354 = CARTESIAN_POINT ( 'NONE', ( -0.1092336915585524204, 0.6515083045796304928, 6.303637208425345584 ) ) ; +#4355 = ORIENTED_EDGE ( 'NONE', *, *, #3371, .T. ) ; +#4356 = ADVANCED_FACE ( 'NONE', ( #5107 ), #1451, .F. ) ; +#4357 = CARTESIAN_POINT ( 'NONE', ( 0.5515624061908784848, -0.03104406582932222811, 6.179736733211747435 ) ) ; +#4358 = CARTESIAN_POINT ( 'NONE', ( -0.3444852494988305258, -0.1831765061103266534, 5.903217354205557044 ) ) ; +#4359 = CARTESIAN_POINT ( 'NONE', ( -0.2331242509966462984, -0.3555031748119195645, 6.028114021684072732 ) ) ; +#4360 = ORIENTED_EDGE ( 'NONE', *, *, #2486, .F. ) ; +#4361 = VERTEX_POINT ( 'NONE', #1100 ) ; +#4362 = CARTESIAN_POINT ( 'NONE', ( -0.2344989541794420818, 0.3800509163037928961, 6.053619253785075927 ) ) ; +#4363 = CARTESIAN_POINT ( 'NONE', ( 0.1875000000000004163, 0.5097749077943187768, 6.129000000000000448 ) ) ; +#4364 = ORIENTED_EDGE ( 'NONE', *, *, #3569, .F. ) ; +#4365 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #5040, #3033, #1386, #4478 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.617993877991494855, 2.823768949661909833 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9964744966727190345, 0.9964744966727190345, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#4366 = VERTEX_POINT ( 'NONE', #1881 ) ; +#4367 = CARTESIAN_POINT ( 'NONE', ( 0.2416476612724857975, -0.3060144142332251738, 5.986163717094036052 ) ) ; +#4368 = CARTESIAN_POINT ( 'NONE', ( 0.1239632353420207778, 0.3703317119414335501, 5.960763053376009424 ) ) ; +#4369 = FACE_OUTER_BOUND ( 'NONE', #703, .T. ) ; +#4370 = CARTESIAN_POINT ( 'NONE', ( -0.3858400872864291564, 0.05626580631045787623, 5.986163717094036052 ) ) ; +#4371 = EDGE_CURVE ( 'NONE', #344, #4943, #4756, .T. ) ; +#4372 = CONICAL_SURFACE ( 'NONE', #1210, 1.050000000000000044, 0.7853981633974476129 ) ; +#4373 = CARTESIAN_POINT ( 'NONE', ( -0.9031367637328661102, -4.982613026981668853E-16, 5.167302222155944591 ) ) ; +#4374 = ORIENTED_EDGE ( 'NONE', *, *, #2446, .F. ) ; +#4375 = CARTESIAN_POINT ( 'NONE', ( -0.5477931823340280726, 0.3876662152581873411, 6.312462533166840473 ) ) ; +#4376 = CARTESIAN_POINT ( 'NONE', ( 0.3193348833135730702, -0.4670515518484753548, 6.195676070651263245 ) ) ; +#4377 = CARTESIAN_POINT ( 'NONE', ( 0.5230442286071844693, -0.01330459158958026238, 6.144968119826951458 ) ) ; +#4378 = CARTESIAN_POINT ( 'NONE', ( 9.437518501434591273E-17, 0.7706318677356882585, 5.130805054534240739 ) ) ; +#4379 = PLANE ( 'NONE', #2869 ) ; +#4380 = CARTESIAN_POINT ( 'NONE', ( -0.2329246058582833678, -0.5399212967435558230, 6.222246818970707416 ) ) ; +#4381 = DIRECTION ( 'NONE', ( 0.4999999999999998890, -0.8660254037844387076, -3.035766082959409950E-16 ) ) ; +#4382 = CARTESIAN_POINT ( 'NONE', ( -0.3507153230576093850, -0.1708971119123597338, 5.905295428015979731 ) ) ; +#4383 = CARTESIAN_POINT ( 'NONE', ( -0.2849920402363720906, -0.4532153657421842952, 6.159507043090530765 ) ) ; +#4384 = EDGE_CURVE ( 'NONE', #1395, #954, #2724, .T. ) ; +#4385 = ORIENTED_EDGE ( 'NONE', *, *, #1331, .F. ) ; +#4386 = AXIS2_PLACEMENT_3D ( 'NONE', #1168, #4330, #337 ) ; +#4387 = DIRECTION ( 'NONE', ( -7.771561172376094797E-16, -0.7660444431189782355, 0.6427876096865392519 ) ) ; +#4388 = CARTESIAN_POINT ( 'NONE', ( -2.152929072901046855E-16, -1.758000000000000007, 3.479000000000000092 ) ) ; +#4389 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, -0.9455000000000001181, 3.953999999999999737 ) ) ; +#4390 = ORIENTED_EDGE ( 'NONE', *, *, #636, .T. ) ; +#4391 = ORIENTED_EDGE ( 'NONE', *, *, #3371, .F. ) ; +#4392 = CARTESIAN_POINT ( 'NONE', ( -0.7382052857005015900, 0.9496588225722361054, 5.562957933457567172 ) ) ; +#4393 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -0.7883022221559508047, 5.096860619515669377 ) ) ; +#4394 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #3019, #538, #1343, #237 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 3.054326190990073631, 3.839724354387436200 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9492530216742021132, 0.9492530216742021132, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#4395 = CARTESIAN_POINT ( 'NONE', ( 0.8176574784459627043, 0.4720747652856850385, 5.438164591901928802 ) ) ; +#4396 = EDGE_LOOP ( 'NONE', ( #1833, #4639, #574, #4606, #2520, #557 ) ) ; +#4397 = CARTESIAN_POINT ( 'NONE', ( 1.250000000000001998, -0.4575317547305511878, 4.658015363927715313 ) ) ; +#4398 = CARTESIAN_POINT ( 'NONE', ( -0.8983663427400376822, -3.818020610187571947E-16, 5.105498434834315091 ) ) ; +#4399 = ORIENTED_EDGE ( 'NONE', *, *, #3231, .F. ) ; +#4400 = CARTESIAN_POINT ( 'NONE', ( -0.4903927433627920940, 0.4329501871475080477, 6.297766623892298909 ) ) ; +#4401 = EDGE_CURVE ( 'NONE', #4722, #2751, #505, .T. ) ; +#4402 = CARTESIAN_POINT ( 'NONE', ( -0.2993355990162459568, 1.162058173068146294, 5.724132036576760285 ) ) ; +#4403 = DIRECTION ( 'NONE', ( 3.330669073875471100E-16, -0.6427876096865381417, 0.7660444431189792347 ) ) ; +#4404 = CARTESIAN_POINT ( 'NONE', ( 0.2383314433582842951, 0.3174887773734577645, 5.994446444342150571 ) ) ; +#4405 = CARTESIAN_POINT ( 'NONE', ( -0.8573871253374847345, 0.7067152881164987521, 5.696772153281759010 ) ) ; +#4406 = AXIS2_PLACEMENT_3D ( 'NONE', #3650, #88, #2839 ) ; +#4407 = ORIENTED_EDGE ( 'NONE', *, *, #208, .F. ) ; +#4408 = DIRECTION ( 'NONE', ( -0.6634139481689388385, -0.3830222215594888957, -0.6427876096865389188 ) ) ; +#4409 = CARTESIAN_POINT ( 'NONE', ( -0.2360363626942537096, -0.3879465741276911794, 6.062660259327455670 ) ) ; +#4410 = AXIS2_PLACEMENT_3D ( 'NONE', #2817, #3, #3626 ) ; +#4411 = ADVANCED_FACE ( 'NONE', ( #3429 ), #835, .F. ) ; +#4412 = CIRCLE ( 'NONE', #5087, 1.199999999999999956 ) ; +#4413 = VECTOR ( 'NONE', #5222, 39.37007874015748143 ) ; +#4414 = CARTESIAN_POINT ( 'NONE', ( -0.4414780203617504339, -0.2548874538971610537, 6.129000000000000448 ) ) ; +#4415 = CARTESIAN_POINT ( 'NONE', ( 1.138292607326757855, 0.3798547346567253125, 5.778473502975376874 ) ) ; +#4416 = ORIENTED_EDGE ( 'NONE', *, *, #1447, .F. ) ; +#4417 = EDGE_LOOP ( 'NONE', ( #966, #3239 ) ) ; +#4418 = CARTESIAN_POINT ( 'NONE', ( 0.2904178240736546290, -0.2601793932500916506, 5.927410736248167389 ) ) ; +#4419 = CARTESIAN_POINT ( 'NONE', ( -1.138722472238409056, -0.3785663072710261368, 5.777581622962302710 ) ) ; +#4420 = EDGE_LOOP ( 'NONE', ( #2549, #1263, #1152, #2467 ) ) ; +#4421 = AXIS2_PLACEMENT_3D ( 'NONE', #4891, #1153, #4785 ) ; +#4422 = EDGE_CURVE ( 'NONE', #1178, #3616, #1579, .T. ) ; +#4423 = CARTESIAN_POINT ( 'NONE', ( -0.1792084956047223232, 0.3736905273614930523, 6.015278229247970287 ) ) ; +#4424 = CARTESIAN_POINT ( 'NONE', ( -0.2397764363808691512, -1.175801342795192994, 5.778743187815084781 ) ) ; +#4425 = VERTEX_POINT ( 'NONE', #3585 ) ; +#4426 = CARTESIAN_POINT ( 'NONE', ( -0.4469367142323848463, -0.01281583527534703448, 6.054329174685527448 ) ) ; +#4427 = AXIS2_PLACEMENT_3D ( 'NONE', #5219, #4900, #1677 ) ; +#4428 = DIRECTION ( 'NONE', ( -0.5566703992264190326, 0.3213938048432700145, -0.7660444431189781245 ) ) ; +#4429 = CIRCLE ( 'NONE', #3316, 0.2999999999999995448 ) ; +#4430 = VECTOR ( 'NONE', #339, 39.37007874015748143 ) ; +#4431 = ORIENTED_EDGE ( 'NONE', *, *, #1131, .F. ) ; +#4432 = CIRCLE ( 'NONE', #2798, 0.2500000000000000555 ) ; +#4433 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -6.892264536872972008E-16, 3.104000000000000092 ) ) ; +#4434 = CARTESIAN_POINT ( 'NONE', ( -1.017612079093999533, -0.3710122568153053635, 5.661614435833072889 ) ) ; +#4435 = CARTESIAN_POINT ( 'NONE', ( 0.4296901818352034108, -0.02100741960773724187, 6.034154198228642407 ) ) ; +#4436 = LINE ( 'NONE', #4353, #1073 ) ; +#4437 = LINE ( 'NONE', #4001, #1228 ) ; +#4438 = ORIENTED_EDGE ( 'NONE', *, *, #4802, .T. ) ; +#4439 = CARTESIAN_POINT ( 'NONE', ( 0.2931005103851174187, 0.4578967931652433987, 6.169373990188172563 ) ) ; +#4440 = AXIS2_PLACEMENT_3D ( 'NONE', #575, #3006, #980 ) ; +#4441 = CARTESIAN_POINT ( 'NONE', ( -0.2335104260509745788, -0.3732827199721228673, 6.046197320623048377 ) ) ; +#4442 = EDGE_CURVE ( 'NONE', #2488, #3068, #4457, .T. ) ; +#4443 = CARTESIAN_POINT ( 'NONE', ( 0.8641761341103948446, 0.8326380767093276569, 5.736408563694956442 ) ) ; +#4444 = CARTESIAN_POINT ( 'NONE', ( -1.174683493581610394, -0.2451911293397350255, 5.593666288758528005 ) ) ; +#4445 = CARTESIAN_POINT ( 'NONE', ( 0.5800695643221936981, -0.7679160210023483479, 5.291451494556268287 ) ) ; +#4446 = EDGE_LOOP ( 'NONE', ( #3760, #1941, #4864, #3604 ) ) ; +#4447 = ORIENTED_EDGE ( 'NONE', *, *, #4768, .T. ) ; +#4448 = CARTESIAN_POINT ( 'NONE', ( 0.2590706846366420124, -0.2922561314451628256, 5.960264131462565729 ) ) ; +#4449 = ORIENTED_EDGE ( 'NONE', *, *, #1088, .F. ) ; +#4450 = CARTESIAN_POINT ( 'NONE', ( -0.2500000000000000000, 0.9460215340208327772, 5.518181750081197379 ) ) ; +#4451 = CARTESIAN_POINT ( 'NONE', ( 0.1875030168571394651, 1.081693438864070878, 5.679382527199898334 ) ) ; +#4452 = VERTEX_POINT ( 'NONE', #4039 ) ; +#4453 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#4454 = EDGE_CURVE ( 'NONE', #4024, #1762, #5206, .T. ) ; +#4455 = CARTESIAN_POINT ( 'NONE', ( 0.4465813368670029648, -0.7735015651656840241, 5.157008074717787771 ) ) ; +#4456 = ORIENTED_EDGE ( 'NONE', *, *, #291, .F. ) ; +#4457 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #3561, #2854, #2009, #1931 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#4458 = DIRECTION ( 'NONE', ( 0.8000000000000008216, 0.4596266658713855646, 0.3856725658119231626 ) ) ; +#4459 = CARTESIAN_POINT ( 'NONE', ( 0.6185788178289799433, -0.1727738619752643423, 6.285951639677693770 ) ) ; +#4460 = FACE_OUTER_BOUND ( 'NONE', #930, .T. ) ; +#4461 = DIRECTION ( 'NONE', ( 0.5566703992264191436, -0.3213938048432695704, -0.7660444431189782355 ) ) ; +#4462 = CIRCLE ( 'NONE', #268, 0.6296287800994468942 ) ; +#4463 = CYLINDRICAL_SURFACE ( 'NONE', #1450, 0.1874999999999998612 ) ; +#4464 = CARTESIAN_POINT ( 'NONE', ( -0.7996834935816140577, -0.8947101821780649722, 5.593666288758528005 ) ) ; +#4465 = CARTESIAN_POINT ( 'NONE', ( 0.3525540648419164813, 0.4717529452865613093, 6.223335101062728469 ) ) ; +#4466 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.8590516373556182916, 0.5118889375212473114 ) ) ; +#4467 = CARTESIAN_POINT ( 'NONE', ( 0.2315162383227017673, -0.5426578751270912937, 6.224565724080731499 ) ) ; +#4468 = EDGE_CURVE ( 'NONE', #775, #4983, #1231, .T. ) ; +#4469 = CARTESIAN_POINT ( 'NONE', ( 1.172367244546546061, 0.2562880214493527542, 5.620224793325775181 ) ) ; +#4470 = VERTEX_POINT ( 'NONE', #3234 ) ; +#4471 = CARTESIAN_POINT ( 'NONE', ( -0.4414780203617504339, 0.2548874538971590553, 6.129000000000000448 ) ) ; +#4472 = ORIENTED_EDGE ( 'NONE', *, *, #1370, .T. ) ; +#4473 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#4474 = CARTESIAN_POINT ( 'NONE', ( -0.2415131970057240174, -1.175445742454201969, 5.777581622962272512 ) ) ; +#4475 = VERTEX_POINT ( 'NONE', #747 ) ; +#4476 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.6427876096865391409, -0.7660444431189782355 ) ) ; +#4477 = ORIENTED_EDGE ( 'NONE', *, *, #4253, .T. ) ; +#4478 = CARTESIAN_POINT ( 'NONE', ( 0.7996834935816140577, 0.8947101821780630848, 5.593666288758528005 ) ) ; +#4479 = DIRECTION ( 'NONE', ( -1.000000000000000000, 7.284927983104700930E-16, 0.000000000000000000 ) ) ; +#4480 = ORIENTED_EDGE ( 'NONE', *, *, #3614, .F. ) ; +#4481 = EDGE_CURVE ( 'NONE', #435, #2152, #2984, .T. ) ; +#4482 = CARTESIAN_POINT ( 'NONE', ( -1.139322950327229522, 0.3767555181622636029, 5.776307826044980054 ) ) ; +#4483 = PLANE ( 'NONE', #5164 ) ; +#4484 = CARTESIAN_POINT ( 'NONE', ( 0.2876953965137462044, 0.2631925484106604762, 5.929924902835720602 ) ) ; +#4485 = CARTESIAN_POINT ( 'NONE', ( -0.8547343650024040729, -0.8422652096949224676, 5.720838485056285450 ) ) ; +#4486 = CARTESIAN_POINT ( 'NONE', ( -0.5285913706609596252, -1.080458275912687061, 5.522824837521429053 ) ) ; +#4487 = EDGE_CURVE ( 'NONE', #4692, #2488, #1266, .T. ) ; +#4488 = VECTOR ( 'NONE', #1062, 39.37007874015748143 ) ; +#4489 = CARTESIAN_POINT ( 'NONE', ( -0.1833342074774449437, 1.037202350387549155, 5.626846815561907356 ) ) ; +#4490 = CARTESIAN_POINT ( 'NONE', ( -1.037840268079750050, -0.3971247639353078229, 5.309607069964629389 ) ) ; +#4491 = CARTESIAN_POINT ( 'NONE', ( 0.2390743834848037541, -0.5278996433134258703, 6.211979336397377871 ) ) ; +#4492 = CARTESIAN_POINT ( 'NONE', ( 1.123866513746420326, 0.4207618514196999615, 5.800231920391211382 ) ) ; +#4493 = AXIS2_PLACEMENT_3D ( 'NONE', #588, #3451, #3073 ) ; +#4494 = CARTESIAN_POINT ( 'NONE', ( 0.2325753095138689830, 0.5406072914084122383, 6.222833236376836830 ) ) ; +#4495 = ORIENTED_EDGE ( 'NONE', *, *, #410, .F. ) ; +#4496 = DIRECTION ( 'NONE', ( -0.4999999999999998890, -0.8660254037844387076, -1.788933584601079358E-16 ) ) ; +#4497 = AXIS2_PLACEMENT_3D ( 'NONE', #2611, #1409, #3366 ) ; +#4498 = ORIENTED_EDGE ( 'NONE', *, *, #3559, .T. ) ; +#4499 = DIRECTION ( 'NONE', ( 1.665334536937740234E-16, 0.6427876096865391409, 0.7660444431189782355 ) ) ; +#4500 = CARTESIAN_POINT ( 'NONE', ( -0.3750000000000000555, -1.139901311517799387, 5.593666288758528005 ) ) ; +#4501 = ORIENTED_EDGE ( 'NONE', *, *, #2141, .F. ) ; +#4502 = CARTESIAN_POINT ( 'NONE', ( -0.01360711709466590202, -0.3899212303455139028, 5.903217354209467693 ) ) ; +#4503 = FACE_OUTER_BOUND ( 'NONE', #1294, .T. ) ; +#4504 = EDGE_CURVE ( 'NONE', #3889, #48, #2803, .T. ) ; +#4505 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#4506 = VERTEX_POINT ( 'NONE', #16 ) ; +#4507 = LINE ( 'NONE', #4954, #350 ) ; +#4508 = EDGE_CURVE ( 'NONE', #3092, #275, #1519, .T. ) ; +#4509 = CARTESIAN_POINT ( 'NONE', ( 0.6181270907463979336, -0.1686913507074999652, 6.284344565545933570 ) ) ; +#4510 = ORIENTED_EDGE ( 'NONE', *, *, #3922, .T. ) ; +#4511 = CARTESIAN_POINT ( 'NONE', ( 1.168298320091676556, -0.2740054808511839246, 5.653381578859001166 ) ) ; +#4512 = CARTESIAN_POINT ( 'NONE', ( 0.5285913706609587370, 1.080458275912685506, 5.522824837521429941 ) ) ; +#4513 = CARTESIAN_POINT ( 'NONE', ( -0.9336208310524224396, 0.7539755993497357922, 5.803613436556545047 ) ) ; +#4514 = AXIS2_PLACEMENT_3D ( 'NONE', #2925, #1275, #522 ) ; +#4515 = CARTESIAN_POINT ( 'NONE', ( -0.2307889170350229113, -0.5441127590761337673, 6.225791725370047658 ) ) ; +#4516 = CARTESIAN_POINT ( 'NONE', ( 0.3519158857339627078, 0.4717209872882219268, 6.222851426380343831 ) ) ; +#4517 = CARTESIAN_POINT ( 'NONE', ( -1.167083573008605546, -0.2791289844825458055, 5.662380614065107842 ) ) ; +#4518 = CARTESIAN_POINT ( 'NONE', ( -0.2321173084464967784, 0.5414995229950988476, 6.223590640882481040 ) ) ; +#4519 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, -0.6794999999999999929, 3.104000000000000092 ) ) ; +#4520 = ADVANCED_FACE ( 'NONE', ( #3288 ), #4913, .F. ) ; +#4521 = CARTESIAN_POINT ( 'NONE', ( -0.8936408362931392846, -0.8008785268450618888, 5.773940416537246989 ) ) ; +#4522 = CARTESIAN_POINT ( 'NONE', ( 2.392615395102125430E-08, -0.6756856458982761771, 6.316136183440345775 ) ) ; +#4523 = CARTESIAN_POINT ( 'NONE', ( 0.1833342074774130526, -1.037202350387496086, 5.626846815561841630 ) ) ; +#4524 = FACE_OUTER_BOUND ( 'NONE', #2438, .T. ) ; +#4525 = VERTEX_POINT ( 'NONE', #2460 ) ; +#4526 = CARTESIAN_POINT ( 'NONE', ( 0.8301120792519715019, -0.6957717833939421892, 5.661614436093666214 ) ) ; +#4527 = ORIENTED_EDGE ( 'NONE', *, *, #260, .T. ) ; +#4528 = DIRECTION ( 'NONE', ( -1.000000000000000000, 7.284927983104700930E-16, 0.000000000000000000 ) ) ; +#4529 = CARTESIAN_POINT ( 'NONE', ( 0.5641461062635481083, 0.04302650622351050780, 6.195676270683153852 ) ) ; +#4530 = EDGE_LOOP ( 'NONE', ( #4364, #4449 ) ) ; +#4531 = CARTESIAN_POINT ( 'NONE', ( 0.5323848659456833499, 0.01873593417275027165, 6.156259354120843241 ) ) ; +#4532 = DIRECTION ( 'NONE', ( -0.5566703992264191436, 0.3213938048432695704, 0.7660444431189782355 ) ) ; +#4533 = ORIENTED_EDGE ( 'NONE', *, *, #2747, .T. ) ; +#4534 = CARTESIAN_POINT ( 'NONE', ( -0.3357666871968280620, -0.4701445750648935440, 6.209983996369506265 ) ) ; +#4535 = CARTESIAN_POINT ( 'NONE', ( -1.004690319563052547, 0.3635548762673513346, 5.643834550590947075 ) ) ; +#4536 = ORIENTED_EDGE ( 'NONE', *, *, #4632, .F. ) ; +#4537 = EDGE_CURVE ( 'NONE', #106, #2840, #3138, .T. ) ; +#4538 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ; +#4539 = DIRECTION ( 'NONE', ( -0.5566703992264192546, 0.3213938048432691819, 0.7660444431189783465 ) ) ; +#4540 = CARTESIAN_POINT ( 'NONE', ( -0.8577574783208706810, 0.8391932340832042314, 5.725867636601324584 ) ) ; +#4541 = CARTESIAN_POINT ( 'NONE', ( 0.5310135693505733112, 0.4041799509362731246, 6.309308791426548879 ) ) ; +#4542 = CARTESIAN_POINT ( 'NONE', ( -1.165605300503664177, -0.2852397930112335334, 5.672674617219005455 ) ) ; +#4543 = LINE ( 'NONE', #4567, #902 ) ; +#4544 = DIRECTION ( 'NONE', ( -0.5000000000000003331, -0.8660254037844384856, 0.000000000000000000 ) ) ; +#4545 = CARTESIAN_POINT ( 'NONE', ( -1.129665310458910499, -0.4048121931305761478, 5.793167151937043791 ) ) ; +#4546 = CARTESIAN_POINT ( 'NONE', ( -0.2501907686768881645, -0.2992682551366181443, 5.973464259763668238 ) ) ; +#4547 = EDGE_CURVE ( 'NONE', #2501, #2175, #3996, .T. ) ; +#4548 = CARTESIAN_POINT ( 'NONE', ( -0.9236543808441181058, 0.5332721054185290965, 5.661815083166008122 ) ) ; +#4549 = EDGE_LOOP ( 'NONE', ( #4875, #2182, #3384, #4360, #369, #2655 ) ) ; +#4550 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, -1.813560433165304925E-15 ) ) ; +#4551 = ORIENTED_EDGE ( 'NONE', *, *, #707, .T. ) ; +#4552 = FACE_OUTER_BOUND ( 'NONE', #1968, .T. ) ; +#4553 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#4554 = ORIENTED_EDGE ( 'NONE', *, *, #5133, .T. ) ; +#4555 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -7.724931805341829553E-16, 3.479000000000000092 ) ) ; +#4556 = CARTESIAN_POINT ( 'NONE', ( -0.9550695643221949194, 0.1183969681640169302, 5.291451494556268287 ) ) ; +#4557 = EDGE_LOOP ( 'NONE', ( #2103, #2020, #310, #1924 ) ) ; +#4558 = CARTESIAN_POINT ( 'NONE', ( -0.2416476612724870188, -0.3060144142332240635, 5.986163717094036052 ) ) ; +#4559 = CARTESIAN_POINT ( 'NONE', ( 0.5165383366355521533, -0.4152470057635416212, 6.305523136322737976 ) ) ; +#4560 = ORIENTED_EDGE ( 'NONE', *, *, #2227, .T. ) ; +#4561 = DIRECTION ( 'NONE', ( -0.8000000000000004885, -0.4596266658713864528, 0.3856725658119229960 ) ) ; +#4562 = DIRECTION ( 'NONE', ( 0.5566703992264189216, -0.3213938048432689598, 0.7660444431189787906 ) ) ; +#4563 = CARTESIAN_POINT ( 'NONE', ( 0.3709316772611360169, 0.1201934545544571104, 5.928196182617470278 ) ) ; +#4564 = EDGE_CURVE ( 'NONE', #3027, #1810, #1072, .T. ) ; +#4565 = CARTESIAN_POINT ( 'NONE', ( 0.5078194151786449284, 0.2931896760531070845, 6.064721239031358735 ) ) ; +#4566 = CYLINDRICAL_SURFACE ( 'NONE', #4726, 0.2500000000000001665 ) ; +#4567 = CARTESIAN_POINT ( 'NONE', ( -0.6137281695052991815, 0.5564087180895094242, 5.355730255524930428 ) ) ; +#4568 = CARTESIAN_POINT ( 'NONE', ( -0.1875000000000000278, 1.066783749530899605, 5.661614086336346219 ) ) ; +#4569 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #1571, #1978, #4405, #1922 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.5000032659734363616, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#4570 = CARTESIAN_POINT ( 'NONE', ( -0.8960515357650948864, -0.7981796174553832390, 5.776419217797091221 ) ) ; +#4571 = CARTESIAN_POINT ( 'NONE', ( -0.6137281695053011799, -0.5564087180895109785, 5.355730255524930428 ) ) ; +#4572 = EDGE_CURVE ( 'NONE', #3005, #568, #2030, .T. ) ; +#4573 = CARTESIAN_POINT ( 'NONE', ( 0.2499676822388144370, 0.4734477930975836690, 6.159485386716823108 ) ) ; +#4574 = ORIENTED_EDGE ( 'NONE', *, *, #54, .T. ) ; +#4575 = CARTESIAN_POINT ( 'NONE', ( -0.7611902459681201272, -5.457431557213165569E-16, 5.020800798730772563 ) ) ; +#4576 = ORIENTED_EDGE ( 'NONE', *, *, #2217, .T. ) ; +#4577 = AXIS2_PLACEMENT_3D ( 'NONE', #4135, #3733, #2525 ) ; +#4578 = CARTESIAN_POINT ( 'NONE', ( -0.3750000000000000555, -0.8863129891663661386, 5.291451494556268287 ) ) ; +#4579 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#4580 = ORIENTED_EDGE ( 'NONE', *, *, #1339, .T. ) ; +#4581 = CARTESIAN_POINT ( 'NONE', ( -0.1027211335969461098, -0.3767721271672773709, 5.941670513692939970 ) ) ; +#4582 = AXIS2_PLACEMENT_3D ( 'NONE', #1980, #4381, #686 ) ; +#4583 = CARTESIAN_POINT ( 'NONE', ( 0.5274565576856343752, 0.01620173428540572225, 6.150277687513830749 ) ) ; +#4584 = VECTOR ( 'NONE', #609, 39.37007874015748143 ) ; +#4585 = AXIS2_PLACEMENT_3D ( 'NONE', #2355, #751, #3934 ) ; +#4586 = EDGE_CURVE ( 'NONE', #3437, #3092, #3008, .T. ) ; +#4587 = CARTESIAN_POINT ( 'NONE', ( -0.6135904484930136960, 0.1412060984789960671, 6.271836282905964843 ) ) ; +#4588 = ORIENTED_EDGE ( 'NONE', *, *, #3795, .T. ) ; +#4589 = DIRECTION ( 'NONE', ( 0.5566703992264191436, -0.3213938048432700700, 0.7660444431189782355 ) ) ; +#4590 = CARTESIAN_POINT ( 'NONE', ( 0.5318991174868418215, -0.4027099548380126959, 6.309261594104191850 ) ) ; +#4591 = ORIENTED_EDGE ( 'NONE', *, *, #4454, .T. ) ; +#4592 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2005, #2850, #4881, #1198, #37, #2081, #3310, #415, #4854, #468, #388, #2796, #4465, #3715, #4058, #2453, #1603, #4516, #4824, #853, #2906, #4907, #4439, #4090 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999990822896, 0.2499999999981645793, 0.3749999999972468689, 0.4374999999967787989, 0.4687499999965563102, 0.4843749999964436226, 0.4921874999963855024, 0.4960937499963546937, 0.4980468749963393171, 0.4990234374963534170, 0.4999999999963674613, 0.7499999999981840082, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#4593 = CYLINDRICAL_SURFACE ( 'NONE', #4856, 0.2499999999999998612 ) ; +#4594 = CARTESIAN_POINT ( 'NONE', ( -0.3842692958321584085, 0.06703743390397690072, 5.973464259756892325 ) ) ; +#4595 = CARTESIAN_POINT ( 'NONE', ( -0.9406202507489094256, 0.7451399491914646456, 5.805572500925889834 ) ) ; +#4596 = CIRCLE ( 'NONE', #487, 0.2500000000000000555 ) ; +#4597 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.7660444431189781245, 0.6427876096865391409 ) ) ; +#4598 = CARTESIAN_POINT ( 'NONE', ( -1.159755800911726364, -0.3082232700326942854, 5.707125196592041760 ) ) ; +#4599 = CARTESIAN_POINT ( 'NONE', ( 0.9031367637328661102, -1.292850939085921155E-15, 5.167302222155944591 ) ) ; +#4600 = VECTOR ( 'NONE', #4553, 39.37007874015748143 ) ; +#4601 = CARTESIAN_POINT ( 'NONE', ( -1.123814581254485523, -0.4208984067926664907, 5.800274753242916859 ) ) ; +#4602 = VECTOR ( 'NONE', #2196, 39.37007874015748854 ) ; +#4603 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, 0.9455000000000001181, 3.104000000000000092 ) ) ; +#4604 = DIRECTION ( 'NONE', ( 0.5566703992264192546, -0.3213938048432691819, -0.7660444431189783465 ) ) ; +#4605 = ADVANCED_FACE ( 'NONE', ( #1840 ), #4643, .F. ) ; +#4606 = ORIENTED_EDGE ( 'NONE', *, *, #562, .T. ) ; +#4607 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#4608 = ORIENTED_EDGE ( 'NONE', *, *, #1960, .F. ) ; +#4609 = PLANE ( 'NONE', #4174 ) ; +#4610 = DIRECTION ( 'NONE', ( 1.000000000000000000, -1.224646799147353207E-16, 0.000000000000000000 ) ) ; +#4611 = CONICAL_SURFACE ( 'NONE', #2983, 1.050000000000000044, 0.7853981633974476129 ) ; +#4612 = EDGE_LOOP ( 'NONE', ( #4655, #1664, #4867, #2435 ) ) ; +#4613 = CARTESIAN_POINT ( 'NONE', ( 0.7986823578055256556, 0.6631920684923917619, 5.610249138468685004 ) ) ; +#4614 = CARTESIAN_POINT ( 'NONE', ( 0.5350018694874364433, 0.02024565561117777635, 6.159485645265798226 ) ) ; +#4615 = CARTESIAN_POINT ( 'NONE', ( -0.5905086048356291695, 0.07874682982302369516, 6.231305296311756337 ) ) ; +#4616 = ORIENTED_EDGE ( 'NONE', *, *, #260, .F. ) ; +#4617 = CARTESIAN_POINT ( 'NONE', ( 0.6942786809891653421, 0.6895171179565235953, 5.518181750081197379 ) ) ; +#4618 = CARTESIAN_POINT ( 'NONE', ( 0.4758306217362901491, -0.4411118651367130772, 6.292649740054573115 ) ) ; +#4619 = ORIENTED_EDGE ( 'NONE', *, *, #3287, .T. ) ; +#4620 = EDGE_CURVE ( 'NONE', #1177, #762, #3519, .T. ) ; +#4621 = CARTESIAN_POINT ( 'NONE', ( 0.3941190683124687899, -0.04765669577025855030, 5.994446444353600079 ) ) ; +#4622 = DIRECTION ( 'NONE', ( 0.4999999999999997780, -0.8660254037844387076, 0.000000000000000000 ) ) ; +#4623 = CARTESIAN_POINT ( 'NONE', ( 0.2463178198459431423, -1.174449275548763660, 5.774258526519696844 ) ) ; +#4624 = CARTESIAN_POINT ( 'NONE', ( -0.2453168506545183314, -0.4408787698008996281, 6.122637038287864542 ) ) ; +#4625 = LINE ( 'NONE', #2666, #3043 ) ; +#4626 = ORIENTED_EDGE ( 'NONE', *, *, #3219, .T. ) ; +#4627 = CYLINDRICAL_SURFACE ( 'NONE', #3431, 0.1874999999999999167 ) ; +#4628 = CARTESIAN_POINT ( 'NONE', ( -0.7105232702080964691, 0.4102208013201370518, 5.135162841671623291 ) ) ; +#4629 = EDGE_LOOP ( 'NONE', ( #1289, #4220 ) ) ; +#4630 = AXIS2_PLACEMENT_3D ( 'NONE', #5205, #5131, #292 ) ; +#4631 = EDGE_LOOP ( 'NONE', ( #4374, #4811 ) ) ; +#4632 = EDGE_CURVE ( 'NONE', #139, #1581, #5188, .T. ) ; +#4633 = CARTESIAN_POINT ( 'NONE', ( -1.017611827438179128, 0.3710121115558701055, 5.661614086336346219 ) ) ; +#4634 = ORIENTED_EDGE ( 'NONE', *, *, #4253, .F. ) ; +#4635 = CARTESIAN_POINT ( 'NONE', ( -0.3828194151786392663, -0.5096960269992167891, 6.064721239031350741 ) ) ; +#4636 = CARTESIAN_POINT ( 'NONE', ( -0.5944879663572678608, -0.3214835422170072565, 6.316086704514482619 ) ) ; +#4637 = ORIENTED_EDGE ( 'NONE', *, *, #2141, .T. ) ; +#4638 = CARTESIAN_POINT ( 'NONE', ( 0.6183250774700879138, -0.2360515692460259107, 6.304736219313713086 ) ) ; +#4639 = ORIENTED_EDGE ( 'NONE', *, *, #4537, .F. ) ; +#4640 = CARTESIAN_POINT ( 'NONE', ( 1.155834277804973054, -0.3225521942620483418, 5.725042583526628093 ) ) ; +#4641 = CARTESIAN_POINT ( 'NONE', ( -0.8256951686201279283, 0.8707607534074968125, 5.663349676273857547 ) ) ; +#4642 = EDGE_CURVE ( 'NONE', #1101, #2966, #3825, .T. ) ; +#4643 = CYLINDRICAL_SURFACE ( 'NONE', #1526, 0.1875000000000000278 ) ; +#4644 = CARTESIAN_POINT ( 'NONE', ( 2.377962321903370166E-16, 1.941753592594208655, 4.129000000000000448 ) ) ; +#4645 = FACE_OUTER_BOUND ( 'NONE', #4549, .T. ) ; +#4646 = CARTESIAN_POINT ( 'NONE', ( 0.6250000000000000000, 1.082531754730549300, 4.849972727250857929 ) ) ; +#4647 = CARTESIAN_POINT ( 'NONE', ( 0.9061192675221877435, -0.7867331016052356851, 5.785842532529761328 ) ) ; +#4648 = ORIENTED_EDGE ( 'NONE', *, *, #3878, .F. ) ; +#4649 = EDGE_CURVE ( 'NONE', #1860, #2218, #2634, .T. ) ; +#4650 = CARTESIAN_POINT ( 'NONE', ( -0.6250000000000000000, -1.082531754730549300, 4.849972727250857929 ) ) ; +#4651 = CARTESIAN_POINT ( 'NONE', ( -0.4414780203617504339, -0.2548874538971610537, 6.129000000000000448 ) ) ; +#4652 = VERTEX_POINT ( 'NONE', #4272 ) ; +#4653 = CARTESIAN_POINT ( 'NONE', ( 0.8198614818896474699, 0.8762554265265174447, 5.649528895308607801 ) ) ; +#4654 = CARTESIAN_POINT ( 'NONE', ( 0.8898490325666070788, -1.005500461357157865E-15, 5.130805054534240739 ) ) ; +#4655 = ORIENTED_EDGE ( 'NONE', *, *, #3025, .F. ) ; +#4656 = CARTESIAN_POINT ( 'NONE', ( 0.3858400872864291564, -0.05626580631046031872, 5.986163717094036052 ) ) ; +#4657 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #3364, #4594, #2954, #1739, #1329, #4985, #3484, #592, #1376, #1453, #1883, #971, #3077, #3101, #243, #5136, #3023, #3410, #2676, #2601, #3837, #3881, #3000, #4732, #2203, #5031, #4710, #4235, #1857, #1479 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1250000000000383860, 0.1875000000000606459, 0.2187500000000746903, 0.2343750000000816569, 0.2421875000000880684, 0.2460937500000940636, 0.2480468750000971168, 0.2500000000001001976, 0.5000000000001076916, 0.6250000000001113554, 0.6875000000001116884, 0.7187500000001134648, 0.7343750000001121325, 0.7421875000001115774, 0.7460937500001112443, 0.7480468750001111333, 0.7500000000001110223, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#4658 = CARTESIAN_POINT ( 'NONE', ( -0.6119068065669963641, -0.2721198777858920281, 6.311327930658206853 ) ) ; +#4659 = ORIENTED_EDGE ( 'NONE', *, *, #57, .F. ) ; +#4660 = CARTESIAN_POINT ( 'NONE', ( -0.08637540179972975907, 0.3802383382281908086, 5.931430154266288390 ) ) ; +#4661 = CARTESIAN_POINT ( 'NONE', ( 0.2419139240620819808, 1.175363359067795876, 5.777310701146357808 ) ) ; +#4662 = ORIENTED_EDGE ( 'NONE', *, *, #219, .F. ) ; +#4663 = VECTOR ( 'NONE', #2536, 39.37007874015748143 ) ; +#4664 = CARTESIAN_POINT ( 'NONE', ( -0.4475981722270840901, 0.01239640756966105782, 6.055046826863106801 ) ) ; +#4665 = VECTOR ( 'NONE', #130, 39.37007874015748143 ) ; +#4666 = PLANE ( 'NONE', #3959 ) ; +#4667 = TOROIDAL_SURFACE ( 'NONE', #480, 0.8594421130351397320, 0.2999999999999999889 ) ; +#4668 = CARTESIAN_POINT ( 'NONE', ( 1.048626403882720659, 0.4033521423446653764, 5.713381027863315254 ) ) ; +#4669 = CARTESIAN_POINT ( 'NONE', ( -0.8172015034638457909, 0.6883143754788486612, 5.643846109716827542 ) ) ; +#4670 = DIRECTION ( 'NONE', ( 0.6197348675208463886, 0.7848112473575534764, 0.000000000000000000 ) ) ; +#4671 = CARTESIAN_POINT ( 'NONE', ( -0.2500000018946877955, -0.4732702046203651203, 6.159280621619735108 ) ) ; +#4672 = CARTESIAN_POINT ( 'NONE', ( 0.7996834935816121703, -0.8947101821780669706, 5.593666288758528005 ) ) ; +#4673 = AXIS2_PLACEMENT_3D ( 'NONE', #3241, #3960, #3565 ) ; +#4674 = ORIENTED_EDGE ( 'NONE', *, *, #550, .T. ) ; +#4675 = CARTESIAN_POINT ( 'NONE', ( -0.2891266074026009325, -0.2616161255087667836, 5.928591840970842242 ) ) ; +#4676 = VECTOR ( 'NONE', #91, 39.37007874015748143 ) ; +#4677 = CARTESIAN_POINT ( 'NONE', ( -0.2500000000000000000, 0.9058473084154233801, 5.470303972386260760 ) ) ; +#4678 = EDGE_CURVE ( 'NONE', #2583, #1177, #4171, .T. ) ; +#4679 = EDGE_LOOP ( 'NONE', ( #4166, #4533, #4438, #5029 ) ) ; +#4680 = CARTESIAN_POINT ( 'NONE', ( 0.8038811766292079941, 0.8909583327956434040, 5.606856458477816219 ) ) ; +#4681 = AXIS2_PLACEMENT_3D ( 'NONE', #708, #1622, #334 ) ; +#4682 = AXIS2_PLACEMENT_3D ( 'NONE', #3496, #2313, #3441 ) ; +#4683 = DIRECTION ( 'NONE', ( 0.8000000000000008216, 0.4596266658713855646, 0.3856725658119231626 ) ) ; +#4684 = EDGE_LOOP ( 'NONE', ( #2199, #668, #1220, #1705, #1734, #4930, #5010 ) ) ; +#4685 = CARTESIAN_POINT ( 'NONE', ( 0.3622147817746148579, -0.1449044004027176258, 5.914091296676502019 ) ) ; +#4686 = CARTESIAN_POINT ( 'NONE', ( -0.4664504729621785084, -0.4458233889315086906, 6.289040576133977822 ) ) ; +#4687 = ORIENTED_EDGE ( 'NONE', *, *, #4586, .F. ) ; +#4688 = CARTESIAN_POINT ( 'NONE', ( 0.2636294823776066942, -0.4374822580196867094, 6.130089832682232398 ) ) ; +#4689 = CARTESIAN_POINT ( 'NONE', ( -0.5999999999999999778, 1.039230484541330712, 5.473691469039889235 ) ) ; +#4690 = CARTESIAN_POINT ( 'NONE', ( 1.115620250748909470, -0.4420310578669133794, 5.805572500925889834 ) ) ; +#4691 = CARTESIAN_POINT ( 'NONE', ( -0.8254427960204998582, 0.8710000670205437778, 5.662768512582341707 ) ) ; +#4692 = VERTEX_POINT ( 'NONE', #4668 ) ; +#4693 = CARTESIAN_POINT ( 'NONE', ( -0.3812802425491124692, 0.4711274618017340932, 6.243538018999158723 ) ) ; +#4694 = ADVANCED_FACE ( 'NONE', ( #2288 ), #3061, .F. ) ; +#4695 = CARTESIAN_POINT ( 'NONE', ( 1.048626403882710667, -0.4033521423446669307, 5.713381027863315254 ) ) ; +#4696 = DIRECTION ( 'NONE', ( 0.5566703992264192546, 0.3213938048432692929, -0.7660444431189783465 ) ) ; +#4697 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#4698 = CIRCLE ( 'NONE', #3589, 0.3899210354891938790 ) ; +#4699 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#4700 = ORIENTED_EDGE ( 'NONE', *, *, #3757, .F. ) ; +#4701 = CARTESIAN_POINT ( 'NONE', ( 0.4551545404795425132, 0.4509680880017777893, 6.284344565543436900 ) ) ; +#4702 = DIRECTION ( 'NONE', ( 0.5000000000000005551, 0.8660254037844384856, 0.000000000000000000 ) ) ; +#4703 = ORIENTED_EDGE ( 'NONE', *, *, #2905, .F. ) ; +#4704 = CARTESIAN_POINT ( 'NONE', ( -2.250000000000000000, -4.553142873025859947E-16, 3.104000000000000092 ) ) ; +#4705 = ADVANCED_FACE ( 'NONE', ( #1086 ), #225, .F. ) ; +#4706 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.7660444431189782355, 0.6427876096865392519 ) ) ; +#4707 = FACE_OUTER_BOUND ( 'NONE', #4126, .T. ) ; +#4708 = EDGE_LOOP ( 'NONE', ( #887, #4923, #1217, #1452 ) ) ; +#4709 = CIRCLE ( 'NONE', #1388, 0.1875000000000000278 ) ; +#4710 = CARTESIAN_POINT ( 'NONE', ( -0.2893819113631030948, 0.2613331970644629521, 5.928356580365031547 ) ) ; +#4711 = ORIENTED_EDGE ( 'NONE', *, *, #2772, .T. ) ; +#4712 = CARTESIAN_POINT ( 'NONE', ( 0.2591537893083770694, -0.4328900095422898997, 6.122637038285246192 ) ) ; +#4713 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.294298002108009606E-15, 6.079000000000000625 ) ) ; +#4714 = CARTESIAN_POINT ( 'NONE', ( 1.155784830624474457, -0.3227295437298395298, 5.725254952226157990 ) ) ; +#4715 = PLANE ( 'NONE', #5249 ) ; +#4716 = EDGE_LOOP ( 'NONE', ( #401, #1026 ) ) ; +#4717 = CARTESIAN_POINT ( 'NONE', ( -0.3193348833045496771, 0.4670515518460991444, 6.195676070643507671 ) ) ; +#4718 = CARTESIAN_POINT ( 'NONE', ( -0.3441902455954630180, 1.149579521453993225, 5.658180384900348692 ) ) ; +#4719 = CARTESIAN_POINT ( 'NONE', ( -1.159736011725109428, 0.3082312259609760186, 5.706894369577656612 ) ) ; +#4720 = EDGE_CURVE ( 'NONE', #2474, #5217, #4365, .T. ) ; +#4721 = CARTESIAN_POINT ( 'NONE', ( 0.8976798897624821416, -0.7963491312021691027, 5.778047900398804337 ) ) ; +#4722 = VERTEX_POINT ( 'NONE', #1918 ) ; +#4723 = CARTESIAN_POINT ( 'NONE', ( 0.5857136245854085432, -0.07082999378796563106, 6.224565724081161378 ) ) ; +#4724 = FACE_OUTER_BOUND ( 'NONE', #1615, .T. ) ; +#4725 = ORIENTED_EDGE ( 'NONE', *, *, #908, .F. ) ; +#4726 = AXIS2_PLACEMENT_3D ( 'NONE', #1307, #2537, #4203 ) ; +#4727 = EDGE_CURVE ( 'NONE', #3620, #1126, #2816, .T. ) ; +#4728 = DIRECTION ( 'NONE', ( 0.5566703992264190326, 0.3213938048432700145, -0.7660444431189781245 ) ) ; +#4729 = DIRECTION ( 'NONE', ( -0.6634139481689388385, -0.3830222215594888957, -0.6427876096865389188 ) ) ; +#4730 = ORIENTED_EDGE ( 'NONE', *, *, #2227, .F. ) ; +#4731 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #2926, #2208, #1761, #1812 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 2.268928027592555630, 3.054326190990073631 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9492530216741822402, 0.9492530216741822402, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#4732 = CARTESIAN_POINT ( 'NONE', ( -0.2902714889195475712, 0.2603435762295527867, 5.927542632677599954 ) ) ; +#4733 = CARTESIAN_POINT ( 'NONE', ( -0.08200290702893002492, 0.3811990496750392587, 5.928591840970837801 ) ) ; +#4734 = CARTESIAN_POINT ( 'NONE', ( -0.8301118274381791284, -0.6957716379750354951, 5.661614086336346219 ) ) ; +#4735 = FACE_OUTER_BOUND ( 'NONE', #1693, .T. ) ; +#4736 = EDGE_CURVE ( 'NONE', #2152, #2443, #1998, .T. ) ; +#4737 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#4738 = ORIENTED_EDGE ( 'NONE', *, *, #2037, .T. ) ; +#4739 = CARTESIAN_POINT ( 'NONE', ( -0.2930997104677451337, 0.4578962213347720911, 6.169330842519072711 ) ) ; +#4740 = CARTESIAN_POINT ( 'NONE', ( 0.3348273294670656153, -0.4700606986700199830, 6.209224166976970771 ) ) ; +#4741 = DIRECTION ( 'NONE', ( -2.229460709826110325E-31, -2.220446049250315053E-16, 1.000000000000000000 ) ) ; +#4742 = DIRECTION ( 'NONE', ( 0.6634139481689371731, -0.3830222215594895618, -0.6427876096865402511 ) ) ; +#4743 = CIRCLE ( 'NONE', #475, 0.1875000000000001110 ) ; +#4744 = CARTESIAN_POINT ( 'NONE', ( 0.8126189278061434207, -0.6820761622563825677, 5.635645488057713592 ) ) ; +#4745 = CARTESIAN_POINT ( 'NONE', ( -0.2339660810190994644, -0.5378388411927622625, 6.220460831039059890 ) ) ; +#4746 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, 0.9455000000000001181, 3.953999999999999737 ) ) ; +#4747 = CARTESIAN_POINT ( 'NONE', ( -0.2890457685120600417, -0.2617055376821960100, 5.928666586421556417 ) ) ; +#4748 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#4749 = ORIENTED_EDGE ( 'NONE', *, *, #2058, .T. ) ; +#4750 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -6.892264536872972008E-16, 3.104000000000000092 ) ) ; +#4751 = ORIENTED_EDGE ( 'NONE', *, *, #1206, .F. ) ; +#4752 = CARTESIAN_POINT ( 'NONE', ( -0.2335254650951300581, 0.3724053744930381216, 6.045168944976467174 ) ) ; +#4753 = AXIS2_PLACEMENT_3D ( 'NONE', #4122, #2826, #5256 ) ; +#4754 = AXIS2_PLACEMENT_3D ( 'NONE', #2224, #3099, #3125 ) ; +#4755 = EDGE_CURVE ( 'NONE', #3209, #4475, #1943, .T. ) ; +#4756 = LINE ( 'NONE', #3509, #2456 ) ; +#4757 = EDGE_CURVE ( 'NONE', #830, #5033, #151, .T. ) ; +#4758 = VERTEX_POINT ( 'NONE', #3652 ) ; +#4759 = ORIENTED_EDGE ( 'NONE', *, *, #4999, .F. ) ; +#4760 = CARTESIAN_POINT ( 'NONE', ( 0.8736264038827145084, 0.7064610336692165315, 5.713381027863315254 ) ) ; +#4761 = CARTESIAN_POINT ( 'NONE', ( 0.06494014366140817007, 0.3844701958334750813, 5.918960724778123961 ) ) ; +#4762 = CARTESIAN_POINT ( 'NONE', ( -0.8573980736490636190, -0.7067151167014380508, 5.696783350770202148 ) ) ; +#4763 = LINE ( 'NONE', #3160, #760 ) ; +#4764 = DIRECTION ( 'NONE', ( 0.7980483689013628812, 0.4630069900918588610, 0.3856725658119227740 ) ) ; +#4765 = EDGE_LOOP ( 'NONE', ( #3122, #4335, #607, #5071 ) ) ; +#4766 = CARTESIAN_POINT ( 'NONE', ( -0.5010724687543518518, 0.4263448826667992075, 6.301207040980266960 ) ) ; +#4767 = CARTESIAN_POINT ( 'NONE', ( -0.3750000000000000555, 1.139901311517799387, 5.593666288758528005 ) ) ; +#4768 = EDGE_CURVE ( 'NONE', #2840, #2966, #1195, .T. ) ; +#4769 = CARTESIAN_POINT ( 'NONE', ( -1.140261818004141725, 0.3739071483840713528, 5.774258526520532619 ) ) ; +#4770 = CARTESIAN_POINT ( 'NONE', ( 0.9406202507489094256, -0.7451399491914665330, 5.805572500925889834 ) ) ; +#4771 = CARTESIAN_POINT ( 'NONE', ( 0.8112434049338351771, -0.6806282052410397299, 5.633394171322609445 ) ) ; +#4772 = CARTESIAN_POINT ( 'NONE', ( -0.2499999047389467322, -0.4827799057759823986, 6.169330842519816116 ) ) ; +#4773 = CARTESIAN_POINT ( 'NONE', ( 0.5135891943027791617, 0.4174594402647835989, 6.304736219312959911 ) ) ; +#4774 = CARTESIAN_POINT ( 'NONE', ( -0.2861083594991366552, -0.2649224613343538759, 5.931430154265700416 ) ) ; +#4775 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, -0.9455000000000001181, 3.104000000000000092 ) ) ; +#4776 = ORIENTED_EDGE ( 'NONE', *, *, #3397, .T. ) ; +#4777 = LINE ( 'NONE', #5180, #3047 ) ; +#4778 = ORIENTED_EDGE ( 'NONE', *, *, #1369, .F. ) ; +#4779 = FACE_OUTER_BOUND ( 'NONE', #1961, .T. ) ; +#4780 = DIRECTION ( 'NONE', ( 0.5566703992264190326, -0.3213938048432700145, 0.7660444431189781245 ) ) ; +#4781 = ORIENTED_EDGE ( 'NONE', *, *, #1051, .T. ) ; +#4782 = ORIENTED_EDGE ( 'NONE', *, *, #117, .F. ) ; +#4783 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#4784 = ADVANCED_FACE ( 'NONE', ( #1973 ), #2367, .F. ) ; +#4785 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#4786 = CARTESIAN_POINT ( 'NONE', ( 3.933861110876538837E-16, 0.5097749077943188878, 6.129000000000000448 ) ) ; +#4787 = CARTESIAN_POINT ( 'NONE', ( -0.4435780458080259003, -0.01414589210556923063, 6.050374985488424784 ) ) ; +#4788 = EDGE_CURVE ( 'NONE', #2386, #3092, #3553, .T. ) ; +#4789 = FACE_BOUND ( 'NONE', #4417, .T. ) ; +#4790 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #470, #2482, #2960, #4599 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 3.054326190990071854, 3.839724354387423766 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9492530216742034455, 0.9492530216742034455, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#4791 = ORIENTED_EDGE ( 'NONE', *, *, #534, .F. ) ; +#4792 = CARTESIAN_POINT ( 'NONE', ( -0.6116269271103335070, 0.2749606733714261564, 6.311932765467518358 ) ) ; +#4793 = EDGE_CURVE ( 'NONE', #2774, #1561, #2884, .T. ) ; +#4794 = CARTESIAN_POINT ( 'NONE', ( -0.9406202507489094256, -0.7451399491914646456, 5.805572500925889834 ) ) ; +#4795 = PLANE ( 'NONE', #3055 ) ; +#4796 = LINE ( 'NONE', #4378, #4488 ) ; +#4797 = CARTESIAN_POINT ( 'NONE', ( 1.050000000000000044, -1.199016778936287624E-15, 6.229000000000000981 ) ) ; +#4798 = ORIENTED_EDGE ( 'NONE', *, *, #2155, .F. ) ; +#4799 = CARTESIAN_POINT ( 'NONE', ( -0.5352280203617504339, 0.09250769068757691560, 6.129000000000000448 ) ) ; +#4800 = CARTESIAN_POINT ( 'NONE', ( -0.2332004477707225465, -0.3536309366723722758, 6.026299417993769225 ) ) ; +#4801 = CARTESIAN_POINT ( 'NONE', ( 0.8953428522355405539, 0.7989763452974005808, 5.775699719081549333 ) ) ; +#4802 = EDGE_CURVE ( 'NONE', #762, #3209, #356, .T. ) ; +#4803 = CARTESIAN_POINT ( 'NONE', ( -0.2355435453642239219, 0.3857250551360528745, 6.060059581942129014 ) ) ; +#4804 = CARTESIAN_POINT ( 'NONE', ( 1.166861813925205604, 0.2800596304550607707, 5.663977977645711093 ) ) ; +#4805 = VERTEX_POINT ( 'NONE', #2950 ) ; +#4806 = ORIENTED_EDGE ( 'NONE', *, *, #2559, .F. ) ; +#4807 = CARTESIAN_POINT ( 'NONE', ( 0.2755728805764351974, -0.2767449928517161095, 5.940918221904689211 ) ) ; +#4808 = CARTESIAN_POINT ( 'NONE', ( -0.05875207217736735932, 1.204307028110112032, 5.825994415577063101 ) ) ; +#4809 = CARTESIAN_POINT ( 'NONE', ( -0.2014820094166768216, 0.3855639764543722925, 6.039897479786180412 ) ) ; +#4810 = CARTESIAN_POINT ( 'NONE', ( -0.3055260323554199187, -1.160474737946984192, 5.716802663694027231 ) ) ; +#4811 = ORIENTED_EDGE ( 'NONE', *, *, #2338, .F. ) ; +#4812 = CARTESIAN_POINT ( 'NONE', ( -0.3971812163927807005, -0.04447244263206365233, 5.997509978053881419 ) ) ; +#4813 = CARTESIAN_POINT ( 'NONE', ( 0.4414780203617504339, -0.2548874538971618309, 6.129000000000000448 ) ) ; +#4814 = ORIENTED_EDGE ( 'NONE', *, *, #972, .F. ) ; +#4815 = CIRCLE ( 'NONE', #4909, 0.1875000000000000555 ) ; +#4816 = CARTESIAN_POINT ( 'NONE', ( -0.6202599645394213379, 0.2062995456775501002, 6.297283147371838474 ) ) ; +#4817 = DIRECTION ( 'NONE', ( 0.5000000000000002220, 0.8660254037844384856, 0.000000000000000000 ) ) ; +#4818 = ADVANCED_FACE ( 'NONE', ( #1299 ), #3708, .F. ) ; +#4819 = CARTESIAN_POINT ( 'NONE', ( 0.4475981722445250277, -0.01239640756323451797, 6.055046826883425659 ) ) ; +#4820 = CARTESIAN_POINT ( 'NONE', ( 0.2335285503155902498, 0.3477487759747887042, 6.020663318477666337 ) ) ; +#4821 = CARTESIAN_POINT ( 'NONE', ( -0.06917191985653770026, 0.6684528838396771588, 6.312830053434807631 ) ) ; +#4822 = AXIS2_PLACEMENT_3D ( 'NONE', #1970, #3915, #3517 ) ; +#4823 = CARTESIAN_POINT ( 'NONE', ( 0.5664780203617503229, -0.03838110295105234132, 6.129000000000000448 ) ) ; +#4824 = CARTESIAN_POINT ( 'NONE', ( 0.3519503250206105216, 0.4717227403894096449, 6.222877651799252341 ) ) ; +#4825 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ; +#4826 = DIRECTION ( 'NONE', ( 1.000000000000000000, -5.463695987328526437E-16, 0.000000000000000000 ) ) ; +#4827 = AXIS2_PLACEMENT_3D ( 'NONE', #4110, #3998, #1974 ) ; +#4828 = VECTOR ( 'NONE', #5128, 39.37007874015748854 ) ; +#4829 = AXIS2_PLACEMENT_3D ( 'NONE', #20, #396, #4972 ) ; +#4830 = CARTESIAN_POINT ( 'NONE', ( 0.8959413249081153996, 0.7983048590168287939, 5.776307826044977389 ) ) ; +#4831 = CARTESIAN_POINT ( 'NONE', ( -0.1330462554369709893, -0.6394115983033068495, 6.296753688892519740 ) ) ; +#4832 = DIRECTION ( 'NONE', ( 0.4044817466520060911, 0.7005829359354771579, -0.5878588831525550784 ) ) ; +#4833 = EDGE_CURVE ( 'NONE', #64, #2718, #1602, .T. ) ; +#4834 = ORIENTED_EDGE ( 'NONE', *, *, #2475, .T. ) ; +#4835 = ORIENTED_EDGE ( 'NONE', *, *, #4279, .T. ) ; +#4836 = CARTESIAN_POINT ( 'NONE', ( 0.2921593599974520727, -0.2582206145671233077, 5.925849738106188980 ) ) ; +#4837 = FACE_OUTER_BOUND ( 'NONE', #5167, .T. ) ; +#4838 = ORIENTED_EDGE ( 'NONE', *, *, #358, .F. ) ; +#4839 = AXIS2_PLACEMENT_3D ( 'NONE', #132, #1779, #3758 ) ; +#4840 = CARTESIAN_POINT ( 'NONE', ( -0.2234500486460604951, 0.4038561702947055521, 6.071486235015212785 ) ) ; +#4841 = CARTESIAN_POINT ( 'NONE', ( 0.1875000000295499736, 1.066784040100659192, 5.661614435832721171 ) ) ; +#4842 = EDGE_LOOP ( 'NONE', ( #5234, #811, #1904, #5027, #4634, #2917, #1890, #1728, #2249, #4659, #4065, #2464, #4011, #3800, #2927, #4456, #352, #662 ) ) ; +#4843 = CYLINDRICAL_SURFACE ( 'NONE', #673, 0.2500000000000000555 ) ; +#4844 = VECTOR ( 'NONE', #694, 39.37007874015748143 ) ; +#4845 = CARTESIAN_POINT ( 'NONE', ( 0.4456007110395361903, 0.7718030714092940503, 5.117418135287730152 ) ) ; +#4846 = VERTEX_POINT ( 'NONE', #2 ) ; +#4847 = DIRECTION ( 'NONE', ( -0.5566703992264191436, -0.3213938048432695704, -0.7660444431189782355 ) ) ; +#4848 = CARTESIAN_POINT ( 'NONE', ( -1.048626403882720659, -0.4033521423446669307, 5.713381027863315254 ) ) ; +#4849 = DIRECTION ( 'NONE', ( 1.000000000000000000, -6.106226635438359986E-16, -1.355854680848609880E-31 ) ) ; +#4850 = CYLINDRICAL_SURFACE ( 'NONE', #1253, 0.05000000000000005135 ) ; +#4851 = CARTESIAN_POINT ( 'NONE', ( 0.4449245162833039835, 0.7706318677356882585, 5.130805054534240739 ) ) ; +#4852 = EDGE_CURVE ( 'NONE', #2494, #1314, #3619, .T. ) ; +#4853 = CARTESIAN_POINT ( 'NONE', ( -0.2244869613940376762, -0.5551408622665195969, 6.234904180708321420 ) ) ; +#4854 = CARTESIAN_POINT ( 'NONE', ( 0.3561296384620595279, 0.4719010535862796507, 6.225996798345096117 ) ) ; +#4855 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #581, #3471, #4301, #1364, #2165, #2215, #3798, #2989, #3012, #627, #175, #3871, #2263, #3895, #603, #961, #2189, #4624, #3500, #2565, #2614, #1821, #3848, #5122, #3824, #3444, #200, #4671, #1012 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 4 ), + ( 0.000000000000000000, 0.1402142008308476240, 0.2103213012462714360, 0.2453748514539796644, 0.2497565452299408961, 0.2519473921179258835, 0.2541382390059108709, 0.2629016265578507650, 0.2804284016617303865, 0.4206426024928084928, 0.4907497029083506268, 0.5258032531161246359, 0.5433300282200115294, 0.5520934157719578073, 0.5564751095479310017, 0.5586659564359148789, 0.5608568033238987560 ), + .UNSPECIFIED. ) ; +#4856 = AXIS2_PLACEMENT_3D ( 'NONE', #2953, #4140, #4561 ) ; +#4857 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, 0.6794999999999999929, 3.479000000000000092 ) ) ; +#4858 = CARTESIAN_POINT ( 'NONE', ( -0.4515683818664338323, -0.7821393804843288500, 5.167302222155944591 ) ) ; +#4859 = CARTESIAN_POINT ( 'NONE', ( -0.1637340863822633608, -0.6190875991582238669, 6.283961874399460967 ) ) ; +#4860 = CARTESIAN_POINT ( 'NONE', ( 1.131676659986936784, 0.3991587763969499103, 5.790305030079281323 ) ) ; +#4861 = ORIENTED_EDGE ( 'NONE', *, *, #1500, .F. ) ; +#4862 = CARTESIAN_POINT ( 'NONE', ( 0.1441924260139419434, -0.3622802205436830847, 5.986163717094036052 ) ) ; +#4863 = ADVANCED_FACE ( 'NONE', ( #2499 ), #4137, .F. ) ; +#4864 = ORIENTED_EDGE ( 'NONE', *, *, #3132, .T. ) ; +#4865 = CYLINDRICAL_SURFACE ( 'NONE', #3987, 0.05000000000000005135 ) ; +#4866 = CARTESIAN_POINT ( 'NONE', ( -0.2866399855243935146, -1.165261999697109863, 5.738551864797292623 ) ) ; +#4867 = ORIENTED_EDGE ( 'NONE', *, *, #392, .F. ) ; +#4868 = CARTESIAN_POINT ( 'NONE', ( 0.08293851104799000729, -0.3809974666184104408, 5.929187335109848966 ) ) ; +#4869 = EDGE_CURVE ( 'NONE', #5103, #695, #4432, .T. ) ; +#4870 = CARTESIAN_POINT ( 'NONE', ( 0.4515683818664330551, -0.7821393804843288500, 5.167302222155944591 ) ) ; +#4871 = CIRCLE ( 'NONE', #2489, 0.3899210354891941011 ) ; +#4872 = EDGE_LOOP ( 'NONE', ( #1637, #224, #395, #4953, #319, #1927, #1448 ) ) ; +#4873 = CARTESIAN_POINT ( 'NONE', ( -0.6196111875823717696, 0.1852886456374674140, 6.290540039405017936 ) ) ; +#4874 = CARTESIAN_POINT ( 'NONE', ( -0.2508955396664194759, 1.173480576077953863, 5.770936376842041859 ) ) ; +#4875 = ORIENTED_EDGE ( 'NONE', *, *, #1991, .T. ) ; +#4876 = CARTESIAN_POINT ( 'NONE', ( -1.144857045804797302, 0.3596080800691680568, 5.762979355565345685 ) ) ; +#4877 = FACE_OUTER_BOUND ( 'NONE', #873, .T. ) ; +#4878 = AXIS2_PLACEMENT_3D ( 'NONE', #2992, #2168, #1337 ) ; +#4879 = CARTESIAN_POINT ( 'NONE', ( 0.3705998951863849755, 0.1212106952848231445, 5.927542632676981782 ) ) ; +#4880 = CARTESIAN_POINT ( 'NONE', ( -0.8504492936297572969, -0.8465912741572788613, 5.713425458223563069 ) ) ; +#4881 = CARTESIAN_POINT ( 'NONE', ( 0.4070399262705517440, 0.4670435106376101264, 6.259648644087803859 ) ) ; +#4882 = CARTESIAN_POINT ( 'NONE', ( -0.2325546229259503606, 0.5406477347599454308, 6.222867768771134678 ) ) ; +#4883 = CARTESIAN_POINT ( 'NONE', ( 0.2499916534330773599, 0.4719379028038595547, 6.157868532995312449 ) ) ; +#4884 = CARTESIAN_POINT ( 'NONE', ( 0.2325487142097359961, -0.5406592925327465826, 6.222877651799255005 ) ) ; +#4885 = CARTESIAN_POINT ( 'NONE', ( 1.142113037291378808, 0.3683335956660538923, 5.770372557013477177 ) ) ; +#4886 = CARTESIAN_POINT ( 'NONE', ( -0.5844990392303353044, 0.06893655214331224912, 6.222877651799231913 ) ) ; +#4887 = ORIENTED_EDGE ( 'NONE', *, *, #578, .F. ) ; +#4888 = DIRECTION ( 'NONE', ( -0.5566703992264190326, 0.3213938048432700145, -0.7660444431189781245 ) ) ; +#4889 = EDGE_CURVE ( 'NONE', #4692, #435, #3790, .T. ) ; +#4890 = VERTEX_POINT ( 'NONE', #3385 ) ; +#4891 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.360911383585519550E-15, 6.378999999999999559 ) ) ; +#4892 = CARTESIAN_POINT ( 'NONE', ( -0.3530231993647860445, -1.146956406594996425, 5.642743906591775271 ) ) ; +#4893 = ORIENTED_EDGE ( 'NONE', *, *, #208, .T. ) ; +#4894 = CIRCLE ( 'NONE', #1487, 0.2500000000000000000 ) ; +#4895 = DIRECTION ( 'NONE', ( 0.6634139481689380613, -0.3830222215594901169, 0.6427876096865391409 ) ) ; +#4896 = CARTESIAN_POINT ( 'NONE', ( 0.9736823578055235906, -0.3600831771678421611, 5.610249138468685004 ) ) ; +#4897 = LINE ( 'NONE', #843, #1335 ) ; +#4898 = EDGE_LOOP ( 'NONE', ( #5118, #1695, #3163, #61, #2192, #4637 ) ) ; +#4899 = CARTESIAN_POINT ( 'NONE', ( -0.2352640473520499209, 0.3281021980179758546, 6.002107703384715442 ) ) ; +#4900 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#4901 = ORIENTED_EDGE ( 'NONE', *, *, #621, .T. ) ; +#4902 = ADVANCED_FACE ( 'NONE', ( #1760 ), #4372, .T. ) ; +#4903 = CARTESIAN_POINT ( 'NONE', ( 1.170411020690666604, -0.2648293823415646120, 5.636193577748072947 ) ) ; +#4904 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, -0.8097085448544685260, 5.355730255524930428 ) ) ; +#4905 = CARTESIAN_POINT ( 'NONE', ( 0.3776548003634165318, 0.09942695237930519736, 5.941670513695965106 ) ) ; +#4906 = CARTESIAN_POINT ( 'NONE', ( -0.8200194845268257149, -0.8761076370960841908, 5.649915673849371878 ) ) ; +#4907 = CARTESIAN_POINT ( 'NONE', ( 0.3026661527396272144, 0.4621450226188236754, 6.179736733210903665 ) ) ; +#4908 = CARTESIAN_POINT ( 'NONE', ( 0.3349268464119189437, -1.152333534659689240, 5.674432225310489741 ) ) ; +#4909 = AXIS2_PLACEMENT_3D ( 'NONE', #3368, #2057, #4964 ) ; +#4910 = PLANE ( 'NONE', #238 ) ; +#4911 = CARTESIAN_POINT ( 'NONE', ( -1.250000000000000000, -2.540341340432940998E-16, 4.849972727250857929 ) ) ; +#4912 = CYLINDRICAL_SURFACE ( 'NONE', #2402, 1.250000000000000000 ) ; +#4913 = CYLINDRICAL_SURFACE ( 'NONE', #3491, 0.2499999999999998612 ) ; +#4914 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #3977 ), #2708 ) ; +#4915 = CARTESIAN_POINT ( 'NONE', ( -0.7887281695052992259, 0.2532998267649559376, 5.355730255524930428 ) ) ; +#4916 = ORIENTED_EDGE ( 'NONE', *, *, #3985, .F. ) ; +#4917 = CARTESIAN_POINT ( 'NONE', ( 0.2499999999999996669, -0.5863793521062125036, 6.064721239031350741 ) ) ; +#4918 = AXIS2_PLACEMENT_3D ( 'NONE', #363, #1391, #3826 ) ; +#4919 = ORIENTED_EDGE ( 'NONE', *, *, #3834, .T. ) ; +#4920 = EDGE_CURVE ( 'NONE', #4506, #2517, #433, .T. ) ; +#4921 = DIRECTION ( 'NONE', ( -0.6958540455341970521, 0.000000000000000000, 0.7181832268395659247 ) ) ; +#4922 = CARTESIAN_POINT ( 'NONE', ( 0.6017880848224569368, 0.1017037731561277331, 6.248577496113016494 ) ) ; +#4923 = ORIENTED_EDGE ( 'NONE', *, *, #908, .T. ) ; +#4924 = CARTESIAN_POINT ( 'NONE', ( -0.07002445732187644045, -0.3835940931549171040, 5.921530663858654009 ) ) ; +#4925 = CARTESIAN_POINT ( 'NONE', ( 0.5346488703654543873, 0.02000521845199511664, 6.159018139228473743 ) ) ; +#4926 = CARTESIAN_POINT ( 'NONE', ( -0.5977033029704761358, -0.08943630209882091897, 6.241373299175415390 ) ) ; +#4927 = ORIENTED_EDGE ( 'NONE', *, *, #101, .F. ) ; +#4928 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, 1.097358419195169299, 5.309607069964629389 ) ) ; +#4929 = CARTESIAN_POINT ( 'NONE', ( -1.199999999999999956, -3.989589966298086314E-16, 5.473691469039889235 ) ) ; +#4930 = ORIENTED_EDGE ( 'NONE', *, *, #2830, .F. ) ; +#4931 = VECTOR ( 'NONE', #2528, 39.37007874015748143 ) ; +#4932 = LINE ( 'NONE', #874, #2561 ) ; +#4933 = CARTESIAN_POINT ( 'NONE', ( 0.5078194151786449284, 0.2931896760531070845, 6.064721239031358735 ) ) ; +#4934 = CYLINDRICAL_SURFACE ( 'NONE', #2847, 0.04999999999999994726 ) ; +#4935 = EDGE_CURVE ( 'NONE', #5293, #4152, #4507, .T. ) ; +#4936 = CARTESIAN_POINT ( 'NONE', ( 0.6178836241543999019, 0.2397118186733859235, 6.305523136322781497 ) ) ; +#4937 = CARTESIAN_POINT ( 'NONE', ( 0.3432343334586991368, -1.149864314979484714, 5.659874780767582436 ) ) ; +#4938 = CARTESIAN_POINT ( 'NONE', ( -0.2500000000000000000, 0.4734180295921449066, 6.159507043090530765 ) ) ; +#4939 = LINE ( 'NONE', #1227, #2032 ) ; +#4940 = CARTESIAN_POINT ( 'NONE', ( -0.8802064048750126712, -0.8156226366516443615, 5.758474444299943151 ) ) ; +#4941 = CARTESIAN_POINT ( 'NONE', ( 0.2298577302013564416, -0.5457737733106492461, 6.227167535551411781 ) ) ; +#4942 = CARTESIAN_POINT ( 'NONE', ( 0.1936349949987324626, 0.5937897961281052295, 6.265682740392624517 ) ) ; +#4943 = VERTEX_POINT ( 'NONE', #4558 ) ; +#4944 = DIRECTION ( 'NONE', ( -0.8627299156628208676, 0.4980973490458741049, -0.08715574274765018614 ) ) ; +#4945 = ORIENTED_EDGE ( 'NONE', *, *, #1697, .T. ) ; +#4946 = CARTESIAN_POINT ( 'NONE', ( 0.09445691966779176663, 0.6577410437042311431, 6.307018212404405411 ) ) ; +#4947 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, -0.8125000000000000000, 3.953999999999999737 ) ) ; +#4948 = ORIENTED_EDGE ( 'NONE', *, *, #3909, .F. ) ; +#4949 = AXIS2_PLACEMENT_3D ( 'NONE', #2239, #2290, #1061 ) ; +#4950 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.294298002108009606E-15, 6.079000000000000625 ) ) ; +#4951 = EDGE_CURVE ( 'NONE', #1523, #4722, #896, .T. ) ; +#4952 = PLANE ( 'NONE', #2541 ) ; +#4953 = ORIENTED_EDGE ( 'NONE', *, *, #1815, .F. ) ; +#4954 = CARTESIAN_POINT ( 'NONE', ( -0.6826897502467756951, -0.3941511110779748472, 5.096860619515669377 ) ) ; +#4955 = FACE_OUTER_BOUND ( 'NONE', #4557, .T. ) ; +#4956 = ORIENTED_EDGE ( 'NONE', *, *, #4092, .F. ) ; +#4957 = CARTESIAN_POINT ( 'NONE', ( 1.167719486180428312, -0.2764589872324604847, 5.657733989965284316 ) ) ; +#4958 = LINE ( 'NONE', #1304, #1244 ) ; +#4959 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2151, #2174, #2493, #4529, #2891, #133, #3783, #1318, #2998, #1754, #454, #1374, #3759, #3377, #3808, #3408, #969, #4233, #4131, #567, #3294, #4922, #3728, #83, #5132 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4 ), + ( 0.5608577638686823574, 0.6706433228999124641, 0.7255361024155247973, 0.7529824921733287990, 0.7667056870522329648, 0.7735672844916869906, 0.7769980832114120606, 0.7787134825712764830, 0.7795711822512068068, 0.7800000320911718577, 0.7804288819311370196, 0.8353216614483527369, 0.8902144409655685653, 0.9451072204827842826, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#4960 = CARTESIAN_POINT ( 'NONE', ( 0.3707991795804648216, 0.1206003877873535884, 5.927934137911830881 ) ) ; +#4961 = EDGE_CURVE ( 'NONE', #2091, #1243, #490, .T. ) ; +#4962 = FACE_OUTER_BOUND ( 'NONE', #2222, .T. ) ; +#4963 = CARTESIAN_POINT ( 'NONE', ( 0.3750000000000000555, -1.139901311517799387, 5.593666288758528005 ) ) ; +#4964 = DIRECTION ( 'NONE', ( -0.4999999999999997780, 0.8660254037844387076, 0.000000000000000000 ) ) ; +#4965 = CARTESIAN_POINT ( 'NONE', ( -1.250000000000000888, 0.4575317547305496890, 4.658015363927715313 ) ) ; +#4966 = CARTESIAN_POINT ( 'NONE', ( -1.150460039896293418, -0.3412538787405033913, 5.745822387879581328 ) ) ; +#4967 = DIRECTION ( 'NONE', ( -0.8089634933040121823, 4.953248925337779758E-16, -0.5878588831525549674 ) ) ; +#4968 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4767, #3546, #1087, #4351, #680, #3469, #625, #4718, #2736, #3941, #1112, #304, #705, #2339, #3892, #3497, #226, #3574, #198, #3918, #1463, #4402, #1542, #733, #1034, #2662, #253, #1892, #3521, #4874, #382, #3709, #2447, #1163, #2075, #3220, #1219, #814 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999999501232, 0.1874999999999251710, 0.2187499999999076572, 0.2343749999999037992, 0.2421874999999018563, 0.2460937499999008848, 0.2499999999998999134, 0.3749999999999746869, 0.4375000000000121014, 0.4687500000000351386, 0.4843750000000510703, 0.4921875000000589528, 0.4960937500000582867, 0.4980468750000579536, 0.5000000000000576206, 0.6250000000001110223, 0.6875000000001375566, 0.7187500000001543210, 0.7343750000001626477, 0.7421875000001668665, 0.7460937500001656453, 0.7500000000001643130, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#4969 = CARTESIAN_POINT ( 'NONE', ( 0.8301118274381791284, 0.6957716379750336078, 5.661614086336346219 ) ) ; +#4970 = EDGE_CURVE ( 'NONE', #3409, #3100, #782, .T. ) ; +#4971 = ORIENTED_EDGE ( 'NONE', *, *, #2116, .T. ) ; +#4972 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#4973 = VERTEX_POINT ( 'NONE', #2133 ) ; +#4974 = CARTESIAN_POINT ( 'NONE', ( -0.3750000000000000555, 0.8863129891663641402, 5.291451494556268287 ) ) ; +#4975 = DIRECTION ( 'NONE', ( -0.6634139481689388385, -0.3830222215594890622, 0.6427876096865390299 ) ) ; +#4976 = ORIENTED_EDGE ( 'NONE', *, *, #2825, .T. ) ; +#4977 = CARTESIAN_POINT ( 'NONE', ( 0.08244784093721609086, -0.3811033803106414486, 5.928874456619586120 ) ) ; +#4978 = CARTESIAN_POINT ( 'NONE', ( 0.4161253649263932375, 0.02913566308630720705, 6.018157041179304834 ) ) ; +#4979 = CARTESIAN_POINT ( 'NONE', ( 9.653917931240294961E-17, 0.7883022221559489173, 5.096860619515669377 ) ) ; +#4980 = ORIENTED_EDGE ( 'NONE', *, *, #514, .T. ) ; +#4981 = DIRECTION ( 'NONE', ( 0.8000000000000004885, -0.4596266658713864528, 0.3856725658119229960 ) ) ; +#4982 = CARTESIAN_POINT ( 'NONE', ( 0.5756568976372615776, -0.3540999100008719314, 6.316086704514479067 ) ) ; +#4983 = VERTEX_POINT ( 'NONE', #1325 ) ; +#4984 = FACE_OUTER_BOUND ( 'NONE', #124, .T. ) ; +#4985 = CARTESIAN_POINT ( 'NONE', ( -0.3749837935176599246, 0.1069162016722405711, 5.937453764000135692 ) ) ; +#4986 = CARTESIAN_POINT ( 'NONE', ( -0.9117085864506824233, 0.7802607485548526123, 5.790448158962340663 ) ) ; +#4987 = EDGE_CURVE ( 'NONE', #1875, #1101, #3813, .T. ) ; +#4988 = CARTESIAN_POINT ( 'NONE', ( 1.199999999999999956, -1.461283649571129740E-15, 5.473691469039889235 ) ) ; +#4989 = CARTESIAN_POINT ( 'NONE', ( -1.167029582747859173, -0.2793543972147620735, 5.662768512583060243 ) ) ; +#4990 = CARTESIAN_POINT ( 'NONE', ( -0.1845071557944078511, 0.6019879651539330467, 6.271836282905964843 ) ) ; +#4991 = CARTESIAN_POINT ( 'NONE', ( -0.6714086293390384430, -0.9980026931699735870, 5.522824837521426389 ) ) ; +#4992 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2000, #4377, #816, #3222, #5220, #2737, #1193, #4053, #1569, #3192, #384, #4819, #3627, #2790, #4435, #3142, #765, #3943, #2396, #279, #1920, #2340, #3967, #1278, #495, #4621, #1303 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.2500000000000918710, 0.3750000000001381117, 0.4375000000001612044, 0.4687500000001783018, 0.5000000000001953993, 0.6250000000002979839, 0.6875000000003492762, 0.7187500000003745892, 0.7343750000003914646, 0.7421875000004042322, 0.7460937500004105605, 0.7480468750004094503, 0.7500000000004084511, 0.8750000000002041700, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#4993 = CARTESIAN_POINT ( 'NONE', ( -0.1875000000000003331, -0.5863793521062123926, 6.064721239031350741 ) ) ; +#4994 = AXIS2_PLACEMENT_3D ( 'NONE', #1651, #4054, #900 ) ; +#4995 = CARTESIAN_POINT ( 'NONE', ( 0.2363774407488606621, 0.5327295030823264721, 6.216034119362632282 ) ) ; +#4996 = ORIENTED_EDGE ( 'NONE', *, *, #2338, .T. ) ; +#4997 = CARTESIAN_POINT ( 'NONE', ( 0.8166850324655661186, 0.8792180456295958235, 5.641659190545095903 ) ) ; +#4998 = ORIENTED_EDGE ( 'NONE', *, *, #1143, .F. ) ; +#4999 = EDGE_CURVE ( 'NONE', #1358, #1806, #3931, .T. ) ; +#5000 = CARTESIAN_POINT ( 'NONE', ( 0.08826461380649190669, 0.6601173229999518499, 6.308282454778189496 ) ) ; +#5001 = CARTESIAN_POINT ( 'NONE', ( 0.5350018694874364433, 0.02024565561117777635, 6.159485645265798226 ) ) ; +#5002 = ORIENTED_EDGE ( 'NONE', *, *, #4869, .F. ) ; +#5003 = LINE ( 'NONE', #2973, #4244 ) ; +#5004 = CIRCLE ( 'NONE', #2445, 0.2500000000000000555 ) ; +#5005 = CARTESIAN_POINT ( 'NONE', ( 0.4339336598150738689, 0.01864368642547416938, 6.038823327645499006 ) ) ; +#5006 = CARTESIAN_POINT ( 'NONE', ( -0.5930090812671375833, 0.08315801034607883668, 6.234903360096271996 ) ) ; +#5007 = VERTEX_POINT ( 'NONE', #4388 ) ; +#5008 = CARTESIAN_POINT ( 'NONE', ( -0.3207200293772684008, -0.4673744726802441241, 6.196985135799722322 ) ) ; +#5009 = CARTESIAN_POINT ( 'NONE', ( 0.6116269271128551566, -0.2749606733558618843, 6.311932765464204564 ) ) ; +#5010 = ORIENTED_EDGE ( 'NONE', *, *, #1285, .T. ) ; +#5011 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4226, #1846, #628, #3896, #2643, #2190, #2264, #229, #2689, #5173, #2318, #4354, #711, #767, #4821, #309, #2764 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 1, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999999958922, 0.1874999999999965583, 0.2499999999999972244, 0.3749999999999985567, 0.4374999999999992784, 0.4687499999999999445, 0.5000000000000006661, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#5012 = CARTESIAN_POINT ( 'NONE', ( 0.1750000000000000167, 0.8097085448544666386, 5.355730255524930428 ) ) ; +#5013 = CARTESIAN_POINT ( 'NONE', ( -0.7996834935816121703, 0.8947101821780649722, 5.593666288758528005 ) ) ; +#5014 = VECTOR ( 'NONE', #4473, 39.37007874015748143 ) ; +#5015 = DIRECTION ( 'NONE', ( -7.871877887341981366E-17, -0.6427876096865392519, -0.7660444431189782355 ) ) ; +#5016 = CARTESIAN_POINT ( 'NONE', ( 0.2797140854002903576, -1.166979039068275714, 5.746097767428501868 ) ) ; +#5017 = CARTESIAN_POINT ( 'NONE', ( 0.8719867810375157013, 0.3013692085454338643, 5.470303972386260760 ) ) ; +#5018 = AXIS2_PLACEMENT_3D ( 'NONE', #3275, #764, #1276 ) ; +#5019 = EDGE_CURVE ( 'NONE', #2583, #1788, #1880, .T. ) ; +#5020 = CARTESIAN_POINT ( 'NONE', ( 0.8386507027718356211, -0.8582877421457199008, 5.691237000091375897 ) ) ; +#5021 = ORIENTED_EDGE ( 'NONE', *, *, #4755, .F. ) ; +#5022 = CARTESIAN_POINT ( 'NONE', ( 0.2434360693721683566, -0.5157474175712577491, 6.201038154600142960 ) ) ; +#5023 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, 0.6794999999999999929, 3.104000000000000092 ) ) ; +#5024 = VERTEX_POINT ( 'NONE', #3414 ) ; +#5025 = CARTESIAN_POINT ( 'NONE', ( -0.4551265001645181107, -0.7883022221559508047, 5.096860619515669377 ) ) ; +#5026 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2187, #3419, #2640, #4273 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 0.4999966969226332103 ), + .UNSPECIFIED. ) ; +#5027 = ORIENTED_EDGE ( 'NONE', *, *, #4481, .F. ) ; +#5028 = CARTESIAN_POINT ( 'NONE', ( 0.4442483215270713881, 0.7694606640620814675, 5.144191973780745997 ) ) ; +#5029 = ORIENTED_EDGE ( 'NONE', *, *, #4225, .F. ) ; +#5030 = EDGE_CURVE ( 'NONE', #2966, #4361, #4462, .T. ) ; +#5031 = CARTESIAN_POINT ( 'NONE', ( -0.2895564236431444338, 0.2611395282994883882, 5.928196182617649690 ) ) ; +#5032 = LINE ( 'NONE', #2602, #1082 ) ; +#5033 = VERTEX_POINT ( 'NONE', #3508 ) ; +#5034 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, 0.6794999999999999929, 3.953999999999999737 ) ) ; +#5035 = CARTESIAN_POINT ( 'NONE', ( -1.017612079093999533, -0.3710122568153053635, 5.661614435833072889 ) ) ; +#5036 = ORIENTED_EDGE ( 'NONE', *, *, #1512, .T. ) ; +#5037 = CARTESIAN_POINT ( 'NONE', ( -0.4227963625192202590, 0.02517589006898161494, 6.026227888686176648 ) ) ; +#5038 = ADVANCED_FACE ( 'NONE', ( #3151 ), #666, .F. ) ; +#5039 = FACE_BOUND ( 'NONE', #3899, .T. ) ; +#5040 = CARTESIAN_POINT ( 'NONE', ( 0.5999999999999999778, 1.039230484541320942, 5.473691469039889235 ) ) ; +#5041 = LINE ( 'NONE', #903, #1510 ) ; +#5042 = CARTESIAN_POINT ( 'NONE', ( -0.1875000000000002776, -0.5097749077943204421, 6.129000000000000448 ) ) ; +#5043 = CARTESIAN_POINT ( 'NONE', ( -0.5078194151786449284, -0.2931896760531102486, 6.064721239031358735 ) ) ; +#5044 = CARTESIAN_POINT ( 'NONE', ( 0.9336208310525585530, -0.7539755993495664832, 5.803613436556582350 ) ) ; +#5045 = EDGE_LOOP ( 'NONE', ( #1775, #4280, #1344, #2977 ) ) ; +#5046 = FACE_BOUND ( 'NONE', #4631, .T. ) ; +#5047 = CARTESIAN_POINT ( 'NONE', ( -1.199999999999999956, -1.294298002108004873E-15, 6.079000000000000625 ) ) ; +#5048 = ORIENTED_EDGE ( 'NONE', *, *, #1255, .T. ) ; +#5049 = CARTESIAN_POINT ( 'NONE', ( 0.3828194151786392663, 0.5096960269992135695, 6.064721239031350741 ) ) ; +#5050 = ADVANCED_FACE ( 'NONE', ( #2180 ), #3098, .F. ) ; +#5051 = CARTESIAN_POINT ( 'NONE', ( 0.9102530003290334459, -8.153941728464154089E-16, 5.096860619515669377 ) ) ; +#5052 = VERTEX_POINT ( 'NONE', #3560 ) ; +#5053 = ADVANCED_FACE ( 'NONE', ( #4779, #1123 ), #265, .F. ) ; +#5054 = FACE_OUTER_BOUND ( 'NONE', #4081, .T. ) ; +#5055 = DIRECTION ( 'NONE', ( 0.6634139481689388385, 0.3830222215594888957, -0.6427876096865389188 ) ) ; +#5056 = ORIENTED_EDGE ( 'NONE', *, *, #153, .F. ) ; +#5057 = CARTESIAN_POINT ( 'NONE', ( 0.2798689215462349944, -0.4501038182097064078, 6.153038823644393140 ) ) ; +#5058 = CARTESIAN_POINT ( 'NONE', ( 0.5932269843318139779, -0.3240602865127604204, 6.316181730182573340 ) ) ; +#5059 = VERTEX_POINT ( 'NONE', #1047 ) ; +#5060 = CARTESIAN_POINT ( 'NONE', ( -0.5320601692600933630, -0.01859824524625411368, 6.155943082437688396 ) ) ; +#5061 = CARTESIAN_POINT ( 'NONE', ( -0.8252745779985877217, 0.8711595303238514054, 5.662380614064747242 ) ) ; +#5062 = CARTESIAN_POINT ( 'NONE', ( -0.8898490325666070788, -4.044939027510162589E-16, 5.130805054534240739 ) ) ; +#5063 = CARTESIAN_POINT ( 'NONE', ( -1.199999999999999956, -3.989589966298086314E-16, 5.473691469039889235 ) ) ; +#5064 = EDGE_CURVE ( 'NONE', #5155, #244, #2351, .T. ) ; +#5065 = CARTESIAN_POINT ( 'NONE', ( -1.167164419797250607, 0.2787910468799972286, 5.661797653372275363 ) ) ; +#5066 = CYLINDRICAL_SURFACE ( 'NONE', #467, 0.1329999999999999238 ) ; +#5067 = CARTESIAN_POINT ( 'NONE', ( 0.8972092752328305609, -0.7968794351830672529, 5.777581622962343566 ) ) ; +#5068 = VERTEX_POINT ( 'NONE', #1074 ) ; +#5069 = CARTESIAN_POINT ( 'NONE', ( -0.6495190528383287809, -0.3750000000000000555, 5.128999999999999559 ) ) ; +#5070 = FACE_OUTER_BOUND ( 'NONE', #665, .T. ) ; +#5071 = ORIENTED_EDGE ( 'NONE', *, *, #5254, .T. ) ; +#5072 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 3, ( #2124, #541, #483, #516 ), + .UNSPECIFIED., .F., .T. ) + B_SPLINE_CURVE_WITH_KNOTS ( ( 4, 4 ), + ( 6.136830048234790169, 6.429540566124390288 ), + .UNSPECIFIED. ) + CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.9928727816990980948, 0.9928727816990980948, 1.000000000000000000 ) ) + REPRESENTATION_ITEM ( '' ) ); +#5073 = CARTESIAN_POINT ( 'NONE', ( 0.8359306820184707609, 0.8609627714288758948, 5.685938387778719516 ) ) ; +#5074 = CIRCLE ( 'NONE', #2096, 0.1875000000000000555 ) ; +#5075 = ORIENTED_EDGE ( 'NONE', *, *, #949, .T. ) ; +#5076 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2395, #3653, #2023, #1999 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#5077 = CARTESIAN_POINT ( 'NONE', ( 0.3717159027388932113, -0.1177521924462380382, 5.929794069275216017 ) ) ; +#5078 = AXIS2_PLACEMENT_3D ( 'NONE', #3329, #1242, #2814 ) ; +#5079 = EDGE_CURVE ( 'NONE', #2229, #344, #5135, .T. ) ; +#5080 = CARTESIAN_POINT ( 'NONE', ( -0.6135904484930136960, -0.1412060984789980378, 6.271836282905964843 ) ) ; +#5081 = ORIENTED_EDGE ( 'NONE', *, *, #3686, .T. ) ; +#5082 = CARTESIAN_POINT ( 'NONE', ( 0.2736403833542762620, -0.4457931912194460500, 6.144755415750375427 ) ) ; +#5083 = CARTESIAN_POINT ( 'NONE', ( 0.3129487185716545716, 1.158489620792405361, 5.707125196590543403 ) ) ; +#5084 = ORIENTED_EDGE ( 'NONE', *, *, #5211, .T. ) ; +#5085 = AXIS2_PLACEMENT_3D ( 'NONE', #1767, #1009, #2986 ) ; +#5086 = CARTESIAN_POINT ( 'NONE', ( -0.4709763281238467658, 0.006632725435806948594, 6.082756626983125692 ) ) ; +#5087 = AXIS2_PLACEMENT_3D ( 'NONE', #2648, #633, #4607 ) ; +#5088 = CARTESIAN_POINT ( 'NONE', ( 0.08101070570703207407, -0.6625904863980313086, 6.309571990145657949 ) ) ; +#5089 = ORIENTED_EDGE ( 'NONE', *, *, #2058, .F. ) ; +#5090 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #2691, #3900, #5202, #3093, #2719, #2742, #2344, #1093, #2296, #4723, #1066, #4002, #4331, #713, #233, #3503, #3526, #3605, #3972, #659, #4357, #1548, #3171 ), + .UNSPECIFIED., .F., .F., + ( 4, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 4 ), + ( 0.000000000000000000, 0.1249999999999165667, 0.2499999999998331335, 0.3749999999997497002, 0.4374999999996995181, 0.4687499999996870836, 0.4843749999996632694, 0.4921874999996314615, 0.4960937499996143640, 0.4980468749996287414, 0.4990234374996360134, 0.4999999999996432298, 0.7499999999998215872, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#5091 = CARTESIAN_POINT ( 'NONE', ( -0.3516801833888910656, 0.4717088772451837331, 6.222671864549472076 ) ) ; +#5092 = CARTESIAN_POINT ( 'NONE', ( 0.2930997104730184155, -0.4578962213378233725, 6.169330842524349379 ) ) ; +#5093 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#5094 = CARTESIAN_POINT ( 'NONE', ( -0.4414780203617504339, 0.2548874538971590553, 6.129000000000000448 ) ) ; +#5095 = EDGE_CURVE ( 'NONE', #3437, #5207, #4709, .T. ) ; +#5096 = CARTESIAN_POINT ( 'NONE', ( 0.8633556549929528590, -0.8334389726783517638, 5.734811671465337213 ) ) ; +#5097 = AXIS2_PLACEMENT_3D ( 'NONE', #4450, #2014, #725 ) ; +#5098 = EDGE_LOOP ( 'NONE', ( #1422, #4132, #3832, #2335 ) ) ; +#5099 = LINE ( 'NONE', #4974, #912 ) ; +#5100 = SURFACE_SIDE_STYLE ('',( #5127 ) ) ; +#5101 = AXIS2_PLACEMENT_3D ( 'NONE', #1805, #209, #1855 ) ; +#5102 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#5103 = VERTEX_POINT ( 'NONE', #827 ) ; +#5104 = CYLINDRICAL_SURFACE ( 'NONE', #3898, 0.05000000000000005135 ) ; +#5105 = CIRCLE ( 'NONE', #1871, 0.2500000000000000000 ) ; +#5106 = AXIS2_PLACEMENT_3D ( 'NONE', #2771, #4009, #1176 ) ; +#5107 = FACE_OUTER_BOUND ( 'NONE', #1038, .T. ) ; +#5108 = VERTEX_POINT ( 'NONE', #15 ) ; +#5109 = CARTESIAN_POINT ( 'NONE', ( -0.3750000000000000555, 1.139901311517799387, 5.593666288758528005 ) ) ; +#5110 = CARTESIAN_POINT ( 'NONE', ( -0.5848270673501891892, 0.06944430371872047092, 6.223335101063991459 ) ) ; +#5111 = ORIENTED_EDGE ( 'NONE', *, *, #946, .F. ) ; +#5112 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, + ( #4060, #1716, #4489, #855 ), + .UNSPECIFIED., .F., .F., + ( 4, 4 ), + ( 0.000000000000000000, 1.000000000000000000 ), + .UNSPECIFIED. ) ; +#5113 = CARTESIAN_POINT ( 'NONE', ( 0.08095659025928565733, 0.3814217031128496194, 5.927934137911403667 ) ) ; +#5114 = CARTESIAN_POINT ( 'NONE', ( 0.3412533487586514869, 1.150453368511045404, 5.663349676274995304 ) ) ; +#5115 = ADVANCED_FACE ( 'NONE', ( #3636 ), #2883, .T. ) ; +#5116 = CARTESIAN_POINT ( 'NONE', ( 1.156155013602395920, -0.3213999976861225405, 5.723657599041492183 ) ) ; +#5117 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ; +#5118 = ORIENTED_EDGE ( 'NONE', *, *, #2728, .F. ) ; +#5119 = CARTESIAN_POINT ( 'NONE', ( -0.3517917162773086526, 0.4717146487377613662, 6.222756865013327143 ) ) ; +#5120 = CARTESIAN_POINT ( 'NONE', ( 0.3517917162773260276, -0.4717146487377650854, 6.222756865013339578 ) ) ; +#5121 = FACE_OUTER_BOUND ( 'NONE', #539, .T. ) ; +#5122 = CARTESIAN_POINT ( 'NONE', ( -0.2499666308280161786, -0.4704265078890402796, 6.156259057138862012 ) ) ; +#5123 = EDGE_CURVE ( 'NONE', #1678, #5261, #4063, .T. ) ; +#5124 = CARTESIAN_POINT ( 'NONE', ( 0.8262843514430585623, -0.8702015309490677142, 5.664700937567689110 ) ) ; +#5125 = ORIENTED_EDGE ( 'NONE', *, *, #2543, .T. ) ; +#5126 = CARTESIAN_POINT ( 'NONE', ( 1.030525505591770807, 0.3784643435474546180, 5.679382527199814845 ) ) ; +#5127 = SURFACE_STYLE_FILL_AREA ( #3874 ) ; +#5128 = DIRECTION ( 'NONE', ( -0.6634139481689379503, -0.3830222215594885626, -0.6427876096865400291 ) ) ; +#5129 = ORIENTED_EDGE ( 'NONE', *, *, #2997, .F. ) ; +#5130 = CARTESIAN_POINT ( 'NONE', ( 0.8887162058799837894, 0.8063413249474671307, 5.768586320661512445 ) ) ; +#5131 = DIRECTION ( 'NONE', ( -2.775557561562889379E-16, 0.6427876096865381417, -0.7660444431189791237 ) ) ; +#5132 = CARTESIAN_POINT ( 'NONE', ( 0.6135904484930136960, 0.1412060984789950679, 6.271836282905964843 ) ) ; +#5133 = EDGE_CURVE ( 'NONE', #2677, #1540, #4062, .T. ) ; +#5134 = ORIENTED_EDGE ( 'NONE', *, *, #1887, .T. ) ; +#5135 = CIRCLE ( 'NONE', #959, 0.3899210354891938790 ) ; +#5136 = CARTESIAN_POINT ( 'NONE', ( -0.3308781323989623546, 0.2067447242554813214, 5.903217354212417334 ) ) ; +#5137 = CARTESIAN_POINT ( 'NONE', ( 0.2348834868550013499, -0.3823915054868878838, 6.056259134400225896 ) ) ; +#5138 = CARTESIAN_POINT ( 'NONE', ( -0.3828194151786386001, 0.5096960269992143466, 6.064721239031350741 ) ) ; +#5139 = CARTESIAN_POINT ( 'NONE', ( 1.141566542633017267, -0.3699125936131387737, 5.771286896600225980 ) ) ; +#5140 = FACE_OUTER_BOUND ( 'NONE', #1830, .T. ) ; +#5141 = ORIENTED_EDGE ( 'NONE', *, *, #4727, .T. ) ; +#5142 = CARTESIAN_POINT ( 'NONE', ( -0.3431685626318648485, 0.4710736201105751308, 6.216034119355225762 ) ) ; +#5143 = CARTESIAN_POINT ( 'NONE', ( 0.4070391430122415888, -0.4670436806787728323, 6.259648185232697060 ) ) ; +#5144 = CYLINDRICAL_SURFACE ( 'NONE', #2649, 0.1330000000000000626 ) ; +#5145 = CARTESIAN_POINT ( 'NONE', ( 0.2432098301200555646, 0.4089087665391600845, 6.088400557716447281 ) ) ; +#5146 = CARTESIAN_POINT ( 'NONE', ( 0.8299103036711189540, -0.6956549431569342135, 5.661332216214850277 ) ) ; +#5147 = ADVANCED_FACE ( 'NONE', ( #393 ), #859, .F. ) ; +#5148 = ORIENTED_EDGE ( 'NONE', *, *, #1873, .F. ) ; +#5149 = EDGE_CURVE ( 'NONE', #2218, #1860, #3083, .T. ) ; +#5150 = LINE ( 'NONE', #4799, #3472 ) ; +#5151 = CONICAL_SURFACE ( 'NONE', #3279, 0.5097749077943197760, 0.6981317007977323463 ) ; +#5152 = CARTESIAN_POINT ( 'NONE', ( -0.2375072584159962641, -0.3935348347224182364, 6.069265057793546525 ) ) ; +#5153 = EDGE_LOOP ( 'NONE', ( #1554, #2647 ) ) ; +#5154 = CYLINDRICAL_SURFACE ( 'NONE', #914, 1.250000000000000000 ) ; +#5155 = VERTEX_POINT ( 'NONE', #4444 ) ; +#5156 = DIRECTION ( 'NONE', ( -2.229460709826110325E-31, -2.220446049250315053E-16, 1.000000000000000000 ) ) ; +#5157 = CARTESIAN_POINT ( 'NONE', ( 0.6137281695053011799, 0.5564087180895086471, 5.355730255524930428 ) ) ; +#5158 = ORIENTED_EDGE ( 'NONE', *, *, #4442, .T. ) ; +#5159 = ORIENTED_EDGE ( 'NONE', *, *, #1285, .F. ) ; +#5160 = CARTESIAN_POINT ( 'NONE', ( 1.038328175854409618, 0.1664663499444950789, 5.406025211417605725 ) ) ; +#5161 = ADVANCED_FACE ( 'NONE', ( #5285 ), #4912, .T. ) ; +#5162 = CARTESIAN_POINT ( 'NONE', ( -0.05501870794164124417, 0.3869654703131697460, 5.911557156151677539 ) ) ; +#5163 = CARTESIAN_POINT ( 'NONE', ( 0.3404744564944940932, 1.150684004573425456, 5.664700937564495220 ) ) ; +#5164 = AXIS2_PLACEMENT_3D ( 'NONE', #4933, #2137, #3684 ) ; +#5165 = CYLINDRICAL_SURFACE ( 'NONE', #2620, 0.2500000000000000555 ) ; +#5166 = CARTESIAN_POINT ( 'NONE', ( -0.2850339750688150597, 0.4532022594927625492, 6.159485386716888833 ) ) ; +#5167 = EDGE_LOOP ( 'NONE', ( #231, #3268, #3672, #1347, #3512, #89, #2024, #2526, #2252, #4956, #2016, #295, #1836, #5129, #1233, #4798, #2393, #2408 ) ) ; +#5168 = CARTESIAN_POINT ( 'NONE', ( -0.5183444446581834120, 0.4138628704784132473, 6.305994169015646023 ) ) ; +#5169 = CARTESIAN_POINT ( 'NONE', ( 0.3518919930738936830, -0.4717197720362492075, 6.222833236376871469 ) ) ; +#5170 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #3977 ) ) ; +#5171 = CARTESIAN_POINT ( 'NONE', ( -1.131803818554444785, 0.3994153186270485434, 5.792207704863297835 ) ) ; +#5172 = CARTESIAN_POINT ( 'NONE', ( 0.2331264534535089639, 0.3553052539704062429, 6.027911261261048814 ) ) ; +#5173 = CARTESIAN_POINT ( 'NONE', ( -0.1206921645493913564, 0.6459991949217041007, 6.300554973511458101 ) ) ; +#5174 = ORIENTED_EDGE ( 'NONE', *, *, #4951, .T. ) ; +#5175 = CARTESIAN_POINT ( 'NONE', ( 0.5048965653728160197, 0.4236997009121540869, 6.302308867999999009 ) ) ; +#5176 = CARTESIAN_POINT ( 'NONE', ( -0.3776548003629940919, -0.09942695238792348400, 5.941670513689188304 ) ) ; +#5177 = DIRECTION ( 'NONE', ( 0.6634139481689391715, 0.3830222215594882296, 0.6427876096865391409 ) ) ; +#5178 = EDGE_CURVE ( 'NONE', #2175, #3333, #2637, .T. ) ; +#5179 = ORIENTED_EDGE ( 'NONE', *, *, #1887, .F. ) ; +#5180 = CARTESIAN_POINT ( 'NONE', ( 0.3805951229840598415, -0.6592100901213189257, 5.020800798730772563 ) ) ; +#5181 = CARTESIAN_POINT ( 'NONE', ( -0.2353568195901621085, 0.3848088219772492491, 6.059013099287744453 ) ) ; +#5182 = CIRCLE ( 'NONE', #2122, 0.1329999999999999238 ) ; +#5183 = CARTESIAN_POINT ( 'NONE', ( 1.165578522321655486, 0.2853574933912423894, 5.672865670348122613 ) ) ; +#5184 = ORIENTED_EDGE ( 'NONE', *, *, #2905, .T. ) ; +#5185 = ADVANCED_FACE ( 'NONE', ( #585, #5046 ), #2115, .F. ) ; +#5186 = VERTEX_POINT ( 'NONE', #3853 ) ; +#5187 = CARTESIAN_POINT ( 'NONE', ( 0.5999999999999999778, 1.039230484541320942, 5.473691469039889235 ) ) ; +#5188 = CIRCLE ( 'NONE', #4682, 0.1330000000000000626 ) ; +#5189 = EDGE_CURVE ( 'NONE', #1585, #4652, #3779, .T. ) ; +#5190 = CARTESIAN_POINT ( 'NONE', ( 1.407291281149710693, 0.6794999999999999929, 3.479000000000000092 ) ) ; +#5191 = DIRECTION ( 'NONE', ( -0.4999999999999998335, 0.8660254037844388186, 0.000000000000000000 ) ) ; +#5192 = ADVANCED_FACE ( 'NONE', ( #3346 ), #3776, .F. ) ; +#5193 = CARTESIAN_POINT ( 'NONE', ( -0.4520690256095937221, -0.01105722095497960536, 6.060389415091615994 ) ) ; +#5194 = CARTESIAN_POINT ( 'NONE', ( -1.407291281149710693, -0.9455000000000001181, 3.953999999999999737 ) ) ; +#5195 = ORIENTED_EDGE ( 'NONE', *, *, #134, .T. ) ; +#5196 = CARTESIAN_POINT ( 'NONE', ( 0.9550695643221949194, 0.1183969681640169302, 5.291451494556268287 ) ) ; +#5197 = EDGE_CURVE ( 'NONE', #5293, #1342, #2619, .T. ) ; +#5198 = CARTESIAN_POINT ( 'NONE', ( -1.142670174466051680, 0.3664801485729660691, 5.768586320661484024 ) ) ; +#5199 = CYLINDRICAL_SURFACE ( 'NONE', #3886, 0.1875000000000000278 ) ; +#5200 = CARTESIAN_POINT ( 'NONE', ( 0.8017765343484726248, -0.6685166950604968239, 5.616595155346773893 ) ) ; +#5201 = CARTESIAN_POINT ( 'NONE', ( 1.174683493581610394, 0.2451911293397330549, 5.593666288758528005 ) ) ; +#5202 = CARTESIAN_POINT ( 'NONE', ( 0.6079915080202787925, -0.1189851611865803543, 6.259648644088120939 ) ) ; +#5203 = CARTESIAN_POINT ( 'NONE', ( -0.2330399110802386931, -0.3592421851234383623, 6.031791426220049601 ) ) ; +#5204 = CARTESIAN_POINT ( 'NONE', ( 0.9266204027285168676, 0.7628125227391320262, 5.801654089882932297 ) ) ; +#5205 = CARTESIAN_POINT ( 'NONE', ( -1.398706172756100441E-15, -0.9441495305713740738, 5.438164591901928802 ) ) ; +#5206 = LINE ( 'NONE', #4445, #2881 ) ; +#5207 = VERTEX_POINT ( 'NONE', #4993 ) ; +#5208 = ORIENTED_EDGE ( 'NONE', *, *, #2825, .F. ) ; +#5209 = CARTESIAN_POINT ( 'NONE', ( 0.2902402754402618190, -0.2603777985487047419, 5.927571862669293701 ) ) ; +#5210 = CARTESIAN_POINT ( 'NONE', ( -1.134390485750327748, -0.3913557537285191623, 5.785842532529151150 ) ) ; +#5211 = EDGE_CURVE ( 'NONE', #963, #1243, #1899, .T. ) ; +#5212 = CARTESIAN_POINT ( 'NONE', ( -0.2500000000000000000, 0.4734180295921449066, 6.159507043090530765 ) ) ; +#5213 = CARTESIAN_POINT ( 'NONE', ( -0.2198713366034485694, -1.179693170992089923, 5.790448158961019054 ) ) ; +#5214 = ORIENTED_EDGE ( 'NONE', *, *, #3170, .F. ) ; +#5215 = FACE_OUTER_BOUND ( 'NONE', #1618, .T. ) ; +#5216 = CARTESIAN_POINT ( 'NONE', ( -0.8176574784459607059, 0.4720747652856858156, 5.438164591901928802 ) ) ; +#5217 = VERTEX_POINT ( 'NONE', #1747 ) ; +#5218 = CARTESIAN_POINT ( 'NONE', ( -0.6193196168970442894, 0.1810462647267599423, 6.289040576133976046 ) ) ; +#5219 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 1.625000000000000000, 3.104000000000000092 ) ) ; +#5220 = CARTESIAN_POINT ( 'NONE', ( 0.4852473382119203427, -0.005716202931437278957, 6.099710673695930119 ) ) ; +#5221 = CARTESIAN_POINT ( 'NONE', ( 0.2330305680413141678, 0.3587442932098199311, 6.031275932328444611 ) ) ; +#5222 = DIRECTION ( 'NONE', ( 0.6634139481689380613, 0.3830222215594881185, -0.6427876096865401401 ) ) ; +#5223 = ORIENTED_EDGE ( 'NONE', *, *, #562, .F. ) ; +#5224 = ADVANCED_FACE ( 'NONE', ( #3801 ), #3016, .F. ) ; +#5225 = LINE ( 'NONE', #1470, #2194 ) ; +#5226 = CARTESIAN_POINT ( 'NONE', ( -0.2345012922332556926, -0.3802127877040632487, 6.053843850000397708 ) ) ; +#5227 = CARTESIAN_POINT ( 'NONE', ( 0.8573843987340458161, 0.8395742527645639885, 5.725254952226169536 ) ) ; +#5228 = CARTESIAN_POINT ( 'NONE', ( 0.2325398314393652688, -0.5406766483440772486, 6.222892444258185662 ) ) ; +#5229 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#5230 = VERTEX_POINT ( 'NONE', #4603 ) ; +#5231 = ORIENTED_EDGE ( 'NONE', *, *, #3102, .T. ) ; +#5232 = CARTESIAN_POINT ( 'NONE', ( 0.1941663873620113334, -0.3811825383871577655, 6.031275932328746592 ) ) ; +#5233 = CARTESIAN_POINT ( 'NONE', ( -1.155149670442973564, -0.3249978673280445873, 5.727943781060211847 ) ) ; +#5234 = ORIENTED_EDGE ( 'NONE', *, *, #4028, .F. ) ; +#5235 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#5236 = CARTESIAN_POINT ( 'NONE', ( -0.3643030013730669259, -1.143420365706591557, 5.620048901750311465 ) ) ; +#5237 = ORIENTED_EDGE ( 'NONE', *, *, #3452, .T. ) ; +#5238 = CARTESIAN_POINT ( 'NONE', ( -0.5078194151786440402, 0.2931896760531078616, 6.064721239031358735 ) ) ; +#5239 = ADVANCED_FACE ( 'NONE', ( #2193 ), #4627, .F. ) ; +#5240 = EDGE_CURVE ( 'NONE', #4104, #33, #329, .T. ) ; +#5241 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.305400232354259948E-15, 6.129000000000000448 ) ) ; +#5242 = VERTEX_POINT ( 'NONE', #2937 ) ; +#5243 = AXIS2_PLACEMENT_3D ( 'NONE', #2509, #905, #4145 ) ; +#5244 = CARTESIAN_POINT ( 'NONE', ( -0.4758306217362024970, 0.4411118651367423316, 6.292649740054532259 ) ) ; +#5245 = DIRECTION ( 'NONE', ( -0.6634139481689380613, 0.3830222215594901169, -0.6427876096865391409 ) ) ; +#5246 = DIRECTION ( 'NONE', ( 0.6634139481689391715, 0.3830222215594882296, 0.6427876096865391409 ) ) ; +#5247 = CARTESIAN_POINT ( 'NONE', ( 0.2629727923642977694, 0.4377172075843401289, 6.129935593172724850 ) ) ; +#5248 = CARTESIAN_POINT ( 'NONE', ( 0.8212533044392832382, -0.6899229012876882949, 5.649054801820930116 ) ) ; +#5249 = AXIS2_PLACEMENT_3D ( 'NONE', #3938, #274, #2732 ) ; +#5250 = ORIENTED_EDGE ( 'NONE', *, *, #2201, .F. ) ; +#5251 = CARTESIAN_POINT ( 'NONE', ( 0.6015399493660039676, 0.3054750533176011640, 6.315181427570824013 ) ) ; +#5252 = CARTESIAN_POINT ( 'NONE', ( -0.2416476612724870188, -0.3060144142332240635, 5.986163717094036052 ) ) ; +#5253 = CIRCLE ( 'NONE', #2777, 0.2500000000000000000 ) ; +#5254 = EDGE_CURVE ( 'NONE', #251, #3205, #2567, .T. ) ; +#5255 = AXIS2_PLACEMENT_3D ( 'NONE', #431, #2072, #3706 ) ; +#5256 = DIRECTION ( 'NONE', ( -3.061616997868378704E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +#5257 = DIRECTION ( 'NONE', ( -0.6634139481689388385, -0.3830222215594888957, -0.6427876096865389188 ) ) ; +#5258 = CARTESIAN_POINT ( 'NONE', ( 1.155635265896322927, 0.3232469294449559216, 5.725869553966825620 ) ) ; +#5259 = EDGE_LOOP ( 'NONE', ( #4980, #4285, #2897, #397, #3784, #5002, #2856 ) ) ; +#5260 = DIRECTION ( 'NONE', ( 0.000000000000000000, -2.220446049250309876E-16, 1.000000000000000000 ) ) ; +#5261 = VERTEX_POINT ( 'NONE', #1799 ) ; +#5262 = VECTOR ( 'NONE', #3988, 39.37007874015748854 ) ; +#5263 = CARTESIAN_POINT ( 'NONE', ( -0.1884785811214970408, 0.3781700787334492109, 6.025025194221917069 ) ) ; +#5264 = CARTESIAN_POINT ( 'NONE', ( -1.990051048614448869E-16, -1.625000000000000000, 3.479000000000000092 ) ) ; +#5265 = ORIENTED_EDGE ( 'NONE', *, *, #13, .T. ) ; +#5266 = CARTESIAN_POINT ( 'NONE', ( -0.4336771849776643872, -0.01857793654907551745, 6.038770331118005430 ) ) ; +#5267 = VECTOR ( 'NONE', #1907, 39.37007874015748854 ) ; +#5268 = CARTESIAN_POINT ( 'NONE', ( -0.4290832926986046791, -0.4607818666749385894, 6.271836282905964843 ) ) ; +#5269 = AXIS2_PLACEMENT_3D ( 'NONE', #1574, #5177, #4466 ) ; +#5270 = EDGE_LOOP ( 'NONE', ( #4919, #135 ) ) ; +#5271 = CARTESIAN_POINT ( 'NONE', ( 9.578444887972244486E-17, 0.7821393804843267406, 5.167302222155944591 ) ) ; +#5272 = EDGE_CURVE ( 'NONE', #5007, #1126, #1551, .T. ) ; +#5273 = CARTESIAN_POINT ( 'NONE', ( 0.6202599645392194994, -0.2062995456813113970, 6.297283147372776391 ) ) ; +#5274 = ORIENTED_EDGE ( 'NONE', *, *, #1795, .T. ) ; +#5275 = CARTESIAN_POINT ( 'NONE', ( -1.139134559982725614, 0.3773247190703058473, 5.776711110814388483 ) ) ; +#5276 = FACE_OUTER_BOUND ( 'NONE', #3789, .T. ) ; +#5277 = CARTESIAN_POINT ( 'NONE', ( -0.8976798897624703732, 0.7963491312021888646, 5.778047900398796344 ) ) ; +#5278 = CARTESIAN_POINT ( 'NONE', ( -0.8305585124122080165, -0.8661552185368536216, 5.674568478625667822 ) ) ; +#5279 = EDGE_CURVE ( 'NONE', #1395, #1316, #608, .T. ) ; +#5280 = FACE_OUTER_BOUND ( 'NONE', #2089, .T. ) ; +#5281 = CIRCLE ( 'NONE', #3236, 0.1330000000000000626 ) ; +#5282 = CARTESIAN_POINT ( 'NONE', ( -0.1936345652642649517, 0.5937901820941279274, 6.265683030098574413 ) ) ; +#5283 = EDGE_CURVE ( 'NONE', #563, #4470, #4871, .T. ) ; +#5284 = CARTESIAN_POINT ( 'NONE', ( 0.2470560079612980076, 0.4470509579357900276, 6.130089832682657836 ) ) ; +#5285 = FACE_OUTER_BOUND ( 'NONE', #1802, .T. ) ; +#5286 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.305400232354259948E-15, 6.129000000000000448 ) ) ; +#5287 = ORIENTED_EDGE ( 'NONE', *, *, #3141, .F. ) ; +#5288 = PLANE ( 'NONE', #4242 ) ; +#5289 = ORIENTED_EDGE ( 'NONE', *, *, #3075, .F. ) ; +#5290 = EDGE_CURVE ( 'NONE', #4943, #4470, #982, .T. ) ; +#5291 = DIRECTION ( 'NONE', ( 0.4999999999999997780, -0.8660254037844387076, 0.000000000000000000 ) ) ; +#5292 = CARTESIAN_POINT ( 'NONE', ( -0.3330695001741688643, -1.152846936857173654, 5.677078363330477551 ) ) ; +#5293 = VERTEX_POINT ( 'NONE', #1877 ) ; +#5294 = CARTESIAN_POINT ( 'NONE', ( -0.4465813368670044636, -0.7735015651656840241, 5.157008074717787771 ) ) ; +#5295 = CARTESIAN_POINT ( 'NONE', ( 0.4392753184495691854, 0.01603626431803679281, 6.045169029417592377 ) ) ; +#5296 = DIRECTION ( 'NONE', ( -3.061616997868378704E-17, 1.000000000000000000, 0.000000000000000000 ) ) ; +ENDSEC; +END-ISO-10303-21; From 1799eb601ef505fa6f084f0bdc6bfb9f58f44a34 Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Mon, 22 Sep 2025 23:36:51 +0200 Subject: [PATCH 19/24] Update to Rust 2024 edition and fix all warnings. Major changes: - Migrate entire workspace to Rust 2024 edition. - Update GUI to use wgpu v26 and winit v0.30 APIs. - Fix all dead_code warnings with #[expect(dead_code)] attributes. - Fix all lifetime elision warnings in express crate. - Fix nom 7 API compatibility (fold_many requires closures). - Add CLAUDE.md documentation for future Claude instances. GUI/Rendering fixes: - Migrate from deprecated winit event loop to ApplicationHandler trait. - Fix shader syntax from [[attributes]] to @attributes for modern WGSL. - Handle empty meshes gracefully with early exit and error message. - Fix empty buffer panics in camera.rs and model.rs. - Add checks for empty vertex arrays in camera::fit_verts. - Update Surface to use Arc for proper lifetime management. - Replace SwapChain with SurfaceConfiguration API. Express/Parser improvements: - Fix 220+ lifetime elision warnings with explicit annotations. - Fix alias macro to handle lifetimes correctly with IResult. - Rename to_rtype_build to build_rtype (clippy wrong_self_convention). - Make to_inner_rtype a static method (clippy only_used_in_recursion). - Remove redundant closures (String::new instead of || String::new()). - Collapse nested if statements with if-let chains. - Fix fold_many0/fold_many1 to use closures for initial values. Code quality: - Format imports alphabetically across all crates. - Apply rustfmt to all modified files. - Use if-let chains for cleaner pattern matching. - Update dependencies to latest compatible versions. - Fix all clippy warnings at default level. --- CLAUDE.md | 69 + Cargo.toml | 10 +- cdt/Cargo.toml | 10 +- cdt/examples/font.rs | 2 +- cdt/src/contour.rs | 2 +- cdt/src/half.rs | 7 +- cdt/src/hull.rs | 2 +- cdt/src/triangulate.rs | 18 +- express/Cargo.toml | 4 +- express/examples/gen_exp.rs | 6 +- express/src/gen.rs | 85 +- express/src/lib.rs | 2 +- express/src/parse.rs | 604 +- gui/Cargo.toml | 12 +- gui/src/app.rs | 121 +- gui/src/backdrop.rs | 28 +- gui/src/backdrop.wgsl | 18 +- gui/src/camera.rs | 23 +- gui/src/main.rs | 200 +- gui/src/model.rs | 38 +- gui/src/model.wgsl | 27 +- nurbs/Cargo.toml | 8 +- nurbs/src/bspline_surface.rs | 2 +- nurbs/src/knot_vector.rs | 9 +- nurbs/src/nd_surface.rs | 8 +- nurbs/src/nurbs_surface.rs | 2 +- nurbs/src/sampled_curve.rs | 2 +- nurbs/src/sampled_surface.rs | 2 +- step/Cargo.toml | 10 +- step/examples/parse_step.rs | 10 +- step/examples/step_to_dot.rs | 24 +- step/src/ap214.rs | 22219 ++++++++++++++++++++----------- step/src/id.rs | 16 +- step/src/lib.rs | 4 +- step/src/parse.rs | 123 +- step/src/step_file.rs | 58 +- triangulate/Cargo.toml | 8 +- triangulate/src/mesh.rs | 4 +- triangulate/src/surface.rs | 2 +- triangulate/src/triangulate.rs | 40 +- wasm/Cargo.toml | 8 +- 41 files changed, 15705 insertions(+), 8142 deletions(-) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..d3378e8 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,69 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview +Foxtrot is an experimental fast STEP file viewer for mechanical CAD files. It's a complete implementation built from the ground up, with custom libraries for parsing STEP files and triangulation, supporting both native GUI and WebAssembly browser deployment. + +## Build and Development Commands + +### Essential Commands +```bash +# Build entire workspace +cargo build --release + +# Run native GUI with a STEP file +cargo run --release -- examples/cube_hole.step + +# Run tests +cargo test + +# Build WebAssembly version +cd wasm +wasm-pack build --target no-modules +python3 -m http.server --directory deploy + +# Regenerate STEP parser from EXPRESS schema (rarely needed) +cargo run --release --example gen_exp -- path/to/APs/10303-214e3-aim-long.exp step/src/ap214.rs +``` + +## High-Level Architecture + +### Workspace Structure +The project is a Cargo workspace with 6 main crates and 1 separate WebAssembly crate: + +1. **`step`**: Auto-generated STEP file parser from EXPRESS schemas. The `ap214.rs` file (1.6MB) is auto-generated and very slow to compile. Core parsing logic is in `parse.rs`. + +2. **`express`**: EXPRESS schema parser and code generator. Used to generate the STEP parser. Contains 108K lines in `parse.rs` and 36K lines in `gen.rs`. + +3. **`triangulate`**: Converts STEP geometry into triangle meshes. Main logic in `triangulate.rs` (31K lines) and `surface.rs` (15K lines). Depends on `cdt`, `nurbs`, and `step`. + +4. **`cdt`**: Standalone constrained Delaunay triangulation library with exact geometric predicates. Can handle up to 500M points with `long-indexes` feature. + +5. **`nurbs`**: Mathematical algorithms for NURBS and B-spline curves/surfaces. Uses single-character variable names matching 1970s algorithm conventions. + +6. **`gui`**: WebGPU-based native viewer application. Entry point is `main.rs` with async loading. Shaders are in `model.wgsl` and `backdrop.wgsl`. + +7. **`wasm`** (separate): WebAssembly interface for browser deployment. Excluded from main workspace. Provides single function `step_to_triangle_buf()` for STEP→mesh conversion. + +### Key Architectural Patterns + +- **Code Generation**: The STEP parser is auto-generated from EXPRESS schemas. Avoid manually editing `step/src/ap214.rs`. +- **Parallelization**: Most crates support optional `rayon` feature for parallel processing (disabled in WebAssembly builds). +- **Exact Predicates**: CDT uses exact geometric predicates for numerical robustness. +- **Separation of Concerns**: Clear boundaries between parsing, geometry, triangulation, and rendering layers. + +### Performance Considerations + +- Release builds use single codegen unit and include debug symbols +- The `step/src/ap214.rs` file is extremely slow to compile due to its size +- WebAssembly builds disable parallelization features +- CDT supports incremental triangulation for debugging + +### Important Files to Know + +- `step/src/step_file.rs`: Main interface for STEP file handling +- `triangulate/src/mesh.rs`: Mesh data structures +- `gui/src/app.rs`: Main application logic for native viewer +- `wasm/src/lib.rs`: WebAssembly interface implementation +- Workspace root `Cargo.toml`: Workspace configuration and shared settings \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index ac6bc58..da63ce1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,3 @@ -[profile.release] -debug = true -codegen-units = 1 [workspace] resolver = "2" @@ -12,6 +9,7 @@ members = [ "step", "triangulate", ] -exclude = [ - "wasm", -] +exclude = ["wasm"] +[profile.release] +debug = true +codegen-units = 1 diff --git a/cdt/Cargo.toml b/cdt/Cargo.toml index 6ec47a7..88ec9d6 100644 --- a/cdt/Cargo.toml +++ b/cdt/Cargo.toml @@ -2,7 +2,7 @@ name = "cdt" version = "0.1.0" authors = ["Matt Keeter "] -edition = "2021" +edition = "2024" license = "MIT OR Apache-2.0" repository = "https://github.com/Formlabs/foxtrot" homepage = "https://github.com/Formlabs/foxtrot/tree/master/cdt" @@ -13,14 +13,14 @@ categories = ["graphics", "mathematics", "algorithms"] [dependencies] geometry-predicates = "0.3.0" -thiserror = "1" +thiserror = "2" [features] long-indexes = [] [dev-dependencies] clap = "3" -itertools = "0.13" -rand = "0.8" -rand_chacha = "0.3" +itertools = "0.14" +rand = "0.9" +rand_chacha = "0.9" rusttype = "0.9" diff --git a/cdt/examples/font.rs b/cdt/examples/font.rs index ec14396..f6f0ec4 100644 --- a/cdt/examples/font.rs +++ b/cdt/examples/font.rs @@ -1,5 +1,5 @@ use clap::{App, Arg}; -use rusttype::{point, Font, OutlineBuilder, Scale}; +use rusttype::{Font, OutlineBuilder, Scale, point}; const BEZIER_RESOLUTION: usize = 4; diff --git a/cdt/src/contour.rs b/cdt/src/contour.rs index 8adb478..9082c6d 100644 --- a/cdt/src/contour.rs +++ b/cdt/src/contour.rs @@ -1,6 +1,6 @@ use crate::{ indexes::{ - ContourIndex, ContourVec, EdgeIndex, HullIndex, PointIndex, EMPTY_CONTOUR, EMPTY_EDGE, + ContourIndex, ContourVec, EMPTY_CONTOUR, EMPTY_EDGE, EdgeIndex, HullIndex, PointIndex, }, triangulate::Triangulation, }; diff --git a/cdt/src/half.rs b/cdt/src/half.rs index f9f48ca..0161733 100644 --- a/cdt/src/half.rs +++ b/cdt/src/half.rs @@ -1,4 +1,4 @@ -use crate::indexes::{EdgeIndex, EdgeVec, PointIndex, EMPTY_EDGE}; +use crate::indexes::{EMPTY_EDGE, EdgeIndex, EdgeVec, PointIndex}; /// Represents a directed edge in a triangle graph. #[derive(Copy, Clone, Debug)] @@ -149,11 +149,10 @@ impl Half { } pub fn iter_edges(&self) -> impl Iterator + '_ { - return self - .edges + self.edges .iter() .filter(|e| e.next != EMPTY_EDGE) - .map(|e| (e.src, e.dst, e.fixed())); + .map(|e| (e.src, e.dst, e.fixed())) } pub fn iter_triangles( diff --git a/cdt/src/hull.rs b/cdt/src/hull.rs index 1796c2d..533fee4 100644 --- a/cdt/src/hull.rs +++ b/cdt/src/hull.rs @@ -1,4 +1,4 @@ -use crate::indexes::{EdgeIndex, HullIndex, HullVec, PointIndex, PointVec, EMPTY_HULL}; +use crate::indexes::{EMPTY_HULL, EdgeIndex, HullIndex, HullVec, PointIndex, PointVec}; const N: usize = 1 << 10; diff --git a/cdt/src/triangulate.rs b/cdt/src/triangulate.rs index fd70376..a88b901 100644 --- a/cdt/src/triangulate.rs +++ b/cdt/src/triangulate.rs @@ -1,10 +1,10 @@ use crate::{ + Error, Point, contour::{Contour, ContourData}, half::Half, hull::Hull, - indexes::{EdgeIndex, HullIndex, PointIndex, PointVec, EMPTY_EDGE}, + indexes::{EMPTY_EDGE, EdgeIndex, HullIndex, PointIndex, PointVec}, predicates::{acute, centroid, distance2, in_circle, orient2d, pseudo_angle}, - Error, Point, }; #[derive(Debug)] @@ -313,11 +313,7 @@ impl Triangulation { assert!(src != PointIndex::empty()); assert!(dst != PointIndex::empty()); - if src > dst { - (dst, src) - } else { - (src, dst) - } + if src > dst { (dst, src) } else { (src, dst) } }) }; for (src, dst) in edge_iter() { @@ -390,10 +386,10 @@ impl Triangulation { for (a, b) in c.into_iter().zip(c.into_iter().skip(1)) { edges.push((*a, *b)); } - if let Some(start) = edges.get(next) { - if start.0 != edges.last().unwrap().1 { - return Err(Error::OpenContour); - } + if let Some(start) = edges.get(next) + && start.0 != edges.last().unwrap().1 + { + return Err(Error::OpenContour); } } Self::new_with_edges(pts, &edges) diff --git a/express/Cargo.toml b/express/Cargo.toml index 77972c6..25b17b4 100644 --- a/express/Cargo.toml +++ b/express/Cargo.toml @@ -2,12 +2,12 @@ name = "express" version = "0.1.0" authors = ["Matt Keeter "] -edition = "2018" +edition = "2024" [dependencies] fast-float = "0.2" memchr = "2.7" -nom = "6" +nom = "7" [dev-dependencies] clap = "3" diff --git a/express/examples/gen_exp.rs b/express/examples/gen_exp.rs index e54e3e3..5618f09 100644 --- a/express/examples/gen_exp.rs +++ b/express/examples/gen_exp.rs @@ -35,16 +35,16 @@ fn main() -> Result<(), Box> { eprintln!("parsed in {:?}", since_the_epoch); let start = SystemTime::now(); - let gen = express::gen::gen(&mut parsed.1)?; + let r#gen = express::r#gen::r#gen(&mut parsed.1)?; let end = SystemTime::now(); let since_the_epoch = end.duration_since(start).expect("Time went backwards"); eprintln!("generated in {:?}", since_the_epoch); match matches.value_of("output") { - Some(o) => std::fs::write(o, gen)?, + Some(o) => std::fs::write(o, r#gen)?, None => { if !matches.is_present("quiet") { - println!("{}", gen) + println!("{}", r#gen) } } } diff --git a/express/src/gen.rs b/express/src/gen.rs index e7436be..b86d0bc 100644 --- a/express/src/gen.rs +++ b/express/src/gen.rs @@ -26,14 +26,17 @@ enum Type<'a> { } struct TypeMap<'a>(HashMap<&'a str, Type<'a>>, &'a HashMap<&'a str, Ref<'a>>); impl<'a> TypeMap<'a> { - fn to_rtype_build(&mut self, s: &'a str) -> String { + fn build_rtype(&mut self, s: &'a str) -> String { if !self.0.contains_key(s) { self.build(s); } self.to_rtype(s) } fn is_entity(&self, s: &str) -> bool { - let t = self.0.get(s).unwrap_or_else(|| panic!("Could not get {:?}", s)); + let t = self + .0 + .get(s) + .unwrap_or_else(|| panic!("Could not get {:?}", s)); match &t { Type::Entity { .. } => true, Type::Select(v) => v.iter().all(|s| self.is_entity(s)), @@ -41,7 +44,10 @@ impl<'a> TypeMap<'a> { } } fn to_rtype(&self, s: &str) -> String { - let t = self.0.get(s).unwrap_or_else(|| panic!("Could not get {:?}", s)); + let t = self + .0 + .get(s) + .unwrap_or_else(|| panic!("Could not get {:?}", s)); match &t { Type::Entity { .. } | Type::Redeclared(_) @@ -53,20 +59,20 @@ impl<'a> TypeMap<'a> { Type::Aggregation { optional, type_ } => { if *optional { - format!("Vec>", self.to_inner_rtype(type_)) + format!("Vec>", Self::to_inner_rtype(type_)) } else { - format!("Vec<{}>", self.to_inner_rtype(type_)) + format!("Vec<{}>", Self::to_inner_rtype(type_)) } } } } - fn to_inner_rtype(&self, t: &Type<'a>) -> String { + fn to_inner_rtype(t: &Type<'a>) -> String { match &t { Type::Aggregation { optional, type_ } => { if *optional { - format!("Vec>", self.to_inner_rtype(type_)) + format!("Vec>", Self::to_inner_rtype(type_)) } else { - format!("Vec<{}>", self.to_inner_rtype(type_)) + format!("Vec<{}>", Self::to_inner_rtype(type_)) } } Type::Redeclared(r) => { @@ -90,7 +96,10 @@ impl<'a> TypeMap<'a> { if !self.0.contains_key(s) { self.build(s); } - let t = self.0.get(s).unwrap_or_else(|| panic!("Could not get {:?}", s)); + let t = self + .0 + .get(s) + .unwrap_or_else(|| panic!("Could not get {:?}", s)); if let Type::Entity { attrs, .. } = &t { attrs.clone() } else { @@ -132,15 +141,15 @@ impl<'a> Type<'a> { where W: std::fmt::Write, { - if let Type::Entity { supertypes, .. } = self { - if !supertypes.is_empty() { - write!(buf, r#" "{}" => &["#, capitalize(name))?; - for (i, s) in supertypes.iter().enumerate() { - if i == supertypes.len() - 1 { - writeln!(buf, r#""{}"],"#, capitalize(s))?; - } else { - write!(buf, r#""{}", "#, capitalize(s))?; - } + if let Type::Entity { supertypes, .. } = self + && !supertypes.is_empty() + { + write!(buf, r#" "{}" => &["#, capitalize(name))?; + for (i, s) in supertypes.iter().enumerate() { + if i == supertypes.len() - 1 { + writeln!(buf, r#""{}"],"#, capitalize(s))?; + } else { + write!(buf, r#""{}", "#, capitalize(s))?; } } } @@ -366,8 +375,8 @@ impl<'a> HasId for {0}<'a> {{ }} "#, camel_name, - type_map.to_inner_rtype(self), - type_map.to_inner_rtype(type_) + TypeMap::to_inner_rtype(self), + TypeMap::to_inner_rtype(type_) )?; } @@ -506,7 +515,7 @@ enum Ref<'a> { //////////////////////////////////////////////////////////////////////////////// -pub fn gen(s: &mut Syntax) -> Result { +pub fn r#gen(s: &mut Syntax) -> Result { assert!(s.0.len() == 1, "Multiple schemas are unsupported"); // First pass: collect entity names, then convert ambiguous IDs in SELECT @@ -724,7 +733,7 @@ impl<'a> SchemaBody<'a> { impl<'a> Declaration<'a> { fn collect_entity_names(&self, entity_names: &mut HashSet<&'a str>) { if let Declaration::Entity(d) = self { - entity_names.insert(d.0 .0 .0); + entity_names.insert(d.0.0.0); } } fn disambiguate(&mut self, entity_names: &HashSet<&str>) { @@ -735,7 +744,7 @@ impl<'a> Declaration<'a> { fn build_ref_map(&'a self, ref_map: &mut HashMap<&'a str, Ref<'a>>) { match self { Declaration::Entity(d) => { - ref_map.insert(d.0 .0 .0, Ref::Entity(d)); + ref_map.insert(d.0.0.0, Ref::Entity(d)); } Declaration::Type(d) => { ref_map.insert(d.type_id.0, Ref::Type(&d.underlying_type)); @@ -752,7 +761,7 @@ impl<'a> TypeDecl<'a> { } } impl<'a> UnderlyingType<'a> { - fn to_type(&'a self, type_map: &mut TypeMap<'a>) -> Type { + fn to_type(&'a self, type_map: &mut TypeMap<'a>) -> Type<'a> { match self { UnderlyingType::Concrete(c) => c.to_type(type_map), UnderlyingType::Constructed(c) => c.to_type(), @@ -760,7 +769,7 @@ impl<'a> UnderlyingType<'a> { } } impl<'a> ConcreteTypes<'a> { - fn to_type(&self, type_map: &mut TypeMap<'a>) -> Type { + fn to_type(&'a self, type_map: &mut TypeMap<'a>) -> Type<'a> { match self { ConcreteTypes::Aggregation(a) => a.to_type(type_map), ConcreteTypes::Simple(s) => s.to_type(), @@ -815,7 +824,7 @@ impl<'a> SimpleExpression<'a> { } } impl<'a> AggregationTypes<'a> { - fn to_type(&self, type_map: &mut TypeMap<'a>) -> Type { + fn to_type(&'a self, type_map: &mut TypeMap<'a>) -> Type<'a> { let (optional, instantiable) = match self { AggregationTypes::Array(a) => (a.optional, &a.instantiable_type), AggregationTypes::Bag(a) => (false, &a.1), @@ -838,7 +847,7 @@ impl<'a> AggregationTypes<'a> { } } impl<'a> ConstructedTypes<'a> { - fn to_type(&'a self) -> Type { + fn to_type(&'a self) -> Type<'a> { match self { ConstructedTypes::Enumeration(e) => e.to_type(), ConstructedTypes::Select(s) => s.to_type(), @@ -846,7 +855,7 @@ impl<'a> ConstructedTypes<'a> { } } impl<'a> EnumerationType<'a> { - fn to_type(&self) -> Type { + fn to_type(&self) -> Type<'_> { assert!( !self.extensible, "Extensible enumerations are not supported" @@ -858,7 +867,7 @@ impl<'a> EnumerationType<'a> { } } impl<'a> EnumerationItems<'a> { - fn to_type(&self) -> Type { + fn to_type(&self) -> Type<'_> { let mut out = Vec::new(); for e in &self.0 { out.push(e.0); @@ -867,7 +876,7 @@ impl<'a> EnumerationItems<'a> { } } impl<'a> SelectType<'a> { - fn to_type(&'a self) -> Type { + fn to_type(&'a self) -> Type<'a> { assert!(!self.extensible, "Cannot handle extensible lists"); assert!(!self.generic_entity, "Cannot handle generic entity lists"); match &self.list_or_extension { @@ -877,7 +886,7 @@ impl<'a> SelectType<'a> { } } impl<'a> SelectList<'a> { - fn to_type(&'a self) -> Type { + fn to_type(&'a self) -> Type<'a> { let mut out = Vec::new(); for e in &self.0 { out.push(e.name()); @@ -897,7 +906,7 @@ impl<'a> EntityDecl<'a> { AttributeDecl::Redeclared(r) => { // There can't be a RENAMED clause here assert!(r.1.is_none()); - derived.insert((r.0 .0 .0 .0, r.0 .1 .0 .0)); + derived.insert((r.0.0.0.0, r.0.1.0.0)); } AttributeDecl::Id(_) => continue, } @@ -910,7 +919,7 @@ impl<'a> EntityDecl<'a> { // Tag any inherited attribute names with > 1 occurence so we can // special-case them in the struct - let subsuper = &self.0 .1; + let subsuper = &self.0.1; let mut inherited_name_count: HashMap<&str, usize> = HashMap::new(); if let Some(subs) = &subsuper.1 { for sub in &subs.0 { @@ -1006,7 +1015,7 @@ impl<'a> ParameterType<'a> { fn to_attr_type_str(&'a self, type_map: &mut TypeMap<'a>) -> String { match self { ParameterType::Generalized(g) => g.to_attr_type_str(type_map), - ParameterType::Named(e) => type_map.to_rtype_build(e.name()), + ParameterType::Named(e) => type_map.build_rtype(e.name()), ParameterType::Simple(e) => e.to_attr_type_str().to_owned(), } } @@ -1019,7 +1028,7 @@ impl<'a> GeneralAggregationTypes<'a> { GeneralAggregationTypes::List(a) => a.bounds.as_ref().map(|b| &b.1), GeneralAggregationTypes::Set(a) => a.bounds.as_ref().map(|b| &b.1), }; - upper.and_then(|v| v.0 .0.to_value()) + upper.and_then(|v| v.0.0.to_value()) } fn to_attr_type_str(&'a self, type_map: &mut TypeMap<'a>) -> String { let (optional, param_type) = match self { @@ -1052,13 +1061,15 @@ impl<'a> SimpleTypes<'a> { SimpleTypes::String(_) => "&'a str", } } - fn to_type(&self) -> Type { + fn to_type(&self) -> Type<'_> { Type::RedeclaredPrimitive(self.to_attr_type_str()) } } impl<'a> ConstructedTypes<'a> { fn disambiguate(&mut self, entity_names: &HashSet<&str>) { - if let ConstructedTypes::Select(e) = self { e.disambiguate(entity_names) } + if let ConstructedTypes::Select(e) = self { + e.disambiguate(entity_names) + } } } impl<'a> SelectType<'a> { diff --git a/express/src/lib.rs b/express/src/lib.rs index 2115388..44d18b1 100644 --- a/express/src/lib.rs +++ b/express/src/lib.rs @@ -1,2 +1,2 @@ -pub mod gen; +pub mod r#gen; pub mod parse; diff --git a/express/src/parse.rs b/express/src/parse.rs index 0baabbc..80f74e8 100644 --- a/express/src/parse.rs +++ b/express/src/parse.rs @@ -3,7 +3,6 @@ use nom::{ branch::alt, character::complete::{alpha1, multispace0}, combinator::{map, map_opt, not, opt, peek, recognize}, - error::*, multi::{fold_many0, fold_many1, many0, many0_count, many1, separated_list0, separated_list1}, sequence::{delimited, pair, preceded, terminated, tuple}, }; @@ -11,8 +10,8 @@ use nom::{ pub type IResult<'a, U> = nom::IResult<&'a str, U, nom::error::VerboseError<&'a str>>; fn build_err<'a, U>(s: &'a str, msg: &'static str) -> IResult<'a, U> { - Err(nom::Err::Error(VerboseError { - errors: vec![(s, VerboseErrorKind::Context(msg))], + Err(nom::Err::Error(nom::error::VerboseError { + errors: vec![(s, nom::error::VerboseErrorKind::Context(msg))], })) } @@ -30,14 +29,14 @@ fn char<'a>(c: char) -> impl FnMut(&'a str) -> IResult<'a, char> { } /// Overloaded version of nom's `tag` that eats trailing whitespace -fn tag<'a>(s: &'a str) -> impl FnMut(&'a str) -> IResult<&'a str> { +fn tag<'a>(s: &'a str) -> impl FnMut(&'a str) -> IResult<'a, &'a str> { ws(nom::bytes::complete::tag(s)) } /// Matches a specific keyword, which ensuring that it's not followed by /// a letter. This avoids cases like `generic_expression` being parsed as /// `generic`, `_expression`. -fn kw<'a>(s: &'a str) -> impl FnMut(&'a str) -> IResult<&'a str> { +fn kw<'a>(s: &'a str) -> impl FnMut(&'a str) -> IResult<'a, &'a str> { ws(terminated( nom::bytes::complete::tag(s), not(alt((letter, digit, char('_')))), @@ -72,18 +71,33 @@ where /// lets you define them without as much boilerplate, with or without a /// separate parser function. macro_rules! alias { - ($a:ident $(< $lt:lifetime >)?, $b:ident) => { + ($a:ident, $b:ident) => { #[derive(Debug)] - pub struct $a $(< $lt >)?(pub $b $(< $lt >)?); - impl $(< $lt >)? $a $(< $lt >)? { - fn parse(s: &$( $lt )? str) -> IResult { + pub struct $a(pub $b); + impl $a { + fn parse(s: &str) -> IResult<'_, Self> { map($b::parse, Self)(s) } } }; - ($a:ident $(< $lt:lifetime >)?, $b:ident, $parse_a:ident) => { - alias!($a$(< $lt >)?, $b); - fn $parse_a(s: &str) -> IResult<$a> { + ($a:ident<'a>, $b:ident) => { + #[derive(Debug)] + pub struct $a<'a>(pub $b<'a>); + impl<'a> $a<'a> { + fn parse(s: &'a str) -> IResult<'a, Self> { + map($b::parse, Self)(s) + } + } + }; + ($a:ident, $b:ident, $parse_a:ident) => { + alias!($a, $b); + fn $parse_a(s: &str) -> IResult<'_, $a> { + $a::parse(s) + } + }; + ($a:ident<'a>, $b:ident, $parse_a:ident) => { + alias!($a<'a>, $b); + fn $parse_a(s: &str) -> IResult<'_, $a<'_>> { $a::parse(s) } }; @@ -97,7 +111,7 @@ macro_rules! alias { macro_rules! id_type { ($a:ident, $parse_a:ident) => { id_type!($a); - fn $parse_a(s: &str) -> IResult<$a> { + fn $parse_a(s: &str) -> IResult<'_, $a<'_>> { let (s, r) = SimpleId::parse(s)?; Ok((s, $a(r.0))) } @@ -137,14 +151,14 @@ pub fn strip_comments_and_lower(data: &[u8]) -> String { } /// Main entry function for the parser -pub fn parse(s: &str) -> IResult { +pub fn parse(s: &str) -> IResult<'_, Syntax<'_>> { syntax(s) } //////////////////////////////////////////////////////////////////////////////// // 124 -fn digit(s: &str) -> IResult { +fn digit(s: &str) -> IResult<'_, char> { nom::character::complete::one_of("0123456789")(s) } @@ -152,29 +166,29 @@ fn digit(s: &str) -> IResult { // skipped due to using fast_float // 126 -fn encoded_character(s: &str) -> IResult { +fn encoded_character(s: &str) -> IResult<'_, char> { map(recognize(tuple((octet, octet, octet, octet))), |v| { std::char::from_u32(u32::from_str_radix(v, 16).unwrap()).unwrap() })(s) } // 127 -fn hex_digit(s: &str) -> IResult { +fn hex_digit(s: &str) -> IResult<'_, char> { alt((digit, nom::character::complete::one_of("abcdef")))(s) } // 128 -fn letter(s: &str) -> IResult { +fn letter(s: &str) -> IResult<'_, char> { nom::character::complete::one_of("abcdefghijklmnopqrstuvwxyz")(s) } // 132 -fn not_paren_star_quote_special(s: &str) -> IResult { +fn not_paren_star_quote_special(s: &str) -> IResult<'_, char> { nom::character::complete::one_of("!\"#$%&+,-./:;<=>?@[\\]^_‘{|}~")(s) } // 134 -fn not_quote(s: &str) -> IResult { +fn not_quote(s: &str) -> IResult<'_, char> { alt(( not_paren_star_quote_special, letter, @@ -184,30 +198,28 @@ fn not_quote(s: &str) -> IResult { } // 136 -fn octet(s: &str) -> IResult<&str> { +fn octet(s: &str) -> IResult<'_, &str> { recognize(pair(hex_digit, hex_digit))(s) } // 139 -fn binary_literal(s: &str) -> IResult { - let bits = fold_many1(alt((char('0'), char('1'))), 0, |acc, item| { - acc * 2 + item.to_digit(10).unwrap() as usize - }); +fn binary_literal(s: &str) -> IResult<'_, usize> { + let bits = fold_many1( + alt((char('0'), char('1'))), + || 0, + |acc, item| acc * 2 + item.to_digit(10).unwrap() as usize, + ); preceded(char('%'), bits)(s) } // 140 -fn encoded_string_literal(s: &str) -> IResult { +fn encoded_string_literal(s: &str) -> IResult<'_, String> { delimited( char('"'), - fold_many0( - encoded_character, - String::new(), - |mut s: String, c: char| { - s.push(c); - s - }, - ), + fold_many0(encoded_character, String::new, |mut s: String, c: char| { + s.push(c); + s + }), char('"'), )(s) } @@ -216,13 +228,13 @@ fn encoded_string_literal(s: &str) -> IResult { // skipped because we're using fast_float instead // 142 -fn real_literal_(s: &str) -> IResult { +fn real_literal_(s: &str) -> IResult<'_, f64> { match fast_float::parse_partial::(s) { Err(_) => build_err(s, "Could not parse float"), Ok((x, n)) => Ok((&s[n..], x)), } } -fn real_literal(s: &str) -> IResult { +fn real_literal(s: &str) -> IResult<'_, f64> { ws(real_literal_)(s) } @@ -230,13 +242,13 @@ fn real_literal(s: &str) -> IResult { #[derive(Debug, Eq, PartialEq)] pub struct SimpleId<'a>(pub &'a str); impl<'a> SimpleId<'a> { - fn parse(s: &'a str) -> IResult { + fn parse(s: &'a str) -> IResult<'a, Self> { let r = ws(map( pair(letter, many0_count(alt((letter, digit, char('_'))))), |(_c, i)| SimpleId(&s[..(i + 1)]), ))(s)?; // Refuse to match language keywords - match r.1 .0 { + match r.1.0 { "abs" | "abstract" | "acos" @@ -356,12 +368,12 @@ impl<'a> SimpleId<'a> { } } } -fn simple_id(s: &str) -> IResult { +fn simple_id(s: &str) -> IResult<'_, SimpleId<'_>> { SimpleId::parse(s) } // 144 simple_string_literal = \q { ( \q \q ) | not_quote | \s | \x9 | \xA | \xD } \q . -fn simple_string_literal(s: &str) -> IResult { +fn simple_string_literal(s: &str) -> IResult<'_, String> { let f = alt(( map(tag("''"), |_| '\''), not_quote, @@ -369,7 +381,7 @@ fn simple_string_literal(s: &str) -> IResult { )); delimited( char('\''), - fold_many0(f, String::new(), |mut s, c| { + fold_many0(f, String::new, |mut s, c| { s.push(c); s }), @@ -396,19 +408,20 @@ id_type!(TypeRef, type_ref); id_type!(VariableRef); // 164 abstract_entity_declaration = ABSTRACT . -fn abstract_entity_declaration(s: &str) -> IResult<()> { +fn abstract_entity_declaration(s: &str) -> IResult<'_, ()> { map(kw("abstract"), |_| ())(s) } // 165 abstract_supertype = ABSTRACT SUPERTYPE ’;’ . -fn abstract_supertype(s: &str) -> IResult<()> { +fn abstract_supertype(s: &str) -> IResult<'_, ()> { map(tuple((kw("abstract"), kw("supertype"), char(';'))), |_| ())(s) } // 166 abstract_supertype_declaration = ABSTRACT SUPERTYPE [ subtype_constraint ] . +#[expect(dead_code)] #[derive(Debug)] pub struct AbstractSupertypeDeclaration<'a>(Option>); -fn abstract_supertype_declaration(s: &str) -> IResult { +fn abstract_supertype_declaration(s: &str) -> IResult<'_, AbstractSupertypeDeclaration<'_>> { map( tuple((kw("abstract"), kw("supertype"), opt(subtype_constraint))), |(_, _, a)| AbstractSupertypeDeclaration(a), @@ -418,7 +431,7 @@ fn abstract_supertype_declaration(s: &str) -> IResult(Vec>); -fn actual_parameter_list(s: &str) -> IResult { +fn actual_parameter_list(s: &str) -> IResult<'_, ActualParameterList<'_>> { map(parens(list1(',', parameter)), ActualParameterList)(s) } @@ -430,7 +443,7 @@ pub enum AddLikeOp { Or, Xor, } -fn add_like_op(s: &str) -> IResult { +fn add_like_op(s: &str) -> IResult<'_, AddLikeOp> { use AddLikeOp::*; alt(( map(char('+'), |_| Add), @@ -441,9 +454,10 @@ fn add_like_op(s: &str) -> IResult { } // 169 +#[expect(dead_code)] #[derive(Debug)] pub struct AggregateInitializer<'a>(Vec>); -fn aggregate_initializer(s: &str) -> IResult { +fn aggregate_initializer(s: &str) -> IResult<'_, AggregateInitializer<'_>> { map( delimited(char('['), list0(',', element), char(']')), AggregateInitializer, @@ -454,9 +468,10 @@ fn aggregate_initializer(s: &str) -> IResult { alias!(AggregateSource<'a>, SimpleExpression, aggregate_source); // 171 aggregate_type = AGGREGATE [ ’:’ type_label ] OF parameter_type . +#[expect(dead_code)] #[derive(Debug)] pub struct AggregateType<'a>(Option>, Box>); -fn aggregate_type(s: &str) -> IResult { +fn aggregate_type(s: &str) -> IResult<'_, AggregateType<'_>> { map( tuple(( kw("aggregate"), @@ -476,7 +491,7 @@ pub enum AggregationTypes<'a> { List(ListType<'a>), Set(SetType<'a>), } -fn aggregation_types(s: &str) -> IResult { +fn aggregation_types(s: &str) -> IResult<'_, AggregationTypes<'_>> { use AggregationTypes::*; alt(( map(array_type, Array), @@ -493,7 +508,7 @@ pub struct AlgorithmHead<'a> { pub constant: Option>, pub local: Option>, } -fn algorithm_head(s: &str) -> IResult { +fn algorithm_head(s: &str) -> IResult<'_, AlgorithmHead<'_>> { map( tuple((many0(declaration), opt(constant_decl), opt(local_decl))), |(d, c, l)| AlgorithmHead { @@ -513,7 +528,7 @@ pub struct AliasStmt<'a> { pub qualifiers: Vec>, pub stmts: Vec>, } -fn alias_stmt(s: &str) -> IResult { +fn alias_stmt(s: &str) -> IResult<'_, AliasStmt<'_>> { map( tuple(( kw("alias"), @@ -541,7 +556,7 @@ pub struct ArrayType<'a> { pub unique: bool, pub instantiable_type: Box>, } -fn array_type(s: &str) -> IResult { +fn array_type(s: &str) -> IResult<'_, ArrayType<'_>> { map( tuple(( kw("array"), @@ -567,7 +582,7 @@ pub struct AssignmentStmt<'a> { pub qualifiers: Vec>, pub expression: Expression<'a>, } -fn assignment_stmt(s: &str) -> IResult { +fn assignment_stmt(s: &str) -> IResult<'_, AssignmentStmt<'_>> { map( tuple(( general_ref, @@ -590,7 +605,7 @@ pub enum AttributeDecl<'a> { Id(AttributeId<'a>), Redeclared(RedeclaredAttribute<'a>), } -fn attribute_decl(s: &str) -> IResult { +fn attribute_decl(s: &str) -> IResult<'_, AttributeDecl<'_>> { use AttributeDecl::*; alt((map(attribute_id, Id), map(redeclared_attribute, Redeclared)))(s) } @@ -601,14 +616,15 @@ id_type!(AttributeId, attribute_id); // 179 #[derive(Debug)] pub struct AttributeQualifier<'a>(pub AttributeRef<'a>); -fn attribute_qualifier(s: &str) -> IResult { +fn attribute_qualifier(s: &str) -> IResult<'_, AttributeQualifier<'_>> { map(preceded(char('.'), attribute_ref), AttributeQualifier)(s) } // 180 +#[expect(dead_code)] #[derive(Debug)] pub struct BagType<'a>(Option>, pub Box>); -fn bag_type(s: &str) -> IResult { +fn bag_type(s: &str) -> IResult<'_, BagType<'_>> { map( tuple((kw("bag"), opt(bound_spec), kw("of"), instantiable_type)), |(_, b, _, t)| BagType(b, Box::new(t)), @@ -616,14 +632,15 @@ fn bag_type(s: &str) -> IResult { } // 181 binary_type = BINARY [ width_spec ] . +#[expect(dead_code)] #[derive(Debug)] pub struct BinaryType<'a>(Option>); -fn binary_type(s: &str) -> IResult { +fn binary_type(s: &str) -> IResult<'_, BinaryType<'_>> { map(preceded(kw("binary"), opt(width_spec)), BinaryType)(s) } // 182 boolean_type = BOOLEAN . -fn boolean_type(s: &str) -> IResult<()> { +fn boolean_type(s: &str) -> IResult<'_, ()> { map(kw("boolean"), |_| ())(s) } @@ -634,9 +651,10 @@ alias!(Bound1<'a>, NumericExpression, bound_1); alias!(Bound2<'a>, NumericExpression, bound_2); // 185 +#[expect(dead_code)] #[derive(Debug)] pub struct BoundSpec<'a>(Bound1<'a>, pub Bound2<'a>); -fn bound_spec(s: &str) -> IResult { +fn bound_spec(s: &str) -> IResult<'_, BoundSpec<'_>> { map( tuple((char('['), bound_1, char(':'), bound_2, char(']'))), |(_, b1, _, b2, _)| BoundSpec(b1, b2), @@ -651,7 +669,7 @@ pub enum BuiltInConstant { Self_, Indeterminant, } -fn built_in_constant(s: &str) -> IResult { +fn built_in_constant(s: &str) -> IResult<'_, BuiltInConstant> { use BuiltInConstant::*; alt(( map(kw("const_e"), |_| ConstE), @@ -731,7 +749,7 @@ fn to_built_in_function(s: &str) -> Option { _ => return None, }) } -fn built_in_function(s: &str) -> IResult { +fn built_in_function(s: &str) -> IResult<'_, BuiltInFunction> { // Tokenize then match the keyword, instead of doing a huge alt(...) ws(map_opt(alpha1, to_built_in_function))(s) } @@ -742,15 +760,16 @@ pub enum BuiltInProcedure { Insert, Remove, } -fn built_in_procedure(s: &str) -> IResult { +fn built_in_procedure(s: &str) -> IResult<'_, BuiltInProcedure> { use BuiltInProcedure::*; alt((map(kw("insert"), |_| Insert), map(kw("remove"), |_| Remove)))(s) } // 189 case_action = case_label { ’,’ case_label } ’:’ stmt . +#[expect(dead_code)] #[derive(Debug)] pub struct CaseAction<'a>(Vec>, Stmt<'a>); -fn case_action(s: &str) -> IResult { +fn case_action(s: &str) -> IResult<'_, CaseAction<'_>> { map( tuple((list1(',', case_label), char(':'), stmt)), |(a, _, b)| CaseAction(a, b), @@ -768,7 +787,7 @@ pub struct CaseStmt<'a> { pub actions: Vec>, pub otherwise: Option>>, } -fn case_stmt(s: &str) -> IResult { +fn case_stmt(s: &str) -> IResult<'_, CaseStmt<'_>> { map( tuple(( kw("case"), @@ -791,9 +810,10 @@ fn case_stmt(s: &str) -> IResult { } // 192 compound_stmt = BEGIN stmt { stmt } END ’;’ . +#[expect(dead_code)] #[derive(Debug)] pub struct CompoundStmt<'a>(Vec>); -fn compound_stmt(s: &str) -> IResult { +fn compound_stmt(s: &str) -> IResult<'_, CompoundStmt<'_>> { map( delimited(kw("begin"), many1(stmt), pair(kw("end"), char(';'))), CompoundStmt, @@ -807,7 +827,7 @@ pub enum ConcreteTypes<'a> { Simple(SimpleTypes<'a>), TypeRef(TypeRef<'a>), } -fn concrete_types(s: &str) -> IResult { +fn concrete_types(s: &str) -> IResult<'_, ConcreteTypes<'_>> { use ConcreteTypes::*; alt(( map(aggregation_types, Aggregation), @@ -823,7 +843,7 @@ pub struct ConstantBody<'a> { pub instantiable_type: InstantiableType<'a>, pub expression: Expression<'a>, } -fn constant_body(s: &str) -> IResult { +fn constant_body(s: &str) -> IResult<'_, ConstantBody<'_>> { map( tuple(( constant_id, @@ -842,9 +862,10 @@ fn constant_body(s: &str) -> IResult { } // 195 +#[expect(dead_code)] #[derive(Debug)] pub struct ConstantDecl<'a>(Vec>); -fn constant_decl(s: &str) -> IResult { +fn constant_decl(s: &str) -> IResult<'_, ConstantDecl<'_>> { map( tuple(( kw("constant"), @@ -862,7 +883,7 @@ pub enum ConstantFactor<'a> { BuiltIn(BuiltInConstant), ConstantRef(ConstantRef<'a>), } -fn constant_factor(s: &str) -> IResult { +fn constant_factor(s: &str) -> IResult<'_, ConstantFactor<'_>> { use ConstantFactor::*; alt(( map(built_in_constant, BuiltIn), @@ -879,7 +900,7 @@ pub enum ConstructedTypes<'a> { Enumeration(EnumerationType<'a>), Select(SelectType<'a>), } -fn constructed_types(s: &str) -> IResult { +fn constructed_types(s: &str) -> IResult<'_, ConstructedTypes<'_>> { use ConstructedTypes::*; alt((map(enumeration_type, Enumeration), map(select_type, Select)))(s) } @@ -894,7 +915,7 @@ pub enum Declaration<'a> { SubtypeConstraint(SubtypeConstraintDecl<'a>), Type(TypeDecl<'a>), } -fn declaration(s: &str) -> IResult { +fn declaration(s: &str) -> IResult<'_, Declaration<'_>> { use Declaration::*; alt(( map(entity_decl, Entity), @@ -906,9 +927,10 @@ fn declaration(s: &str) -> IResult { } // 200 derived_attr = attribute_decl ’:’ parameter_type ’:=’ expression ’;’ . +#[expect(dead_code)] #[derive(Debug)] pub struct DerivedAttr<'a>(pub AttributeDecl<'a>, ParameterType<'a>, Expression<'a>); -fn derived_attr(s: &str) -> IResult { +fn derived_attr(s: &str) -> IResult<'_, DerivedAttr<'_>> { map( tuple(( attribute_decl, @@ -925,7 +947,7 @@ fn derived_attr(s: &str) -> IResult { // 201 derive_clause = DERIVE derived_attr { derived_attr } . #[derive(Debug)] pub struct DeriveClause<'a>(pub Vec>); -fn derive_clause(s: &str) -> IResult { +fn derive_clause(s: &str) -> IResult<'_, DeriveClause<'_>> { map(preceded(kw("derive"), many1(derived_attr)), DeriveClause)(s) } @@ -935,7 +957,7 @@ pub struct DomainRule<'a> { pub rule_label_id: Option>, pub expression: Expression<'a>, } -fn domain_rule(s: &str) -> IResult { +fn domain_rule(s: &str) -> IResult<'_, DomainRule<'_>> { let (s, rule_label_id) = opt(terminated(rule_label_id, char(':')))(s)?; let (s, expression) = expression(s)?; Ok(( @@ -948,9 +970,10 @@ fn domain_rule(s: &str) -> IResult { } // 203 +#[expect(dead_code)] #[derive(Debug)] pub struct Element<'a>(Expression<'a>, Option>); -fn element(s: &str) -> IResult { +fn element(s: &str) -> IResult<'_, Element<'_>> { map( pair(expression, opt(preceded(char(':'), repetition))), |(a, b)| Element(a, b), @@ -967,7 +990,7 @@ pub struct EntityBody<'a> { pub unique: Option>, pub where_: Option>, } -fn entity_body(s: &str) -> IResult { +fn entity_body(s: &str) -> IResult<'_, EntityBody<'_>> { let (s, explicit_attr) = many0(explicit_attr)(s)?; let (s, derive) = opt(derive_clause)(s)?; let (s, inverse) = opt(inverse_clause)(s)?; @@ -997,7 +1020,7 @@ pub struct EntityConstructor<'a> { // 206 entity_decl = entity_head entity_body END_ENTITY ’;’ . #[derive(Debug)] pub struct EntityDecl<'a>(pub EntityHead<'a>, pub EntityBody<'a>); -fn entity_decl(s: &str) -> IResult { +fn entity_decl(s: &str) -> IResult<'_, EntityDecl<'_>> { let (s, a) = entity_head(s)?; let (s, b) = entity_body(s)?; let (s, _) = kw("end_entity")(s)?; @@ -1008,7 +1031,7 @@ fn entity_decl(s: &str) -> IResult { // 207 entity_head = ENTITY entity_id subsuper ’;’ . #[derive(Debug)] pub struct EntityHead<'a>(pub EntityId<'a>, pub Subsuper<'a>); -fn entity_head(s: &str) -> IResult { +fn entity_head(s: &str) -> IResult<'_, EntityHead<'_>> { map( tuple((kw("entity"), entity_id, subsuper, char(';'))), |(_, a, b, _)| EntityHead(a, b), @@ -1024,7 +1047,7 @@ pub struct EnumerationExtension<'a> { pub type_ref: TypeRef<'a>, pub enumeration_items: Option>, } -fn enumeration_extension(s: &str) -> IResult { +fn enumeration_extension(s: &str) -> IResult<'_, EnumerationExtension<'_>> { map( preceded( kw("based_on"), @@ -1043,14 +1066,15 @@ id_type!(EnumerationId, enumeration_id); // 211 enumeration_items = ’(’ enumeration_id { ’,’ enumeration_id } ’)’ . #[derive(Debug)] pub struct EnumerationItems<'a>(pub Vec>); -fn enumeration_items(s: &str) -> IResult { +fn enumeration_items(s: &str) -> IResult<'_, EnumerationItems<'_>> { map(parens(list1(',', enumeration_id)), EnumerationItems)(s) } // 212 enumeration_reference = [ type_ref ’.’ ] enumeration_ref . +#[expect(dead_code)] #[derive(Debug)] pub struct EnumerationReference<'a>(Option>, EnumerationRef<'a>); -fn enumeration_reference(s: &str) -> IResult { +fn enumeration_reference(s: &str) -> IResult<'_, EnumerationReference<'_>> { map( tuple((opt(terminated(type_ref, char('.'))), enumeration_ref)), |(a, b)| EnumerationReference(a, b), @@ -1068,7 +1092,7 @@ pub struct EnumerationType<'a> { pub extensible: bool, pub items_or_extension: Option>, } -fn enumeration_type(s: &str) -> IResult { +fn enumeration_type(s: &str) -> IResult<'_, EnumerationType<'_>> { map( tuple(( opt(kw("extensible")), @@ -1092,7 +1116,7 @@ fn enumeration_type(s: &str) -> IResult { } // 214 escape_stmt = ESCAPE ’;’ . -fn escape_stmt(s: &str) -> IResult<()> { +fn escape_stmt(s: &str) -> IResult<'_, ()> { map(pair(kw("escape"), char(';')), |_| ())(s) } @@ -1104,7 +1128,7 @@ pub struct ExplicitAttr<'a> { pub optional: bool, pub parameter_type: ParameterType<'a>, } -fn explicit_attr(s: &str) -> IResult { +fn explicit_attr(s: &str) -> IResult<'_, ExplicitAttr<'_>> { map( tuple(( list1(',', attribute_decl), @@ -1122,26 +1146,27 @@ fn explicit_attr(s: &str) -> IResult { } // 216 expression = simple_expression [ rel_op_extended simple_expression ] . +#[expect(dead_code)] #[derive(Debug)] pub struct Expression<'a>( SimpleExpression<'a>, Option<(RelOpExtended, SimpleExpression<'a>)>, ); impl<'a> Expression<'a> { - fn parse(s: &'a str) -> IResult { + fn parse(s: &'a str) -> IResult<'a, Self> { let (s, a) = simple_expression(s)?; let (s, b) = opt(pair(rel_op_extended, simple_expression))(s)?; Ok((s, Self(a, b))) } } -fn expression(s: &str) -> IResult { +fn expression(s: &str) -> IResult<'_, Expression<'_>> { Expression::parse(s) } // 217 factor = simple_factor [ ’**’ simple_factor ] . #[derive(Debug)] pub struct Factor<'a>(pub SimpleFactor<'a>, pub Option>); -fn factor(s: &str) -> IResult { +fn factor(s: &str) -> IResult<'_, Factor<'_>> { map( pair(simple_factor, opt(preceded(tag("**"), simple_factor))), |(a, b)| Factor(a, b), @@ -1149,9 +1174,10 @@ fn factor(s: &str) -> IResult { } // 218 formal_parameter = parameter_id { ’,’ parameter_id } ’:’ parameter_type . +#[expect(dead_code)] #[derive(Debug)] pub struct FormalParameter<'a>(Vec>, ParameterType<'a>); -fn formal_parameter(s: &str) -> IResult { +fn formal_parameter(s: &str) -> IResult<'_, FormalParameter<'_>> { map( tuple((list1(',', parameter_id), char(':'), parameter_type)), |(a, _, b)| FormalParameter(a, b), @@ -1166,7 +1192,7 @@ pub enum BuiltInOrFunctionRef<'a> { } #[derive(Debug)] pub struct FunctionCall<'a>(BuiltInOrFunctionRef<'a>, ActualParameterList<'a>); -fn function_call(s: &str) -> IResult { +fn function_call(s: &str) -> IResult<'_, FunctionCall<'_>> { map( pair( alt(( @@ -1185,7 +1211,7 @@ pub struct FunctionDecl<'a> { pub algorithm_head: AlgorithmHead<'a>, pub stmts: Vec>, } -fn function_decl(s: &str) -> IResult { +fn function_decl(s: &str) -> IResult<'_, FunctionDecl<'_>> { map( tuple(( function_head, @@ -1210,7 +1236,7 @@ pub struct FunctionHead<'a> { pub params: Option>>, pub out: ParameterType<'a>, } -fn function_head(s: &str) -> IResult { +fn function_head(s: &str) -> IResult<'_, FunctionHead<'_>> { map( tuple(( kw("function"), @@ -1240,7 +1266,7 @@ pub enum GeneralizedTypes<'a> { GenericEntity(GenericEntityType<'a>), Generic(GenericType<'a>), } -fn generalized_types(s: &str) -> IResult { +fn generalized_types(s: &str) -> IResult<'_, GeneralizedTypes<'_>> { use GeneralizedTypes::*; alt(( map(aggregate_type, Aggregate), @@ -1259,7 +1285,7 @@ pub enum GeneralAggregationTypes<'a> { List(GeneralListType<'a>), Set(GeneralSetType<'a>), } -fn general_aggregation_types(s: &str) -> IResult { +fn general_aggregation_types(s: &str) -> IResult<'_, GeneralAggregationTypes<'_>> { use GeneralAggregationTypes::*; alt(( map(general_array_type, Array), @@ -1278,7 +1304,7 @@ pub struct GeneralArrayType<'a> { pub unique: bool, pub parameter_type: Box>, } -fn general_array_type(s: &str) -> IResult { +fn general_array_type(s: &str) -> IResult<'_, GeneralArrayType<'_>> { map( tuple(( kw("array"), @@ -1300,7 +1326,7 @@ fn general_array_type(s: &str) -> IResult { // 226 general_bag_type = BAG [ bound_spec ] OF parameter_type . #[derive(Debug)] pub struct GeneralBagType<'a>(pub Option>, pub Box>); -fn general_bag_type(s: &str) -> IResult { +fn general_bag_type(s: &str) -> IResult<'_, GeneralBagType<'_>> { map( tuple((kw("bag"), opt(bound_spec), kw("of"), parameter_type)), |(_, b, _, t)| GeneralBagType(b, Box::new(t)), @@ -1314,7 +1340,7 @@ pub struct GeneralListType<'a> { pub unique: bool, pub parameter_type: Box>, } -fn general_list_type(s: &str) -> IResult { +fn general_list_type(s: &str) -> IResult<'_, GeneralListType<'_>> { map( tuple(( kw("list"), @@ -1338,7 +1364,7 @@ pub enum GeneralRef<'a> { Variable(VariableRef<'a>), _SimpleId(SimpleId<'a>), } -fn general_ref(s: &str) -> IResult { +fn general_ref(s: &str) -> IResult<'_, GeneralRef<'_>> { map(simple_id, GeneralRef::_SimpleId)(s) } @@ -1348,7 +1374,7 @@ pub struct GeneralSetType<'a> { pub bounds: Option>, pub parameter_type: Box>, } -fn general_set_type(s: &str) -> IResult { +fn general_set_type(s: &str) -> IResult<'_, GeneralSetType<'_>> { map( tuple((kw("set"), opt(bound_spec), kw("of"), parameter_type)), |(_, b, _, t)| GeneralSetType { @@ -1359,9 +1385,10 @@ fn general_set_type(s: &str) -> IResult { } // 230 generic_entity_type = GENERIC_ENTITY [ ’:’ type_label ] . +#[expect(dead_code)] #[derive(Debug)] pub struct GenericEntityType<'a>(Option>); -fn generic_entity_type(s: &str) -> IResult { +fn generic_entity_type(s: &str) -> IResult<'_, GenericEntityType<'_>> { map( preceded(kw("generic_entity"), opt(preceded(char(':'), type_label))), GenericEntityType, @@ -1369,9 +1396,10 @@ fn generic_entity_type(s: &str) -> IResult { } // 231 generic_type = GENERIC [ ’:’ type_label ] . +#[expect(dead_code)] #[derive(Debug)] pub struct GenericType<'a>(Option>); -fn generic_type(s: &str) -> IResult { +fn generic_type(s: &str) -> IResult<'_, GenericType<'_>> { map( preceded(kw("generic"), opt(preceded(char(':'), type_label))), GenericType, @@ -1381,15 +1409,16 @@ fn generic_type(s: &str) -> IResult { // 232 group_qualifier = ’\’ entity_ref . #[derive(Debug)] pub struct GroupQualifier<'a>(pub EntityRef<'a>); -fn group_qualifier(s: &str) -> IResult { +fn group_qualifier(s: &str) -> IResult<'_, GroupQualifier<'_>> { map(preceded(char('\\'), entity_ref), GroupQualifier)(s) } // 233 if_stmt = IF logical_expression THEN stmt { stmt } [ ELSE stmt { stmt } ] // END_IF ’;’ . +#[expect(dead_code)] #[derive(Debug)] pub struct IfStmt<'a>(LogicalExpression<'a>, Vec>, Option>>); -fn if_stmt(s: &str) -> IResult { +fn if_stmt(s: &str) -> IResult<'_, IfStmt<'_>> { map( tuple(( kw("if"), @@ -1415,7 +1444,7 @@ pub struct IncrementControl<'a> { pub bound2: Bound2<'a>, pub increment: Option>, } -fn increment_control(s: &str) -> IResult { +fn increment_control(s: &str) -> IResult<'_, IncrementControl<'_>> { map( tuple(( variable_id, @@ -1444,9 +1473,10 @@ alias!(Index1<'a>, Index, index_1); alias!(Index2<'a>, Index, index_2); // 239 index_qualifier = ’[’ index_1 [ ’:’ index_2 ] ’]’ . +#[expect(dead_code)] #[derive(Debug)] pub struct IndexQualifier<'a>(Index1<'a>, Option>); -fn index_qualifier(s: &str) -> IResult { +fn index_qualifier(s: &str) -> IResult<'_, IndexQualifier<'_>> { let (s, _) = char('[')(s)?; let (s, index1) = index_1(s)?; let (s, index2) = opt(preceded(char(';'), index_2))(s)?; @@ -1460,13 +1490,13 @@ pub enum InstantiableType<'a> { Concrete(ConcreteTypes<'a>), EntityRef(EntityRef<'a>), } -fn instantiable_type(s: &str) -> IResult { +fn instantiable_type(s: &str) -> IResult<'_, InstantiableType<'_>> { use InstantiableType::*; alt((map(concrete_types, Concrete), map(entity_ref, EntityRef)))(s) } // 241 integer_type = INTEGER . -fn integer_type(s: &str) -> IResult<()> { +fn integer_type(s: &str) -> IResult<'_, ()> { map(kw("integer"), |_| ())(s) } @@ -1476,7 +1506,7 @@ pub enum InterfaceSpecification<'a> { ReferenceClause(ReferenceClause<'a>), UseClause(UseClause<'a>), } -fn interface_specification(s: &str) -> IResult { +fn interface_specification(s: &str) -> IResult<'_, InterfaceSpecification<'_>> { use InterfaceSpecification::*; alt(( map(reference_clause, ReferenceClause), @@ -1493,7 +1523,7 @@ pub struct Interval<'a> { pub op2: IntervalOp, pub high: IntervalHigh<'a>, } -fn interval(s: &str) -> IResult { +fn interval(s: &str) -> IResult<'_, Interval<'_>> { map( delimited( char('{'), @@ -1531,7 +1561,7 @@ pub enum IntervalOp { LessThan, LessThanOrEqual, } -fn interval_op(s: &str) -> IResult { +fn interval_op(s: &str) -> IResult<'_, IntervalOp> { alt(( // Sort by length to pick the best match map(tag("<="), |_| IntervalOp::LessThanOrEqual), @@ -1554,7 +1584,7 @@ pub struct InverseAttr<'a> { pub entity_for: Option>, pub attribute_ref: AttributeRef<'a>, } -fn inverse_attr(s: &str) -> IResult { +fn inverse_attr(s: &str) -> IResult<'_, InverseAttr<'_>> { map( tuple(( attribute_decl, @@ -1587,9 +1617,10 @@ fn inverse_attr(s: &str) -> IResult { } // 249 inverse_clause = INVERSE inverse_attr { inverse_attr } . +#[expect(dead_code)] #[derive(Debug)] pub struct InverseClause<'a>(Vec>); -fn inverse_clause(s: &str) -> IResult { +fn inverse_clause(s: &str) -> IResult<'_, InverseClause<'_>> { map(preceded(kw("inverse"), many1(inverse_attr)), InverseClause)(s) } @@ -1600,7 +1631,7 @@ pub struct ListType<'a> { pub unique: bool, pub instantiable_type: Box>, } -fn list_type(s: &str) -> IResult { +fn list_type(s: &str) -> IResult<'_, ListType<'_>> { map( tuple(( kw("list"), @@ -1625,7 +1656,7 @@ pub enum Literal { Logical(LogicalLiteral), Real(f64), } -fn literal(s: &str) -> IResult { +fn literal(s: &str) -> IResult<'_, Literal> { use Literal::*; alt(( map(binary_literal, Binary), @@ -1635,9 +1666,10 @@ fn literal(s: &str) -> IResult { ))(s) } // 252 local_decl = LOCAL local_variable { local_variable } END_LOCAL ’;’ +#[expect(dead_code)] #[derive(Debug)] pub struct LocalDecl<'a>(Vec>); -fn local_decl(s: &str) -> IResult { +fn local_decl(s: &str) -> IResult<'_, LocalDecl<'_>> { map( tuple(( kw("local"), @@ -1656,7 +1688,7 @@ pub struct LocalVariable<'a> { pub parameter_type: ParameterType<'a>, pub expression: Option>, } -fn local_variable(s: &str) -> IResult { +fn local_variable(s: &str) -> IResult<'_, LocalVariable<'_>> { map( tuple(( list1(',', variable_id), @@ -1683,7 +1715,7 @@ pub enum LogicalLiteral { False, Unknown, } -fn logical_literal(s: &str) -> IResult { +fn logical_literal(s: &str) -> IResult<'_, LogicalLiteral> { alt(( map(kw("false"), |_| LogicalLiteral::False), map(kw("true"), |_| LogicalLiteral::True), @@ -1692,7 +1724,7 @@ fn logical_literal(s: &str) -> IResult { } // 256 logical_type = LOGICAL . -fn logical_type(s: &str) -> IResult<()> { +fn logical_type(s: &str) -> IResult<'_, ()> { map(kw("logical"), |_| ())(s) } @@ -1706,7 +1738,7 @@ pub enum MultiplicationLikeOp { And, ComplexEntity, } -fn multiplication_like_op(s: &str) -> IResult { +fn multiplication_like_op(s: &str) -> IResult<'_, MultiplicationLikeOp> { use MultiplicationLikeOp::*; alt(( map(char('*'), |_| Mul), @@ -1725,7 +1757,7 @@ pub enum NamedTypes<'a> { Type(TypeRef<'a>), _Ambiguous(SimpleId<'a>), } -fn named_types(s: &str) -> IResult { +fn named_types(s: &str) -> IResult<'_, NamedTypes<'_>> { map(simple_id, NamedTypes::_Ambiguous)(s) } @@ -1741,7 +1773,7 @@ pub struct NamedTypeOrRename<'a> { pub named_types: NamedTypes<'a>, pub rename: Option>, } -fn named_type_or_rename(s: &str) -> IResult { +fn named_type_or_rename(s: &str) -> IResult<'_, NamedTypeOrRename<'_>> { map( pair( named_types, @@ -1758,12 +1790,12 @@ fn named_type_or_rename(s: &str) -> IResult { } // 260 null_stmt = ’;’ . -fn null_stmt(s: &str) -> IResult<()> { +fn null_stmt(s: &str) -> IResult<'_, ()> { map(char(';'), |_| ())(s) } // 261 number_type = NUMBER . -fn number_type(s: &str) -> IResult<()> { +fn number_type(s: &str) -> IResult<'_, ()> { map(kw("number"), |_| ())(s) } @@ -1771,9 +1803,10 @@ fn number_type(s: &str) -> IResult<()> { alias!(NumericExpression<'a>, SimpleExpression); // 263 one_of = ONEOF ’(’ supertype_expression { ’,’ supertype_expression } ’)’ +#[expect(dead_code)] #[derive(Debug)] pub struct OneOf<'a>(Vec>); -fn one_of(s: &str) -> IResult { +fn one_of(s: &str) -> IResult<'_, OneOf<'_>> { map( preceded(kw("oneof"), parens(list1(',', supertype_expression))), OneOf, @@ -1793,7 +1826,7 @@ pub enum ParameterType<'a> { Named(NamedTypes<'a>), Simple(SimpleTypes<'a>), } -fn parameter_type(s: &str) -> IResult { +fn parameter_type(s: &str) -> IResult<'_, ParameterType<'_>> { use ParameterType::*; alt(( map(generalized_types, Generalized), @@ -1803,6 +1836,7 @@ fn parameter_type(s: &str) -> IResult { } // 267 +#[expect(dead_code)] #[derive(Debug)] pub struct Population<'a>(EntityRef<'a>); // never parsed @@ -1815,7 +1849,7 @@ pub enum Primary<'a> { Literal(Literal), Qualifiable(QualifiableFactor<'a>, Vec>), } -fn primary(s: &str) -> IResult { +fn primary(s: &str) -> IResult<'_, Primary<'_>> { use Primary::*; alt(( // Order so that the longest parser runs first @@ -1838,7 +1872,7 @@ pub struct ProcedureCallStmt<'a> { pub proc: BuiltInOrProcedureRef<'a>, pub params: Option>, } -fn procedure_call_stmt(s: &str) -> IResult { +fn procedure_call_stmt(s: &str) -> IResult<'_, ProcedureCallStmt<'_>> { map( tuple(( alt(( @@ -1852,9 +1886,10 @@ fn procedure_call_stmt(s: &str) -> IResult { )(s) } // 271 procedure_decl = procedure_head algorithm_head { stmt } END_PROCEDURE ’;’ . +#[expect(dead_code)] #[derive(Debug)] pub struct ProcedureDecl<'a>(ProcedureHead<'a>, AlgorithmHead<'a>, Vec>); -fn procedure_decl(s: &str) -> IResult { +fn procedure_decl(s: &str) -> IResult<'_, ProcedureDecl<'_>> { map( tuple(( procedure_head, @@ -1874,7 +1909,7 @@ pub struct ProcedureHead<'a> { pub procedure_id: ProcedureId<'a>, pub args: Option)>>, } -fn procedure_head(s: &str) -> IResult { +fn procedure_head(s: &str) -> IResult<'_, ProcedureHead<'_>> { map( tuple(( kw("procedure"), @@ -1913,13 +1948,13 @@ pub enum QualifiableFactor<'a> { // catch-all for attribute, constant, general, population _Ambiguous(&'a str), } -fn qualifiable_factor(s: &str) -> IResult { +fn qualifiable_factor(s: &str) -> IResult<'_, QualifiableFactor<'_>> { alt(( // Try parsing the function call first. One valid parse is just a // function_ref, so we convert that case to _Ambiguous, since it may // not actually be a function. map(function_call, |b| { - if b.1 .0.is_empty() { + if b.1.0.is_empty() { match b.0 { BuiltInOrFunctionRef::BuiltIn(_) => QualifiableFactor::FunctionCall(b), BuiltInOrFunctionRef::Ref(b) => QualifiableFactor::_Ambiguous(b.0), @@ -1941,7 +1976,7 @@ fn qualifiable_factor(s: &str) -> IResult { // 275 qualified_attribute = SELF group_qualifier attribute_qualifier . #[derive(Debug)] pub struct QualifiedAttribute<'a>(pub GroupQualifier<'a>, pub AttributeQualifier<'a>); -fn qualified_attribute(s: &str) -> IResult { +fn qualified_attribute(s: &str) -> IResult<'_, QualifiedAttribute<'_>> { map( tuple((kw("self"), group_qualifier, attribute_qualifier)), |(_, a, b)| QualifiedAttribute(a, b), @@ -1955,7 +1990,7 @@ pub enum Qualifier<'a> { Group(GroupQualifier<'a>), Index(IndexQualifier<'a>), } -fn qualifier(s: &str) -> IResult { +fn qualifier(s: &str) -> IResult<'_, Qualifier<'_>> { use Qualifier::*; alt(( map(attribute_qualifier, Attribute), @@ -1972,7 +2007,7 @@ pub struct QueryExpression<'a> { pub aggregate: AggregateSource<'a>, pub logical_expression: LogicalExpression<'a>, } -fn query_expression(s: &str) -> IResult { +fn query_expression(s: &str) -> IResult<'_, QueryExpression<'_>> { map( tuple(( kw("query"), @@ -1993,16 +2028,17 @@ fn query_expression(s: &str) -> IResult { } // 278 real_type = REAL [ ’(’ precision_spec ’)’ ] . +#[expect(dead_code)] #[derive(Debug)] pub struct RealType<'a>(Option>); -fn real_type(s: &str) -> IResult { +fn real_type(s: &str) -> IResult<'_, RealType<'_>> { map(preceded(kw("real"), opt(parens(precision_spec))), RealType)(s) } // 279 redeclared_attribute = qualified_attribute [ RENAMED attribute_id ] . #[derive(Debug)] pub struct RedeclaredAttribute<'a>(pub QualifiedAttribute<'a>, pub Option>); -fn redeclared_attribute(s: &str) -> IResult { +fn redeclared_attribute(s: &str) -> IResult<'_, RedeclaredAttribute<'_>> { map( pair( qualified_attribute, @@ -2018,7 +2054,7 @@ pub enum ReferencedAttribute<'a> { Ref(AttributeRef<'a>), Qualified(QualifiedAttribute<'a>), } -fn referenced_attribute(s: &str) -> IResult { +fn referenced_attribute(s: &str) -> IResult<'_, ReferencedAttribute<'_>> { use ReferencedAttribute::*; alt((map(attribute_ref, Ref), map(qualified_attribute, Qualified)))(s) } @@ -2030,7 +2066,7 @@ pub struct ReferenceClause<'a> { pub schema_ref: SchemaRef<'a>, pub resource_or_rename: Option>>, } -fn reference_clause(s: &str) -> IResult { +fn reference_clause(s: &str) -> IResult<'_, ReferenceClause<'_>> { map( tuple(( kw("reference"), @@ -2058,7 +2094,7 @@ pub enum RelOp { InstanceEqual, InstanceNotEqual, } -fn rel_op(s: &str) -> IResult { +fn rel_op(s: &str) -> IResult<'_, RelOp> { use RelOp::*; alt(( // Sorted by length to avoid prefix issues @@ -2080,7 +2116,7 @@ pub enum RelOpExtended { In, Like, } -fn rel_op_extended(s: &str) -> IResult { +fn rel_op_extended(s: &str) -> IResult<'_, RelOpExtended> { use RelOpExtended::*; alt(( map(kw("in"), |_| In), @@ -2099,18 +2135,19 @@ pub enum RenameId<'a> { Type(TypeId<'a>), _Ambiguous(SimpleId<'a>), } -fn rename_id(s: &str) -> IResult { +fn rename_id(s: &str) -> IResult<'_, RenameId<'_>> { map(simple_id, RenameId::_Ambiguous)(s) } // 285 repeat_control = [ increment_control ] [ while_control ] [ until_control ] . +#[expect(dead_code)] #[derive(Debug)] pub struct RepeatControl<'a>( Option>, Option>, Option>, ); -fn repeat_control(s: &str) -> IResult { +fn repeat_control(s: &str) -> IResult<'_, RepeatControl<'_>> { map( tuple(( opt(increment_control), @@ -2122,9 +2159,10 @@ fn repeat_control(s: &str) -> IResult { } // 286 repeat_stmt = REPEAT repeat_control ’;’ stmt { stmt } END_REPEAT ’;’ . +#[expect(dead_code)] #[derive(Debug)] pub struct RepeatStmt<'a>(RepeatControl<'a>, Vec>); -fn repeat_stmt(s: &str) -> IResult { +fn repeat_stmt(s: &str) -> IResult<'_, RepeatStmt<'_>> { map( tuple(( kw("repeat"), @@ -2142,9 +2180,10 @@ fn repeat_stmt(s: &str) -> IResult { alias!(Repetition<'a>, NumericExpression, repetition); // 288 +#[expect(dead_code)] #[derive(Debug)] pub struct ResourceOrRename<'a>(ResourceRef<'a>, Option>); -fn resource_or_rename(s: &str) -> IResult { +fn resource_or_rename(s: &str) -> IResult<'_, ResourceOrRename<'_>> { map( pair(resource_ref, opt(preceded(kw("as"), rename_id))), |(a, b)| ResourceOrRename(a, b), @@ -2162,14 +2201,15 @@ pub enum ResourceRef<'a> { _Ambiguous(SimpleId<'a>), } -fn resource_ref(s: &str) -> IResult { +fn resource_ref(s: &str) -> IResult<'_, ResourceRef<'_>> { map(simple_id, ResourceRef::_Ambiguous)(s) } // 290 return_stmt = RETURN [ ’(’ expression ’)’ ] ’;’ . +#[expect(dead_code)] #[derive(Debug)] pub struct ReturnStmt<'a>(Option>); -fn return_stmt(s: &str) -> IResult { +fn return_stmt(s: &str) -> IResult<'_, ReturnStmt<'_>> { map( delimited(kw("return"), opt(parens(expression)), char(';')), ReturnStmt, @@ -2184,7 +2224,7 @@ pub struct RuleDecl<'a> { pub stmt: Vec>, pub where_clause: WhereClause<'a>, } -fn rule_decl(s: &str) -> IResult { +fn rule_decl(s: &str) -> IResult<'_, RuleDecl<'_>> { map( tuple(( rule_head, @@ -2209,7 +2249,7 @@ pub struct RuleHead<'a> { pub rule_id: RuleId<'a>, pub entities: Vec>, } -fn rule_head(s: &str) -> IResult { +fn rule_head(s: &str) -> IResult<'_, RuleHead<'_>> { map( tuple(( kw("rule"), @@ -2244,7 +2284,7 @@ pub struct SchemaBody<'a> { pub constants: Option>, pub declarations: Vec>, } -fn schema_body(s: &str) -> IResult { +fn schema_body(s: &str) -> IResult<'_, SchemaBody<'_>> { map( tuple(( many0(interface_specification), @@ -2269,7 +2309,7 @@ pub struct SchemaDecl<'a> { pub version: Option, pub body: SchemaBody<'a>, } -fn schema_decl(s: &str) -> IResult { +fn schema_decl(s: &str) -> IResult<'_, SchemaDecl<'_>> { map( tuple(( kw("schema"), @@ -2288,7 +2328,10 @@ fn schema_decl(s: &str) -> IResult { id_type!(SchemaId, schema_id); // 298 -alias!(SchemaVersionId, StringLiteral, schema_version_id); +alias!(SchemaVersionId, StringLiteral); +fn schema_version_id(s: &str) -> IResult<'_, SchemaVersionId> { + SchemaVersionId::parse(s) +} // 299 selector = expression . alias!(Selector<'a>, Expression, selector); @@ -2299,7 +2342,7 @@ pub struct SelectExtension<'a> { pub type_ref: TypeRef<'a>, pub select_list: Option>, } -fn select_extension(s: &str) -> IResult { +fn select_extension(s: &str) -> IResult<'_, SelectExtension<'_>> { map( tuple(( kw("based_on"), @@ -2316,7 +2359,7 @@ fn select_extension(s: &str) -> IResult { // 301 #[derive(Debug)] pub struct SelectList<'a>(pub Vec>); -fn select_list(s: &str) -> IResult { +fn select_list(s: &str) -> IResult<'_, SelectList<'_>> { map(parens(list1(',', named_types)), SelectList)(s) } @@ -2333,7 +2376,7 @@ pub struct SelectType<'a> { pub generic_entity: bool, pub list_or_extension: SelectListOrExtension<'a>, } -fn select_type(s: &str) -> IResult { +fn select_type(s: &str) -> IResult<'_, SelectType<'_>> { map( tuple(( opt(pair(kw("extensible"), opt(kw("generic_entity")))), @@ -2357,7 +2400,7 @@ pub struct SetType<'a> { pub bounds: Option>, pub instantiable_type: Box>, } -fn set_type(s: &str) -> IResult { +fn set_type(s: &str) -> IResult<'_, SetType<'_>> { map( tuple((kw("set"), opt(bound_spec), kw("of"), instantiable_type)), |(_, b, _, t)| SetType { @@ -2374,13 +2417,13 @@ fn set_type(s: &str) -> IResult { #[derive(Debug)] pub struct SimpleExpression<'a>(pub Box>, pub Vec<(AddLikeOp, Term<'a>)>); impl<'a> SimpleExpression<'a> { - fn parse(s: &'a str) -> IResult { + fn parse(s: &'a str) -> IResult<'a, Self> { let (s, a) = term(s)?; let (s, b) = many0(pair(add_like_op, term))(s)?; Ok((s, SimpleExpression(Box::new(a), b))) } } -fn simple_expression(s: &str) -> IResult { +fn simple_expression(s: &str) -> IResult<'_, SimpleExpression<'_>> { SimpleExpression::parse(s) } @@ -2406,7 +2449,7 @@ pub enum SimpleFactor<'a> { Unary(Option, ExpressionOrPrimary<'a>), } -fn ambiguous_function_call(s: &str) -> IResult { +fn ambiguous_function_call(s: &str) -> IResult<'_, SimpleFactor<'_>> { map( terminated( // simple_id already refuses to eat built-in functions @@ -2419,7 +2462,7 @@ fn ambiguous_function_call(s: &str) -> IResult { )(s) } -fn simple_factor(s: &str) -> IResult { +fn simple_factor(s: &str) -> IResult<'_, SimpleFactor<'_>> { use SimpleFactor::*; alt(( map(aggregate_initializer, AggregateInitializer), @@ -2458,7 +2501,7 @@ pub enum SimpleTypes<'a> { Real(RealType<'a>), String(StringType<'a>), } -fn simple_types(s: &str) -> IResult { +fn simple_types(s: &str) -> IResult<'_, SimpleTypes<'_>> { use SimpleTypes::*; alt(( map(binary_type, Binary), @@ -2472,7 +2515,7 @@ fn simple_types(s: &str) -> IResult { } // 308 skip_stmt = SKIP ’;’ . -fn skip_stmt(s: &str) -> IResult<()> { +fn skip_stmt(s: &str) -> IResult<'_, ()> { map(pair(kw("skip"), char(';')), |_| ())(s) } @@ -2493,7 +2536,7 @@ pub enum Stmt<'a> { Return(ReturnStmt<'a>), Skip, } -fn stmt(s: &str) -> IResult { +fn stmt(s: &str) -> IResult<'_, Stmt<'_>> { use Stmt::*; alt(( map(alias_stmt, Alias), @@ -2514,18 +2557,19 @@ fn stmt(s: &str) -> IResult { #[derive(Debug)] pub struct StringLiteral(String); impl StringLiteral { - fn parse(s: &str) -> IResult { + fn parse(s: &str) -> IResult<'_, Self> { map(alt((simple_string_literal, encoded_string_literal)), Self)(s) } } -fn string_literal(s: &str) -> IResult { +fn string_literal(s: &str) -> IResult<'_, StringLiteral> { StringLiteral::parse(s) } // 311 string_type = STRING [ width_spec ] . +#[expect(dead_code)] #[derive(Debug)] pub struct StringType<'a>(Option>); -fn string_type(s: &str) -> IResult { +fn string_type(s: &str) -> IResult<'_, StringType<'_>> { map(preceded(kw("string"), opt(width_spec)), StringType)(s) } @@ -2535,7 +2579,7 @@ pub struct Subsuper<'a>( pub Option>, pub Option>, ); -fn subsuper(s: &str) -> IResult { +fn subsuper(s: &str) -> IResult<'_, Subsuper<'_>> { map( pair(opt(supertype_constraint), opt(subtype_declaration)), |(a, b)| Subsuper(a, b), @@ -2543,9 +2587,10 @@ fn subsuper(s: &str) -> IResult { } // 313 subtype_constraint = OF ’(’ supertype_expression ’)’ . +#[expect(dead_code)] #[derive(Debug)] pub struct SubtypeConstraint<'a>(SupertypeExpression<'a>); -fn subtype_constraint(s: &str) -> IResult { +fn subtype_constraint(s: &str) -> IResult<'_, SubtypeConstraint<'_>> { map( preceded(kw("of"), parens(supertype_expression)), SubtypeConstraint, @@ -2560,7 +2605,7 @@ pub struct SubtypeConstraintBody<'a> { pub total_over: Option>, pub supertype: Option>, } -fn subtype_constraint_body(s: &str) -> IResult { +fn subtype_constraint_body(s: &str) -> IResult<'_, SubtypeConstraintBody<'_>> { map( tuple(( opt(abstract_supertype), @@ -2577,9 +2622,10 @@ fn subtype_constraint_body(s: &str) -> IResult { // 315 subtype_constraint_decl = subtype_constraint_head subtype_constraint_body // END_SUBTYPE_CONSTRAINT ’;’ . +#[expect(dead_code)] #[derive(Debug)] pub struct SubtypeConstraintDecl<'a>(SubtypeConstraintHead<'a>, SubtypeConstraintBody<'a>); -fn subtype_constraint_decl(s: &str) -> IResult { +fn subtype_constraint_decl(s: &str) -> IResult<'_, SubtypeConstraintDecl<'_>> { map( tuple(( subtype_constraint_head, @@ -2593,9 +2639,10 @@ fn subtype_constraint_decl(s: &str) -> IResult { // 316 subtype_constraint_head = SUBTYPE_CONSTRAINT subtype_constraint_id FOR // entity_ref ’;’ . +#[expect(dead_code)] #[derive(Debug)] pub struct SubtypeConstraintHead<'a>(SubtypeConstraintId<'a>, EntityRef<'a>); -fn subtype_constraint_head(s: &str) -> IResult { +fn subtype_constraint_head(s: &str) -> IResult<'_, SubtypeConstraintHead<'_>> { map( tuple(( kw("subtype_constraint"), @@ -2614,7 +2661,7 @@ id_type!(SubtypeConstraintId, subtype_constraint_id); // 318 subtype_declaration = SUBTYPE OF ’(’ entity_ref { ’,’ entity_ref } ’)’ . #[derive(Debug)] pub struct SubtypeDeclaration<'a>(pub Vec>); -fn subtype_declaration(s: &str) -> IResult { +fn subtype_declaration(s: &str) -> IResult<'_, SubtypeDeclaration<'_>> { map( preceded( tuple((kw("subtype"), kw("of"))), @@ -2632,7 +2679,7 @@ pub enum SupertypeConstraint<'a> { AbstractSupertype(AbstractSupertypeDeclaration<'a>), SupertypeRule(SupertypeRule<'a>), } -fn supertype_constraint(s: &str) -> IResult { +fn supertype_constraint(s: &str) -> IResult<'_, SupertypeConstraint<'_>> { use SupertypeConstraint::*; alt(( // Ordered so that "abstract supertype" is parsed before "abstract" @@ -2643,25 +2690,28 @@ fn supertype_constraint(s: &str) -> IResult { } // 320 supertype_expression = supertype_factor { ANDOR supertype_factor } . +#[expect(dead_code)] #[derive(Debug)] pub struct SupertypeExpression<'a>(SupertypeFactor<'a>, Vec>); -fn supertype_expression(s: &str) -> IResult { +fn supertype_expression(s: &str) -> IResult<'_, SupertypeExpression<'_>> { let (s, a) = supertype_factor(s)?; let (s, b) = many0(preceded(kw("andor"), supertype_factor))(s)?; Ok((s, SupertypeExpression(a, b))) } // 321 supertype_factor = supertype_term { AND supertype_term } . +#[expect(dead_code)] #[derive(Debug)] pub struct SupertypeFactor<'a>(Vec>); -fn supertype_factor(s: &str) -> IResult { +fn supertype_factor(s: &str) -> IResult<'_, SupertypeFactor<'_>> { map(separated_list1(kw("and"), supertype_term), SupertypeFactor)(s) } // 322 supertype_rule = SUPERTYPE subtype_constraint . +#[expect(dead_code)] #[derive(Debug)] pub struct SupertypeRule<'a>(SubtypeConstraint<'a>); -fn supertype_rule(s: &str) -> IResult { +fn supertype_rule(s: &str) -> IResult<'_, SupertypeRule<'_>> { map(preceded(kw("supertype"), subtype_constraint), SupertypeRule)(s) } @@ -2672,7 +2722,7 @@ pub enum SupertypeTerm<'a> { OneOf(OneOf<'a>), Expression(SupertypeExpression<'a>), } -fn supertype_term(s: &str) -> IResult { +fn supertype_term(s: &str) -> IResult<'_, SupertypeTerm<'_>> { use SupertypeTerm::*; alt(( map(entity_ref, Entity), @@ -2684,14 +2734,14 @@ fn supertype_term(s: &str) -> IResult { // 324 syntax = schema_decl { schema_decl } . #[derive(Debug)] pub struct Syntax<'a>(pub Vec>); -fn syntax(s: &str) -> IResult { +fn syntax(s: &str) -> IResult<'_, Syntax<'_>> { preceded(multispace0, map(many1(schema_decl), Syntax))(s) } // 325 term = factor { multiplication_like_op factor } . #[derive(Debug)] pub struct Term<'a>(pub Factor<'a>, pub Vec<(MultiplicationLikeOp, Factor<'a>)>); -fn term(s: &str) -> IResult { +fn term(s: &str) -> IResult<'_, Term<'_>> { map( pair(factor, many0(pair(multiplication_like_op, factor))), |(a, b)| Term(a, b), @@ -2699,9 +2749,10 @@ fn term(s: &str) -> IResult { } // 326 total_over = TOTAL_OVER ’(’ entity_ref { ’,’ entity_ref } ’)’ ’;’ . +#[expect(dead_code)] #[derive(Debug)] pub struct TotalOver<'a>(Vec>); -fn total_over(s: &str) -> IResult { +fn total_over(s: &str) -> IResult<'_, TotalOver<'_>> { map( delimited(kw("total_over"), parens(list1(',', entity_ref)), char(';')), TotalOver, @@ -2715,7 +2766,7 @@ pub struct TypeDecl<'a> { pub underlying_type: UnderlyingType<'a>, pub where_clause: Option>, } -fn type_decl(s: &str) -> IResult { +fn type_decl(s: &str) -> IResult<'_, TypeDecl<'_>> { map( tuple(( kw("type"), @@ -2745,11 +2796,12 @@ pub enum TypeLabel<'a> { Ref(TypeLabelRef<'a>), _Ambiguous(SimpleId<'a>), } -fn type_label(s: &str) -> IResult { +fn type_label(s: &str) -> IResult<'_, TypeLabel<'_>> { map(simple_id, TypeLabel::_Ambiguous)(s) } // 330 +#[expect(dead_code)] #[derive(Debug)] pub struct TypeLabelId<'a>(SimpleId<'a>); @@ -2760,7 +2812,7 @@ pub enum UnaryOp { Sub, Not, } -fn unary_op(s: &str) -> IResult { +fn unary_op(s: &str) -> IResult<'_, UnaryOp> { use UnaryOp::*; alt(( map(char('+'), |_| Add), @@ -2775,7 +2827,7 @@ pub enum UnderlyingType<'a> { Concrete(ConcreteTypes<'a>), Constructed(ConstructedTypes<'a>), } -fn underlying_type(s: &str) -> IResult { +fn underlying_type(s: &str) -> IResult<'_, UnderlyingType<'_>> { use UnderlyingType::*; alt(( // Read constructed types first, so that 'select' doesn't get @@ -2786,9 +2838,10 @@ fn underlying_type(s: &str) -> IResult { } // 333 unique_clause = UNIQUE unique_rule ’;’ { unique_rule ’;’ } . +#[expect(dead_code)] #[derive(Debug)] pub struct UniqueClause<'a>(Vec>); -fn unique_clause(s: &str) -> IResult { +fn unique_clause(s: &str) -> IResult<'_, UniqueClause<'_>> { map( preceded(kw("unique"), many1(terminated(unique_rule, char(';')))), UniqueClause, @@ -2802,7 +2855,7 @@ pub struct UniqueRule<'a> { pub label: Option>, pub attrs: Vec>, } -fn unique_rule(s: &str) -> IResult { +fn unique_rule(s: &str) -> IResult<'_, UniqueRule<'_>> { map( pair( opt(terminated(rule_label_id, char(':'))), @@ -2813,9 +2866,10 @@ fn unique_rule(s: &str) -> IResult { } // 335 until_control = UNTIL logical_expression . +#[expect(dead_code)] #[derive(Debug)] pub struct UntilControl<'a>(LogicalExpression<'a>); -fn until_control(s: &str) -> IResult { +fn until_control(s: &str) -> IResult<'_, UntilControl<'_>> { map(preceded(kw("until"), logical_expression), UntilControl)(s) } @@ -2826,7 +2880,7 @@ pub struct UseClause<'a> { pub schema_ref: SchemaRef<'a>, pub named_type_or_rename: Option>>, } -fn use_clause(s: &str) -> IResult { +fn use_clause(s: &str) -> IResult<'_, UseClause<'_>> { map( tuple(( kw("use"), @@ -2846,18 +2900,20 @@ fn use_clause(s: &str) -> IResult { id_type!(VariableId, variable_id); // 338 where_clause = WHERE domain_rule ’;’ { domain_rule ’;’ } . +#[expect(dead_code)] #[derive(Debug)] pub struct WhereClause<'a>(Vec>); -fn where_clause(s: &str) -> IResult { +fn where_clause(s: &str) -> IResult<'_, WhereClause<'_>> { let (s, _) = kw("where")(s)?; let (s, v) = many1(terminated(domain_rule, char(';')))(s)?; Ok((s, WhereClause(v))) } // 339 while_control = WHILE logical_expression . +#[expect(dead_code)] #[derive(Debug)] pub struct WhileControl<'a>(LogicalExpression<'a>); -fn while_control(s: &str) -> IResult { +fn while_control(s: &str) -> IResult<'_, WhileControl<'_>> { map(preceded(kw("while"), logical_expression), WhileControl)(s) } @@ -2870,7 +2926,7 @@ pub struct WidthSpec<'a> { pub expression: Width<'a>, pub fixed: bool, } -fn width_spec(s: &str) -> IResult { +fn width_spec(s: &str) -> IResult<'_, WidthSpec<'_>> { map(pair(parens(width), opt(kw("fixed"))), |(w, f)| WidthSpec { expression: w, fixed: f.is_some(), @@ -2911,7 +2967,7 @@ mod tests { derive role : object_role := get_role(self); where - wr1 : sizeof(usedin(self, + wr1 : sizeof(usedin(self, 'automotive_design.role_association.item_with_role')) <= 1; end_entity; "#, ) @@ -2923,8 +2979,8 @@ end_entity; "#, subtype of (shape_representation); where wr1 : sizeof(query(it <* self.items | not (sizeof([ - 'automotive_design.manifold_solid_brep', - 'automotive_design.faceted_brep', 'automotive_design.mapped_item', + 'automotive_design.manifold_solid_brep', + 'automotive_design.faceted_brep', 'automotive_design.mapped_item', 'automotive_design.axis2_placement_3d'] * typeof(it)) = 1))) = 0; end_entity; "#, ) @@ -2935,57 +2991,57 @@ end_entity; "#, r#"entity advanced_face subtype of (face_surface); where - wr1 : sizeof(['automotive_design.elementary_surface', - 'automotive_design.b_spline_surface', + wr1 : sizeof(['automotive_design.elementary_surface', + 'automotive_design.b_spline_surface', 'automotive_design.swept_surface'] * typeof(face_geometry)) = 1; - wr2 : sizeof(query(elp_fbnds <* query(bnds <* bounds | + wr2 : sizeof(query(elp_fbnds <* query(bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | not (sizeof( query(oe <* elp_fbnds.bound\path.edge_list | not ( 'automotive_design.edge_curve' in typeof(oe\oriented_edge.edge_element)) )) = 0))) = 0; - wr3 : sizeof(query(elp_fbnds <* query(bnds <* bounds | + wr3 : sizeof(query(elp_fbnds <* query(bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | not (sizeof( query(oe <* elp_fbnds.bound\path.edge_list | not (sizeof([ - 'automotive_design.line', 'automotive_design.conic', - 'automotive_design.polyline', 'automotive_design.surface_curve', + 'automotive_design.line', 'automotive_design.conic', + 'automotive_design.polyline', 'automotive_design.surface_curve', 'automotive_design.b_spline_curve'] * typeof(oe.edge_element\edge_curve. edge_geometry)) = 1))) = 0))) = 0; - wr4 : sizeof(query(elp_fbnds <* query(bnds <* bounds | + wr4 : sizeof(query(elp_fbnds <* query(bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | not (sizeof( query(oe <* elp_fbnds.bound\path.edge_list | not (( 'automotive_design.vertex_point' in typeof(oe\edge.edge_start)) and ( 'automotive_design.cartesian_point' in typeof(oe\edge.edge_start\ - vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in - typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in + vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in + typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in typeof(oe\edge.edge_end\vertex_point.vertex_geometry))))) = 0))) = 0; - wr5 : sizeof(query(elp_fbnds <* query(bnds <* bounds | - 'automotive_design.edge_loop' in typeof(bnds.bound)) | + wr5 : sizeof(query(elp_fbnds <* query(bnds <* bounds | + 'automotive_design.edge_loop' in typeof(bnds.bound)) | 'automotive_design.oriented_path' in typeof(elp_fbnds.bound))) = 0; - wr6 : not ('automotive_design.swept_surface' in typeof(face_geometry)) or - (sizeof(['automotive_design.line', 'automotive_design.conic', - 'automotive_design.polyline', 'automotive_design.b_spline_curve'] * + wr6 : not ('automotive_design.swept_surface' in typeof(face_geometry)) or + (sizeof(['automotive_design.line', 'automotive_design.conic', + 'automotive_design.polyline', 'automotive_design.b_spline_curve'] * typeof(face_geometry\swept_surface.swept_curve)) = 1); - wr7 : sizeof(query(vlp_fbnds <* query(bnds <* bounds | + wr7 : sizeof(query(vlp_fbnds <* query(bnds <* bounds | 'automotive_design.vertex_loop' in typeof(bnds.bound)) | not (( 'automotive_design.vertex_point' in typeof(vlp_fbnds\face_bound.bound\ - vertex_loop.loop_vertex)) and ('automotive_design.cartesian_point' in + vertex_loop.loop_vertex)) and ('automotive_design.cartesian_point' in typeof(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex\vertex_point. vertex_geometry))))) = 0; wr8 : sizeof(query(bnd <* bounds | not (sizeof([ - 'automotive_design.edge_loop', 'automotive_design.vertex_loop'] * + 'automotive_design.edge_loop', 'automotive_design.vertex_loop'] * typeof(bnd.bound)) = 1))) = 0; - wr9 : sizeof(query(elp_fbnds <* query(bnds <* bounds | + wr9 : sizeof(query(elp_fbnds <* query(bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | not (sizeof( query(oe <* elp_fbnds.bound\path.edge_list | ( 'automotive_design.surface_curve' in typeof(oe\oriented_edge. edge_element\edge_curve.edge_geometry)) and not (sizeof(query(sc_ag <* oe. - edge_element\edge_curve.edge_geometry\surface_curve.associated_geometry | + edge_element\edge_curve.edge_geometry\surface_curve.associated_geometry | not ('automotive_design.pcurve' in typeof(sc_ag)))) = 0))) = 0))) = 0; - wr10 : (not ('automotive_design.swept_surface' in typeof(face_geometry)) + wr10 : (not ('automotive_design.swept_surface' in typeof(face_geometry)) or not ('automotive_design.polyline' in typeof(face_geometry\ swept_surface.swept_curve)) or (sizeof(face_geometry\swept_surface. swept_curve\polyline.points) >= 3)) and (sizeof(query(elp_fbnds <* query( - bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | + bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | not (sizeof(query(oe <* elp_fbnds.bound\path.edge_list | ( 'automotive_design.polyline' in typeof(oe\oriented_edge.edge_element\ edge_curve.edge_geometry)) and not (sizeof(oe\oriented_edge.edge_element\ @@ -3016,8 +3072,8 @@ end_entity; "#, subtype of (geometric_representation_item); boundaries : set [1:?] of curve; where - wr1 : (self\geometric_representation_item.dim = 3) or (sizeof(query(curve <* - self.boundaries | not (('automotive_design.circle' in typeof(curve)) or + wr1 : (self\geometric_representation_item.dim = 3) or (sizeof(query(curve <* + self.boundaries | not (('automotive_design.circle' in typeof(curve)) or ('automotive_design.ellipse' in typeof(curve)) or ( 'automotive_design.b_spline_curve' in typeof(curve)) and (curve\ b_spline_curve.closed_curve = true) or ( @@ -3041,7 +3097,7 @@ where wr1 : self\placement.location.dim = 3; wr2 : not exists(axis) or (axis.dim = 3); wr3 : not exists(ref_direction) or (ref_direction.dim = 3); - wr4 : not exists(axis) or not exists(ref_direction) or (cross_product(axis, + wr4 : not exists(axis) or not exists(ref_direction) or (cross_product(axis, ref_direction).magnitude > 0.0); end_entity; "#, ) @@ -3050,7 +3106,7 @@ end_entity; "#, let e = entity_decl( r#"entity b_spline_curve -supertype of (oneof (uniform_curve, b_spline_curve_with_knots, +supertype of (oneof (uniform_curve, b_spline_curve_with_knots, quasi_uniform_curve, bezier_curve) andor rational_b_spline_curve) subtype of (bounded_curve); degree : integer; @@ -3060,8 +3116,8 @@ subtype of (bounded_curve); self_intersect : logical; derive upper_index_on_control_points : integer := sizeof(control_points_list) - 1; - control_points : array [0 : upper_index_on_control_points] of - cartesian_point := list_to_array(control_points_list, 0, + control_points : array [0 : upper_index_on_control_points] of + cartesian_point := list_to_array(control_points_list, 0, upper_index_on_control_points); where wr1 : ('automotive_design.uniform_curve' in typeof(self)) or ( @@ -3089,38 +3145,38 @@ where wr1 : self\characterized_object.description in ['counterbore', 'countersunk'] ; wr2 : sizeof(query(sa <* get_shape_aspects(self) | ('automotive_design.' - + 'composite_shape_aspect' in typeof(sa)) and (sa.name = - 'compound feature in solid') and (sizeof(query(sar <* usedin(sa, - 'automotive_design.shape_aspect_relationship.relating_shape_aspect') | + + 'composite_shape_aspect' in typeof(sa)) and (sa.name = + 'compound feature in solid') and (sizeof(query(sar <* usedin(sa, + 'automotive_design.shape_aspect_relationship.relating_shape_aspect') | 'automotive_design.' + 'feature_component_relationship' in typeof(sar))) = 2))) = 1; wr3 : sizeof(query(sa <* get_shape_aspects(self) | ('automotive_design.' - + 'composite_shape_aspect' in typeof(sa)) and (sa.name = - 'compound feature in solid') and (sizeof(query(sar <* usedin(sa, - 'automotive_design.shape_aspect_relationship.relating_shape_aspect') | + + 'composite_shape_aspect' in typeof(sa)) and (sa.name = + 'compound feature in solid') and (sizeof(query(sar <* usedin(sa, + 'automotive_design.shape_aspect_relationship.relating_shape_aspect') | 'automotive_design.' + 'feature_component_relationship' in typeof(sar))) - = 2) and (sizeof(get_round_holes_for_composite_hole(bag_to_set(usedin(sa, + = 2) and (sizeof(get_round_holes_for_composite_hole(bag_to_set(usedin(sa, 'automotive_design.shape_aspect_relationship.relating_shape_aspect')))) = 2))) = 1; wr4 : sizeof(query(sa <* get_shape_aspects(self) | ('automotive_design.' - + 'composite_shape_aspect' in typeof(sa)) and (sa.name = - 'compound feature in solid') and (sizeof(query(rh1 <* - get_round_holes_for_composite_hole(bag_to_set(usedin(sa, + + 'composite_shape_aspect' in typeof(sa)) and (sa.name = + 'compound feature in solid') and (sizeof(query(rh1 <* + get_round_holes_for_composite_hole(bag_to_set(usedin(sa, 'automotive_design.shape_aspect_relationship.relating_shape_aspect'))) | sizeof(query(rh2 <* get_round_holes_for_composite_hole(bag_to_set(usedin (sa, 'automotive_design.shape_aspect_relationship.relating_shape_aspect' - ))) | (rh1 :<>: rh2) and (get_diameter_for_round_hole(rh1) = + ))) | (rh1 :<>: rh2) and (get_diameter_for_round_hole(rh1) = get_diameter_for_round_hole(rh2)))) = 0)) = 0))) = 1; - wr5 : (self.description <> 'countersunk') or (sizeof(query(sa <* - get_shape_aspects(self) | ('automotive_design.' + - 'composite_shape_aspect' in typeof(sa)) and (sa.name = - 'compound feature in solid') and (sizeof(query(rh <* - get_round_holes_for_composite_hole(bag_to_set(usedin(sa, + wr5 : (self.description <> 'countersunk') or (sizeof(query(sa <* + get_shape_aspects(self) | ('automotive_design.' + + 'composite_shape_aspect' in typeof(sa)) and (sa.name = + 'compound feature in solid') and (sizeof(query(rh <* + get_round_holes_for_composite_hole(bag_to_set(usedin(sa, 'automotive_design.shape_aspect_relationship.relating_shape_aspect'))) - | sizeof(query(sa1 <* get_shape_aspects(rh) | (sa.description = - 'change in diameter occurrence') and (sizeof(query(sar <* usedin(sa1, + | sizeof(query(sa1 <* get_shape_aspects(rh) | (sa.description = + 'change in diameter occurrence') and (sizeof(query(sar <* usedin(sa1, 'automotive_design.shape_aspect_relationship.related_shape_aspect') | ( - sar.description = 'taper usage') and ('automotive_design.' + 'taper' in + sar.description = 'taper usage') and ('automotive_design.' + 'taper' in typeof(sar.relating_shape_aspect)))) = 1))) = 1)) = 1))) = 1); end_entity; "#, ) @@ -3226,8 +3282,8 @@ wr1 : self >= 0.0; "#, let e = where_clause( r#"where wr1 : sizeof(query(it <* self.items | not (sizeof([ - 'automotive_design.manifold_solid_brep', - 'automotive_design.faceted_brep', 'automotive_design.mapped_item', + 'automotive_design.manifold_solid_brep', + 'automotive_design.faceted_brep', 'automotive_design.mapped_item', 'automotive_design.axis2_placement_3d'] * typeof(it)) = 1))) = 0;"#, ) .unwrap(); @@ -3237,7 +3293,7 @@ wr1 : self >= 0.0; "#, #[test] fn test_domain_rule() { let e = domain_rule( - r#"wr3 : sizeof(query(msb <* query(it <* self.items | + r#"wr3 : sizeof(query(msb <* query(it <* self.items | 'automotive_design.manifold_solid_brep' in typeof(it)) | not (sizeof( query(csh <* msb_shells(msb) | not (sizeof(query(fcs <* csh\ connected_face_set.cfs_faces | not ('automotive_design.advanced_face' in @@ -3247,11 +3303,11 @@ wr1 : self >= 0.0; "#, assert_eq!(e.0, ";"); let e = domain_rule( - r#"wr10 : (not ('automotive_design.swept_surface' in typeof(face_geometry)) + r#"wr10 : (not ('automotive_design.swept_surface' in typeof(face_geometry)) or not ('automotive_design.polyline' in typeof(face_geometry\ swept_surface.swept_curve)) or (sizeof(face_geometry\swept_surface. swept_curve\polyline.points) >= 3)) and (sizeof(query(elp_fbnds <* query( - bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | + bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | not (sizeof(query(oe <* elp_fbnds.bound\path.edge_list | ( 'automotive_design.polyline' in typeof(oe\oriented_edge.edge_element\ edge_curve.edge_geometry)) and not (sizeof(oe\oriented_edge.edge_element\ @@ -3261,21 +3317,21 @@ wr1 : self >= 0.0; "#, assert_eq!(e.0, ";"); let e = domain_rule( - r#"wr4 : sizeof(query(elp_fbnds <* query(bnds <* bounds | + r#"wr4 : sizeof(query(elp_fbnds <* query(bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | not (sizeof( query(oe <* elp_fbnds.bound\path.edge_list | not (( 'automotive_design.vertex_point' in typeof(oe\edge.edge_start)) and ( 'automotive_design.cartesian_point' in typeof(oe\edge.edge_start\ - vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in - typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in + vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in + typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in typeof(oe\edge.edge_end\vertex_point.vertex_geometry))))) = 0))) = 0;"#, ) .unwrap(); assert_eq!(e.0, ";"); let e = domain_rule( - r#"wr1 : (self\geometric_representation_item.dim = 3) or (sizeof(query(curve <* - self.boundaries | not (('automotive_design.circle' in typeof(curve)) or + r#"wr1 : (self\geometric_representation_item.dim = 3) or (sizeof(query(curve <* + self.boundaries | not (('automotive_design.circle' in typeof(curve)) or ('automotive_design.ellipse' in typeof(curve)) or ( 'automotive_design.b_spline_curve' in typeof(curve)) and (curve\ b_spline_curve.closed_curve = true) or ( @@ -3289,13 +3345,13 @@ wr1 : self >= 0.0; "#, let e = domain_rule( r#"wr4 : sizeof(query(sa <* get_shape_aspects(self) | ('automotive_design.' - + 'composite_shape_aspect' in typeof(sa)) and (sa.name = - 'compound feature in solid') and (sizeof(query(rh1 <* - get_round_holes_for_composite_hole(bag_to_set(usedin(sa, + + 'composite_shape_aspect' in typeof(sa)) and (sa.name = + 'compound feature in solid') and (sizeof(query(rh1 <* + get_round_holes_for_composite_hole(bag_to_set(usedin(sa, 'automotive_design.shape_aspect_relationship.relating_shape_aspect'))) | sizeof(query(rh2 <* get_round_holes_for_composite_hole(bag_to_set(usedin (sa, 'automotive_design.shape_aspect_relationship.relating_shape_aspect' - ))) | (rh1 :<>: rh2) and (get_diameter_for_round_hole(rh1) = + ))) | (rh1 :<>: rh2) and (get_diameter_for_round_hole(rh1) = get_diameter_for_round_hole(rh2)))) = 0)) = 0))) = 1;"#, ) .unwrap(); @@ -3329,15 +3385,15 @@ wr1 : self >= 0.0; "#, let e = query_expression( r#"query(it <* self.items | not (sizeof([ - 'automotive_design.manifold_solid_brep', - 'automotive_design.faceted_brep', 'automotive_design.mapped_item', + 'automotive_design.manifold_solid_brep', + 'automotive_design.faceted_brep', 'automotive_design.mapped_item', 'automotive_design.axis2_placement_3d'] * typeof(it)) = 1))"#, ) .unwrap(); assert_eq!(e.0, ""); let e = query_expression( - r#"query(msb <* query(it <* self.items | + r#"query(msb <* query(it <* self.items | 'automotive_design.manifold_solid_brep' in typeof(it)) | not (sizeof( query(csh <* msb_shells(msb) | not (sizeof(query(fcs <* csh\ connected_face_set.cfs_faces | not ('automotive_design.advanced_face' in @@ -3347,13 +3403,13 @@ wr1 : self >= 0.0; "#, assert_eq!(e.0, ""); let e = query_expression( - r#"query(elp_fbnds <* query(bnds <* bounds | + r#"query(elp_fbnds <* query(bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | not (sizeof( query(oe <* elp_fbnds.bound\path.edge_list | not (( 'automotive_design.vertex_point' in typeof(oe\edge.edge_start)) and ( 'automotive_design.cartesian_point' in typeof(oe\edge.edge_start\ - vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in - typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in + vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in + typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in typeof(oe\edge.edge_end\vertex_point.vertex_geometry))))) = 0))"#, ) .unwrap(); @@ -3366,7 +3422,7 @@ wr1 : self >= 0.0; "#, assert_eq!(e.0, ""); let e = expression( - r#"sizeof(query(msb <* query(it <* self.items | + r#"sizeof(query(msb <* query(it <* self.items | 'automotive_design.manifold_solid_brep' in typeof(it)) | not (sizeof( query(csh <* msb_shells(msb) | not (sizeof(query(fcs <* csh\ connected_face_set.cfs_faces | not ('automotive_design.advanced_face' in @@ -3376,7 +3432,7 @@ wr1 : self >= 0.0; "#, assert_eq!(e.0, ""); let e = expression( - r#"cross_product(axis, + r#"cross_product(axis, ref_direction).magnitude"#, ) .unwrap(); @@ -3384,13 +3440,13 @@ wr1 : self >= 0.0; "#, let e = expression( r#"sizeof(query(sa <* get_shape_aspects(self) | ('automotive_design.' - + 'composite_shape_aspect' in typeof(sa)) and (sa.name = - 'compound feature in solid') and (sizeof(query(rh1 <* - get_round_holes_for_composite_hole(bag_to_set(usedin(sa, + + 'composite_shape_aspect' in typeof(sa)) and (sa.name = + 'compound feature in solid') and (sizeof(query(rh1 <* + get_round_holes_for_composite_hole(bag_to_set(usedin(sa, 'automotive_design.shape_aspect_relationship.relating_shape_aspect'))) | sizeof(query(rh2 <* get_round_holes_for_composite_hole(bag_to_set(usedin (sa, 'automotive_design.shape_aspect_relationship.relating_shape_aspect' - ))) | (rh1 :<>: rh2) and (get_diameter_for_round_hole(rh1) = + ))) | (rh1 :<>: rh2) and (get_diameter_for_round_hole(rh1) = get_diameter_for_round_hole(rh2)))) = 0)) = 0))) = 1"#, ) .unwrap(); @@ -3422,7 +3478,7 @@ end_local; return (acyclic(arg1\unary_generic_expression.operand, arg2 + [arg1])); end_if; if 'automotive_design.binary_generic_expression' in typeof(arg1) then - return (acyclic(arg1\binary_generic_expression.operands[1], arg2 + [arg1]) + return (acyclic(arg1\binary_generic_expression.operands[1], arg2 + [arg1]) and acyclic(arg1\binary_generic_expression.operands[2], arg2 + [arg1])); end_if; if 'automotive_design.multiple_arity_generic_expression' in typeof(arg1) @@ -3521,7 +3577,7 @@ end_function; "#, assert_eq!(e.0, ""); let e = function_call( - r#"sizeof(query(msb <* query(it <* self.items | + r#"sizeof(query(msb <* query(it <* self.items | 'automotive_design.manifold_solid_brep' in typeof(it)) | not (sizeof( query(csh <* msb_shells(msb) | not (sizeof(query(fcs <* csh\ connected_face_set.cfs_faces | not ('automotive_design.advanced_face' in @@ -3531,13 +3587,13 @@ end_function; "#, assert_eq!(e.0, ""); let e = function_call( - r#"sizeof(query(elp_fbnds <* query(bnds <* bounds | + r#"sizeof(query(elp_fbnds <* query(bnds <* bounds | 'automotive_design.edge_loop' in typeof(bnds.bound)) | not (sizeof( query(oe <* elp_fbnds.bound\path.edge_list | not (( 'automotive_design.vertex_point' in typeof(oe\edge.edge_start)) and ( 'automotive_design.cartesian_point' in typeof(oe\edge.edge_start\ - vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in - typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in + vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in + typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in typeof(oe\edge.edge_end\vertex_point.vertex_geometry))))) = 0)))"#, ) .unwrap(); @@ -3605,7 +3661,7 @@ end_function; "#, r#"(( 'automotive_design.vertex_point' in typeof(oe\edge.edge_start)) and ( 'automotive_design.cartesian_point' in typeof(oe\edge.edge_start\ - vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in + vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in typeof(oe\edge.edge_end)))"#, ) .unwrap(); @@ -3615,8 +3671,8 @@ end_function; "#, r#"not (( 'automotive_design.vertex_point' in typeof(oe\edge.edge_start)) and ( 'automotive_design.cartesian_point' in typeof(oe\edge.edge_start\ - vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in - typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in + vertex_point.vertex_geometry)) and ('automotive_design.vertex_point' in + typeof(oe\edge.edge_end)) and ('automotive_design.cartesian_point' in typeof(oe\edge.edge_end\vertex_point.vertex_geometry)))"#, ) .unwrap(); @@ -3647,7 +3703,7 @@ end_function; "#, #[test] fn test_select_type() { let e = select_type( - r#"select + r#"select (action, action_directive, action_method, action_property, shape_representation, versioned_action_request);"#, ) @@ -3658,7 +3714,7 @@ end_function; "#, #[test] fn test_underlying_type() { let e = underlying_type( - r#"select + r#"select (action, action_directive, action_method, action_property, shape_representation, versioned_action_request);"#, ) diff --git a/gui/Cargo.toml b/gui/Cargo.toml index b09e491..b438a9e 100644 --- a/gui/Cargo.toml +++ b/gui/Cargo.toml @@ -2,7 +2,7 @@ name = "gui" version = "0.1.0" authors = ["Matt Keeter "] -edition = "2021" +edition = "2024" [features] default = ["bundle-shaders"] @@ -13,10 +13,10 @@ bundle-shaders = [] bytemuck = { version = "1", features = ["derive"] } clap = "3" env_logger = "0.11" -itertools = "0.13" -nalgebra-glm = "0.18.0" -pollster = "0.3" +itertools = "0.14" +nalgebra-glm = "0.20" +pollster = "0.4" step = { path = "../step" } triangulate = { path = "../triangulate" } -wgpu = "0.9" -winit = "0.26.0" +wgpu = { version = "26" } +winit = { version = "0.30", features = ["x11", "wayland"] } diff --git a/gui/src/app.rs b/gui/src/app.rs index 15b9af7..41197f2 100644 --- a/gui/src/app.rs +++ b/gui/src/app.rs @@ -2,21 +2,20 @@ use glm::Vec2; use nalgebra_glm as glm; use winit::{ dpi::PhysicalSize, - event::{ - DeviceEvent, ElementState, ModifiersState, MouseScrollDelta, VirtualKeyCode, WindowEvent, - }, + event::{DeviceEvent, ElementState, MouseScrollDelta, WindowEvent}, + keyboard::{Key, ModifiersState}, }; use crate::{backdrop::Backdrop, camera::Camera, model::Model}; use triangulate::mesh::Mesh; -pub struct App { +pub struct App<'a> { start_time: std::time::SystemTime, - surface: wgpu::Surface, + surface: wgpu::Surface<'a>, device: wgpu::Device, - swapchain_format: wgpu::TextureFormat, - swapchain: wgpu::SwapChain, + queue: wgpu::Queue, + config: wgpu::SurfaceConfiguration, loader: Option>, model: Option, @@ -37,35 +36,51 @@ pub enum Reply { Quit, } -impl App { +impl<'a> App<'a> { pub fn new( start_time: std::time::SystemTime, size: PhysicalSize, adapter: wgpu::Adapter, - surface: wgpu::Surface, + surface: wgpu::Surface<'a>, device: wgpu::Device, + queue: wgpu::Queue, loader: std::thread::JoinHandle, ) -> Self { - let swapchain_format = adapter - .get_swap_chain_preferred_format(&surface) - .expect("Could not get swapchain format"); + let surface_caps = surface.get_capabilities(&adapter); + let surface_format = surface_caps + .formats + .iter() + .find(|f| f.is_srgb()) + .copied() + .unwrap_or(surface_caps.formats[0]); + + let config = wgpu::SurfaceConfiguration { + usage: wgpu::TextureUsages::RENDER_ATTACHMENT, + format: surface_format, + width: size.width, + height: size.height, + present_mode: wgpu::PresentMode::Fifo, + alpha_mode: surface_caps.alpha_modes[0], + view_formats: vec![], + desired_maximum_frame_latency: 2, + }; + surface.configure(&device, &config); - let swapchain = Self::rebuild_swapchain_(size, swapchain_format, &surface, &device); let depth = Self::rebuild_depth_(size, &device); - let backdrop = Backdrop::new(&device, swapchain_format); + let backdrop = Backdrop::new(&device, surface_format); Self { start_time, - swapchain, depth, backdrop, - swapchain_format, + config, loader: Some(loader), model: None, camera: Camera::new(size.width as f32, size.height as f32), surface, device, + queue, size, modifiers: ModifiersState::empty(), @@ -89,17 +104,17 @@ impl App { self.resize(size); Reply::Redraw } - WindowEvent::ScaleFactorChanged { new_inner_size, .. } => { - self.resize(*new_inner_size); - Reply::Redraw + WindowEvent::ScaleFactorChanged { .. } => { + // Scale factor changes don't directly affect the size anymore in winit 0.30 + Reply::Continue } WindowEvent::CloseRequested => Reply::Quit, WindowEvent::ModifiersChanged(m) => { - self.modifiers = m; + self.modifiers = m.state(); Reply::Continue } - WindowEvent::KeyboardInput { input, .. } => { - if self.modifiers.logo() && input.virtual_keycode == Some(VirtualKeyCode::Q) { + WindowEvent::KeyboardInput { event, .. } => { + if self.modifiers.super_key() && event.logical_key == Key::Character("q".into()) { Reply::Quit } else { Reply::Continue @@ -129,11 +144,14 @@ impl App { } fn resize(&mut self, size: PhysicalSize) { - self.size = size; - self.swapchain = - Self::rebuild_swapchain_(size, self.swapchain_format, &self.surface, &self.device); - self.depth = Self::rebuild_depth_(size, &self.device); - self.camera.set_size(size.width as f32, size.height as f32); + if size.width > 0 && size.height > 0 { + self.size = size; + self.config.width = size.width; + self.config.height = size.height; + self.surface.configure(&self.device, &self.config); + self.depth = Self::rebuild_depth_(size, &self.device); + self.camera.set_size(size.width as f32, size.height as f32); + } } fn rebuild_depth_( @@ -152,47 +170,41 @@ impl App { sample_count: 1, dimension: wgpu::TextureDimension::D2, format: wgpu::TextureFormat::Depth32Float, - usage: wgpu::TextureUsage::RENDER_ATTACHMENT | wgpu::TextureUsage::SAMPLED, + usage: wgpu::TextureUsages::RENDER_ATTACHMENT | wgpu::TextureUsages::TEXTURE_BINDING, + view_formats: &[], }; let tex = device.create_texture(&desc); let view = tex.create_view(&wgpu::TextureViewDescriptor::default()); (tex, view) } - fn rebuild_swapchain_( - size: PhysicalSize, - format: wgpu::TextureFormat, - surface: &wgpu::Surface, - device: &wgpu::Device, - ) -> wgpu::SwapChain { - let sc_desc = wgpu::SwapChainDescriptor { - usage: wgpu::TextureUsage::RENDER_ATTACHMENT, - format, - width: size.width, - height: size.height, - present_mode: wgpu::PresentMode::Mailbox, - }; - device.create_swap_chain(surface, &sc_desc) - } - // Redraw the GUI, returning true if the model was not drawn (which means // that the parent loop should keep calling redraw to force model load) - pub fn redraw(&mut self, queue: &wgpu::Queue) -> bool { - let frame = self - .swapchain - .get_current_frame() - .expect("Failed to acquire next swap chain texture") - .output; + pub fn redraw(&mut self) -> bool { + let output = self + .surface + .get_current_texture() + .expect("Failed to acquire next surface texture"); + let view = output + .texture + .create_view(&wgpu::TextureViewDescriptor::default()); let mut encoder = self .device .create_command_encoder(&wgpu::CommandEncoderDescriptor { label: None }); - self.backdrop.draw(&frame, &self.depth.1, &mut encoder); + self.backdrop.draw(&view, &self.depth.1, &mut encoder); if let Some(model) = &self.model { - model.draw(&self.camera, queue, &frame, &self.depth.1, &mut encoder); + model.draw( + &self.camera, + &self.queue, + &view, + &self.depth.1, + &mut encoder, + ); } let drew_model = self.model.is_some(); - queue.submit(Some(encoder.finish())); + self.queue.submit(Some(encoder.finish())); + output.present(); if drew_model && self.first_frame { let end = std::time::SystemTime::now(); @@ -205,7 +217,6 @@ impl App { // until after a queue is submitted, so we don't wait to wait for // the model until the _second_ frame. if !self.first_frame && self.model.is_none() { - println!("Waiting for mesh"); let mesh = self .loader .take() @@ -214,7 +225,7 @@ impl App { .expect("Failed to load mesh"); let model = Model::new( &self.device, - self.swapchain_format, + self.config.format, &mesh.verts, &mesh.triangles, ); diff --git a/gui/src/backdrop.rs b/gui/src/backdrop.rs index e5a920d..d855789 100644 --- a/gui/src/backdrop.rs +++ b/gui/src/backdrop.rs @@ -18,10 +18,9 @@ impl Backdrop { .expect("Shader is invalid UTF-8"), ); - let shader = device.create_shader_module(&wgpu::ShaderModuleDescriptor { + let shader = device.create_shader_module(wgpu::ShaderModuleDescriptor { label: None, source: wgpu::ShaderSource::Wgsl(backdrop_src), - flags: wgpu::ShaderFlags::all(), }); let pipeline_layout = device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { @@ -35,13 +34,15 @@ impl Backdrop { layout: Some(&pipeline_layout), vertex: wgpu::VertexState { module: &shader, - entry_point: "vs_main", + entry_point: Some("vs_main"), buffers: &[], + compilation_options: Default::default(), }, fragment: Some(wgpu::FragmentState { module: &shader, - entry_point: "fs_main", - targets: &[swapchain_format.into()], + entry_point: Some("fs_main"), + targets: &[Some(swapchain_format.into())], + compilation_options: Default::default(), }), primitive: wgpu::PrimitiveState::default(), depth_stencil: Some(wgpu::DepthStencilState { @@ -52,6 +53,8 @@ impl Backdrop { bias: wgpu::DepthBiasState::default(), }), multisample: wgpu::MultisampleState::default(), + multiview: None, + cache: None, }); Backdrop { render_pipeline } @@ -59,28 +62,31 @@ impl Backdrop { pub fn draw( &self, - frame: &wgpu::SwapChainTexture, + frame: &wgpu::TextureView, depth_view: &wgpu::TextureView, encoder: &mut wgpu::CommandEncoder, ) { let mut rpass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { label: None, - color_attachments: &[wgpu::RenderPassColorAttachment { - view: &frame.view, + color_attachments: &[Some(wgpu::RenderPassColorAttachment { + view: frame, resolve_target: None, ops: wgpu::Operations { load: wgpu::LoadOp::Clear(wgpu::Color::GREEN), - store: true, + store: wgpu::StoreOp::Store, }, - }], + depth_slice: None, + })], depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachment { view: depth_view, depth_ops: Some(wgpu::Operations { load: wgpu::LoadOp::Clear(0.0), - store: true, + store: wgpu::StoreOp::Store, }), stencil_ops: None, }), + occlusion_query_set: None, + timestamp_writes: None, }); rpass.set_pipeline(&self.render_pipeline); rpass.draw(0..6, 0..1); diff --git a/gui/src/backdrop.wgsl b/gui/src/backdrop.wgsl index 8146bd0..3b9d2c1 100644 --- a/gui/src/backdrop.wgsl +++ b/gui/src/backdrop.wgsl @@ -1,23 +1,23 @@ struct VertexOutput { - [[location(0)]] color: vec4; - [[builtin(position)]] position: vec4; + @location(0) color: vec4, + @builtin(position) position: vec4, }; -[[stage(vertex)]] -fn vs_main([[builtin(vertex_index)]] in_vertex_index: u32) -> VertexOutput { +@vertex +fn vs_main(@builtin(vertex_index) in_vertex_index: u32) -> VertexOutput { var out: VertexOutput; var c1: vec4 = vec4(0.05, 0.06, 0.10, 1.0); var c2: vec4 = vec4(0.17, 0.22, 0.29, 1.0); if (in_vertex_index == 0u || in_vertex_index == 5u) { out.color = c1; out.position = vec4(-1.0, -1.0, 0.0, 1.0); - } elseif (in_vertex_index == 1u) { + } else if (in_vertex_index == 1u) { out.color = c1; out.position = vec4(1.0, -1.0, 0.0, 1.0); - } elseif (in_vertex_index == 2u || in_vertex_index == 3u) { + } else if (in_vertex_index == 2u || in_vertex_index == 3u) { out.color = c2; out.position = vec4(1.0, 1.0, 0.0, 1.0); - } elseif (in_vertex_index == 4u) { + } else if (in_vertex_index == 4u) { out.color = c2; out.position = vec4(-1.0, 1.0, 0.0, 1.0); } else { @@ -27,7 +27,7 @@ fn vs_main([[builtin(vertex_index)]] in_vertex_index: u32) -> VertexOutput { return out; } -[[stage(fragment)]] -fn fs_main(in: VertexOutput) -> [[location(0)]] vec4 { +@fragment +fn fs_main(in: VertexOutput) -> @location(0) vec4 { return in.color; } diff --git a/gui/src/camera.rs b/gui/src/camera.rs index ce37212..350a1b8 100644 --- a/gui/src/camera.rs +++ b/gui/src/camera.rs @@ -48,14 +48,14 @@ impl Camera { pub fn mouse_pressed(&mut self, button: MouseButton) { // If we were previously free, then switch to panning or rotating - if let MouseState::Free(pos) = &self.mouse { - if let Some(m) = match button { + if let MouseState::Free(pos) = &self.mouse + && let Some(m) = match button { MouseButton::Left => Some(MouseState::Rotate(*pos)), MouseButton::Right => Some(MouseState::Pan(*pos, self.mouse_pos(*pos))), _ => None, - } { - self.mouse = m } + { + self.mouse = m } } @@ -121,6 +121,13 @@ impl Camera { } pub fn fit_verts(&mut self, verts: &[Vertex]) { + // Handle empty vertex arrays + if verts.is_empty() { + self.scale = 1.0; + self.center = Vec3::new(0.0, 0.0, 0.0); + return; + } + let xb = verts .iter() .map(|v| v.pos.x) @@ -142,7 +149,13 @@ impl Camera { let dx = xb.1 - xb.0; let dy = yb.1 - yb.0; let dz = zb.1 - zb.0; - self.scale = (1.0 / dx.max(dy).max(dz)) as f32; + let max_extent = dx.max(dy).max(dz); + // Prevent division by zero for single-point models + if max_extent > 0.0 { + self.scale = (1.0 / max_extent) as f32; + } else { + self.scale = 1.0; + } self.center = Vec3::new( (xb.0 + xb.1) as f32 / 2.0, (yb.0 + yb.1) as f32 / 2.0, diff --git a/gui/src/main.rs b/gui/src/main.rs index 2d039d6..1321817 100644 --- a/gui/src/main.rs +++ b/gui/src/main.rs @@ -1,8 +1,10 @@ +use std::sync::Arc; use std::time::SystemTime; use winit::{ - event::Event, - event_loop::{ControlFlow, EventLoop}, - window::Window, + application::ApplicationHandler, + event::WindowEvent as WinitWindowEvent, + event_loop::{ActiveEventLoop, EventLoop}, + window::{Window, WindowId}, }; pub(crate) mod app; @@ -13,64 +15,115 @@ pub(crate) mod model; use crate::app::App; use triangulate::mesh::Mesh; -async fn run( +struct GuiApp { start: SystemTime, - event_loop: EventLoop<()>, - window: Window, - loader: std::thread::JoinHandle, -) { - let size = window.inner_size(); - let (surface, adapter) = { - let instance = wgpu::Instance::new(wgpu::BackendBit::all()); - let surface = unsafe { instance.create_surface(&window) }; - let adapter = instance - .request_adapter(&wgpu::RequestAdapterOptions { - power_preference: wgpu::PowerPreference::default(), - // Request an adapter which can render to our surface - compatible_surface: Some(&surface), - }) - .await - .expect("Failed to find an appropriate adapter"); - (surface, adapter) - }; - - // Create the logical device and command queue - let (device, queue) = adapter - .request_device( - &wgpu::DeviceDescriptor { - label: None, - features: wgpu::Features::empty(), - limits: wgpu::Limits::default(), - }, - None, - ) - .await - .expect("Failed to create device"); + loader: Option>, + window: Option>, + app: Option>, +} + +impl GuiApp { + fn new(start: SystemTime, loader: std::thread::JoinHandle) -> Self { + Self { + start, + loader: Some(loader), + window: None, + app: None, + } + } +} + +impl ApplicationHandler for GuiApp { + fn resumed(&mut self, event_loop: &ActiveEventLoop) { + if self.window.is_none() { + let window = std::sync::Arc::new( + event_loop + .create_window(winit::window::WindowAttributes::default().with_title("Foxtrot")) + .expect("Failed to create window"), + ); - let mut app = App::new(start, size, adapter, surface, device, loader); + // Initialize wgpu and create app + let size = window.inner_size(); + let instance = wgpu::Instance::new(&wgpu::InstanceDescriptor::default()); + let surface = instance + .create_surface(window.clone()) + .expect("Failed to create surface"); + + let adapter = + pollster::block_on(instance.request_adapter(&wgpu::RequestAdapterOptions { + power_preference: wgpu::PowerPreference::default(), + compatible_surface: Some(&surface), + force_fallback_adapter: false, + })) + .expect("Failed to find an appropriate adapter"); + + let (device, queue) = + pollster::block_on(adapter.request_device(&wgpu::DeviceDescriptor { + label: None, + required_features: wgpu::Features::empty(), + required_limits: wgpu::Limits::default(), + memory_hints: Default::default(), + trace: Default::default(), + })) + .expect("Failed to create device"); + + let app = App::new( + self.start, + size, + adapter, + surface, + device, + queue, + self.loader.take().unwrap(), + ); + + self.app = Some(app); + self.window = Some(window); + } + } - event_loop.run(move |event, _, control_flow| { - *control_flow = ControlFlow::Wait; + fn window_event( + &mut self, + event_loop: &ActiveEventLoop, + _window_id: WindowId, + event: WinitWindowEvent, + ) { use app::Reply; - match event { - Event::WindowEvent { event, .. } => match app.window_event(event) { + + if let Some(app) = &mut self.app + && let Some(window) = &self.window + { + match app.window_event(event) { Reply::Continue => (), - Reply::Quit => *control_flow = ControlFlow::Exit, + Reply::Quit => event_loop.exit(), Reply::Redraw => { - if app.redraw(&queue) { + if app.redraw() { window.request_redraw(); } } - }, - Event::RedrawRequested(_) => { - if app.redraw(&queue) { - window.request_redraw(); - } } - Event::DeviceEvent { event, .. } => app.device_event(event), - _ => (), } - }); + } + + fn device_event( + &mut self, + _event_loop: &ActiveEventLoop, + _device_id: winit::event::DeviceId, + event: winit::event::DeviceEvent, + ) { + if let Some(app) = &mut self.app { + app.device_event(event); + } + } + + fn about_to_wait(&mut self, _event_loop: &ActiveEventLoop) { + if let Some(app) = &mut self.app + && let Some(window) = &self.window + && app.redraw() + { + window.request_redraw(); + } + } } fn main() { @@ -91,22 +144,33 @@ fn main() { .expect("Could not get input file") .to_owned(); - // Kick off the loader thread immediately, so that the STEP file is parsed - // and triangulated in the background while we wait for a GPU context - let loader = std::thread::spawn(|| { - println!("Loading mesh!"); - use step::step_file::StepFile; - use triangulate::triangulate::triangulate; - - let data = std::fs::read(input).expect("Could not open file"); - let flat = StepFile::strip_flatten(&data); - let step = StepFile::parse(&flat); - let (mesh, _stats) = triangulate(&step); - mesh - }); - - let event_loop = EventLoop::new(); - let window = winit::window::Window::new(&event_loop).unwrap(); - window.set_title("Foxtrot"); - pollster::block_on(run(start, event_loop, window, loader)); + // Load and triangulate the STEP file first + println!("Loading mesh!"); + use step::step_file::StepFile; + use triangulate::triangulate::triangulate; + + let data = std::fs::read(input).expect("Could not open file"); + let flat = StepFile::strip_flatten(&data); + let step = StepFile::parse(&flat); + let (mesh, _stats) = triangulate(&step); + + // Check if the mesh is empty + if mesh.verts.is_empty() || mesh.triangles.is_empty() { + eprintln!("Error: The STEP file produced an empty mesh (no vertices or triangles)."); + eprintln!("This may indicate an unsupported geometry type or parsing issue."); + std::process::exit(1); + } + + println!( + "Mesh loaded: {} vertices, {} triangles", + mesh.verts.len(), + mesh.triangles.len() + ); + + // Start the mesh in a thread for the GUI to pick up later + let loader = std::thread::spawn(move || mesh); + + let event_loop = EventLoop::new().expect("Failed to create event loop"); + let mut app = GuiApp::new(start, loader); + let _ = event_loop.run_app(&mut app); } diff --git a/gui/src/model.rs b/gui/src/model.rs index 7a14f5e..f26cc23 100644 --- a/gui/src/model.rs +++ b/gui/src/model.rs @@ -49,19 +49,19 @@ impl Model { let vertex_buf = device.create_buffer_init(&wgpu::util::BufferInitDescriptor { label: Some("Vertex buffer"), contents: bytemuck::cast_slice(&vertex_data), - usage: wgpu::BufferUsage::VERTEX, + usage: wgpu::BufferUsages::VERTEX, }); let index_buf = device.create_buffer_init(&wgpu::util::BufferInitDescriptor { label: Some("Index buffer"), contents: bytemuck::cast_slice(&index_data), - usage: wgpu::BufferUsage::INDEX, + usage: wgpu::BufferUsages::INDEX, }); let uniform_buf = device.create_buffer(&wgpu::BufferDescriptor { label: Some("Uniform Buffer"), size: std::mem::size_of::() as wgpu::BufferAddress * 2, - usage: wgpu::BufferUsage::UNIFORM | wgpu::BufferUsage::COPY_DST, + usage: wgpu::BufferUsages::UNIFORM | wgpu::BufferUsages::COPY_DST, mapped_at_creation: false, }); @@ -69,7 +69,7 @@ impl Model { label: None, entries: &[wgpu::BindGroupLayoutEntry { binding: 0, - visibility: wgpu::ShaderStage::VERTEX, + visibility: wgpu::ShaderStages::VERTEX, ty: wgpu::BindingType::Buffer { ty: wgpu::BufferBindingType::Uniform, has_dynamic_offset: false, @@ -88,7 +88,7 @@ impl Model { let vertex_buf_layout = wgpu::VertexBufferLayout { array_stride: std::mem::size_of::() as wgpu::BufferAddress, - step_mode: wgpu::InputStepMode::Vertex, + step_mode: wgpu::VertexStepMode::Vertex, attributes: &[ // Positions wgpu::VertexAttribute { @@ -131,10 +131,9 @@ impl Model { .expect("Shader is invalid UTF-8"), ); - let shader = device.create_shader_module(&wgpu::ShaderModuleDescriptor { + let shader = device.create_shader_module(wgpu::ShaderModuleDescriptor { label: None, source: wgpu::ShaderSource::Wgsl(model_src), - flags: wgpu::ShaderFlags::all(), }); let render_pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { @@ -142,13 +141,15 @@ impl Model { layout: Some(&pipeline_layout), vertex: wgpu::VertexState { module: &shader, - entry_point: "vs_main", + entry_point: Some("vs_main"), buffers: &[vertex_buf_layout], + compilation_options: Default::default(), }, fragment: Some(wgpu::FragmentState { module: &shader, - entry_point: "fs_main", - targets: &[swapchain_format.into()], + entry_point: Some("fs_main"), + targets: &[Some(swapchain_format.into())], + compilation_options: Default::default(), }), primitive: wgpu::PrimitiveState::default(), depth_stencil: Some(wgpu::DepthStencilState { @@ -159,6 +160,8 @@ impl Model { bias: wgpu::DepthBiasState::default(), }), multisample: wgpu::MultisampleState::default(), + multiview: None, + cache: None, }); Model { @@ -175,7 +178,7 @@ impl Model { &self, camera: &Camera, queue: &wgpu::Queue, - frame: &wgpu::SwapChainTexture, + frame: &wgpu::TextureView, depth_view: &wgpu::TextureView, encoder: &mut wgpu::CommandEncoder, ) { @@ -195,22 +198,25 @@ impl Model { let mut rpass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { label: None, - color_attachments: &[wgpu::RenderPassColorAttachment { - view: &frame.view, + color_attachments: &[Some(wgpu::RenderPassColorAttachment { + view: frame, resolve_target: None, ops: wgpu::Operations { load: wgpu::LoadOp::Load, - store: true, + store: wgpu::StoreOp::Store, }, - }], + depth_slice: None, + })], depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachment { view: depth_view, depth_ops: Some(wgpu::Operations { load: wgpu::LoadOp::Load, - store: true, + store: wgpu::StoreOp::Store, }), stencil_ops: None, }), + occlusion_query_set: None, + timestamp_writes: None, }); rpass.set_pipeline(&self.render_pipeline); rpass.set_index_buffer(self.index_buf.slice(..), wgpu::IndexFormat::Uint32); diff --git a/gui/src/model.wgsl b/gui/src/model.wgsl index 070ef24..0576d19 100644 --- a/gui/src/model.wgsl +++ b/gui/src/model.wgsl @@ -1,22 +1,21 @@ struct VertexOutput { - [[builtin(position)]] position: vec4; - [[location(0)]] normal: vec4; - [[location(1)]] color: vec4; + @builtin(position) position: vec4, + @location(0) normal: vec4, + @location(1) color: vec4, }; -[[block]] struct Locals { - view_mat: mat4x4; - model_mat: mat4x4; + view_mat: mat4x4, + model_mat: mat4x4, }; -[[group(0), binding(0)]] -var r_locals: Locals; +@group(0) @binding(0) +var r_locals: Locals; -[[stage(vertex)]] +@vertex fn vs_main( - [[location(0)]] position: vec4, - [[location(1)]] normal: vec4, - [[location(2)]] color: vec4, + @location(0) position: vec4, + @location(1) normal: vec4, + @location(2) color: vec4, ) -> VertexOutput { var out: VertexOutput; out.position = r_locals.view_mat * r_locals.model_mat * vec4(position.xyz, 1.0); @@ -25,7 +24,7 @@ fn vs_main( return out; } -[[stage(fragment)]] -fn fs_main(in: VertexOutput) -> [[location(0)]] vec4 { +@fragment +fn fs_main(in: VertexOutput) -> @location(0) vec4 { return vec4(abs(in.normal.z) * in.color.xyz, 1.0); } diff --git a/nurbs/Cargo.toml b/nurbs/Cargo.toml index 5620e89..7fbdcb9 100644 --- a/nurbs/Cargo.toml +++ b/nurbs/Cargo.toml @@ -2,11 +2,11 @@ name = "nurbs" version = "0.1.0" authors = ["Matt Keeter "] -edition = "2021" +edition = "2024" [dependencies] log = "0.4" -nalgebra-glm = "0.18" +nalgebra-glm = "0.20" num-integer = "0.1" -ordered-float = "4" -smallvec = "1.6" +ordered-float = "5" +smallvec = "1" diff --git a/nurbs/src/bspline_surface.rs b/nurbs/src/bspline_surface.rs index 39fdafe..04c3e34 100644 --- a/nurbs/src/bspline_surface.rs +++ b/nurbs/src/bspline_surface.rs @@ -1,4 +1,4 @@ -use crate::{abstract_surface::AbstractSurface, nd_surface::NdBsplineSurface, VecF}; +use crate::{VecF, abstract_surface::AbstractSurface, nd_surface::NdBsplineSurface}; use nalgebra_glm::{DVec2, DVec3}; pub type BsplineSurface = NdBsplineSurface<3>; diff --git a/nurbs/src/knot_vector.rs b/nurbs/src/knot_vector.rs index f06d524..61eacb2 100644 --- a/nurbs/src/knot_vector.rs +++ b/nurbs/src/knot_vector.rs @@ -21,7 +21,7 @@ impl KnotVector { let U = knots .iter() .zip(multiplicities.iter()) - .flat_map(|(k, m)| std::iter::repeat(*k).take(*m)) + .flat_map(|(k, m)| std::iter::repeat_n(*k, *m)) .collect(); Self { U, p } } @@ -111,7 +111,12 @@ impl KnotVector { self.basis_functions_derivatives_for_span(i, u, n) } - pub fn basis_functions_derivatives_for_span(&self, i: usize, u: f64, n: usize) -> Vec> { + pub fn basis_functions_derivatives_for_span( + &self, + i: usize, + u: f64, + n: usize, + ) -> Vec> { let mut ndu = vec![vec![0.0; self.p + 1]; self.p + 1]; let mut a = vec![vec![0.0; self.p + 1]; 2]; let mut left = vec![0.0; self.p + 1]; diff --git a/nurbs/src/nd_surface.rs b/nurbs/src/nd_surface.rs index d2ddd5e..2d47306 100644 --- a/nurbs/src/nd_surface.rs +++ b/nurbs/src/nd_surface.rs @@ -99,10 +99,14 @@ impl NdBsplineSurface { let mut SKL = vec![vec![TVec::zeros(); E + 1]; E + 1]; let uspan = self.u_knots.find_span(uv.x); - let Nu_deriv = self.u_knots.basis_functions_derivatives_for_span(uspan, uv.x, du); + let Nu_deriv = self + .u_knots + .basis_functions_derivatives_for_span(uspan, uv.x, du); let vspan = self.v_knots.find_span(uv.y); - let Nv_deriv = self.v_knots.basis_functions_derivatives_for_span(vspan, uv.y, dv); + let Nv_deriv = self + .v_knots + .basis_functions_derivatives_for_span(vspan, uv.y, dv); let mut temp = vec![TVec::zeros(); q + 1]; for k in 0..=du { diff --git a/nurbs/src/nurbs_surface.rs b/nurbs/src/nurbs_surface.rs index 945138c..d330222 100644 --- a/nurbs/src/nurbs_surface.rs +++ b/nurbs/src/nurbs_surface.rs @@ -1,4 +1,4 @@ -use crate::{abstract_surface::AbstractSurface, nd_surface::NdBsplineSurface, VecF}; +use crate::{VecF, abstract_surface::AbstractSurface, nd_surface::NdBsplineSurface}; use nalgebra_glm::{DVec2, DVec3}; pub type NurbsSurface = NdBsplineSurface<4>; diff --git a/nurbs/src/sampled_curve.rs b/nurbs/src/sampled_curve.rs index 236dcfd..399fa25 100644 --- a/nurbs/src/sampled_curve.rs +++ b/nurbs/src/sampled_curve.rs @@ -1,5 +1,5 @@ use crate::{abstract_curve::AbstractCurve, nd_curve::NdBsplineCurve}; -use nalgebra_glm::{dot, length, length2, DVec3}; +use nalgebra_glm::{DVec3, dot, length, length2}; #[derive(Debug)] pub struct SampledCurve { diff --git a/nurbs/src/sampled_surface.rs b/nurbs/src/sampled_surface.rs index f49a6b3..96b20be 100644 --- a/nurbs/src/sampled_surface.rs +++ b/nurbs/src/sampled_surface.rs @@ -1,6 +1,6 @@ use crate::{abstract_surface::AbstractSurface, nd_surface::NdBsplineSurface}; use log::error; -use nalgebra_glm::{dot, length, length2, DMat2x2, DVec2, DVec3}; +use nalgebra_glm::{DMat2x2, DVec2, DVec3, dot, length, length2}; #[derive(Debug, Clone)] pub struct SampledSurface { diff --git a/step/Cargo.toml b/step/Cargo.toml index 73fa4ac..1f4ef18 100644 --- a/step/Cargo.toml +++ b/step/Cargo.toml @@ -2,7 +2,10 @@ name = "step" version = "0.1.0" authors = ["Matt Keeter "] -edition = "2021" +edition = "2024" + +[features] +default = ["rayon"] [dependencies] arrayvec = "0.7" @@ -10,10 +13,7 @@ fast-float = "0.2" log = "0.4" memchr = "2.7" nom = "7" -rayon = { version = "1.10", optional = true } - -[features] -default = ["rayon"] +rayon = { version = "1", optional = true } [dev-dependencies] clap = "3" diff --git a/step/examples/parse_step.rs b/step/examples/parse_step.rs index e29dfac..f2c6026 100644 --- a/step/examples/parse_step.rs +++ b/step/examples/parse_step.rs @@ -1,17 +1,14 @@ +use clap::{App, Arg}; use std::time::SystemTime; -use clap::{Arg, App}; use step::step_file::StepFile; fn main() -> Result<(), Box> { let matches = App::new("parse_step") .author("Matt Keeter ") .about("Tests STEP parsing") - .arg(Arg::with_name("input") - .takes_value(true) - .required(true)) + .arg(Arg::with_name("input").takes_value(true).required(true)) .get_matches(); - let input = matches.value_of("input") - .expect("Could not get input file"); + let input = matches.value_of("input").expect("Could not get input file"); let start = SystemTime::now(); @@ -25,4 +22,3 @@ fn main() -> Result<(), Box> { println!("time {:?}", since_the_epoch); Ok(()) } - diff --git a/step/examples/step_to_dot.rs b/step/examples/step_to_dot.rs index a96a298..33f03db 100644 --- a/step/examples/step_to_dot.rs +++ b/step/examples/step_to_dot.rs @@ -1,4 +1,4 @@ -use clap::{Arg, App}; +use clap::{App, Arg}; use step::step_file::StepFile; pub fn to_dot(s: &StepFile) -> String { @@ -20,25 +20,23 @@ fn main() -> Result<(), Box> { let matches = App::new("step_to_dot2") .author("Matt Keeter ") .about("Converts a STEP file to a dot file") - .arg(Arg::with_name("output") - .short('o') - .long("out") - .help("dot file to target") - .takes_value(true)) - .arg(Arg::with_name("input") - .takes_value(true) - .required(true)) + .arg( + Arg::with_name("output") + .short('o') + .long("out") + .help("dot file to target") + .takes_value(true), + ) + .arg(Arg::with_name("input").takes_value(true).required(true)) .get_matches(); - let input = matches.value_of("input") - .expect("Could not get input file"); + let input = matches.value_of("input").expect("Could not get input file"); let start = std::time::SystemTime::now(); let data = std::fs::read(input)?; let flat = StepFile::strip_flatten(&data); let entities = StepFile::parse(&flat); let end = std::time::SystemTime::now(); - let since_the_epoch = end.duration_since(start) - .expect("Time went backwards"); + let since_the_epoch = end.duration_since(start).expect("Time went backwards"); println!("Loaded + parsed in {:?}", since_the_epoch); let dot = to_dot(&entities); diff --git a/step/src/ap214.rs b/step/src/ap214.rs index 8f7a41c..adf7478 100644 --- a/step/src/ap214.rs +++ b/step/src/ap214.rs @@ -1,21 +1,24 @@ // Autogenerated file, do not hand-edit! use crate::{ - id::{Id, HasId}, - parse::{IResult, Logical, Derived, Parse, ParseFromChunks, nom_alt_err, - parse_enum_tag, param_from_chunks, parse_complex_mapping}, + id::{HasId, Id}, + parse::{ + Derived, IResult, Logical, Parse, ParseFromChunks, nom_alt_err, param_from_chunks, + parse_complex_mapping, parse_enum_tag, + }, step_file::FromEntity, }; +use arrayvec::ArrayVec; use nom::{ - branch::{alt}, + branch::alt, bytes::complete::tag, character::complete::{alpha0, alphanumeric1, char}, combinator::{map, recognize}, - multi::{many0}, + multi::many0, sequence::{delimited, pair}, }; -use arrayvec::ArrayVec; #[derive(Debug)] -pub struct AbsFunction_<'a> { // entity +pub struct AbsFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -33,9 +36,13 @@ impl<'a> ParseFromChunks<'a> for AbsFunction_<'a> { let mut i = 0; let (s, _) = tag("ABS_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AbsFunction_<'a> { @@ -44,7 +51,8 @@ impl<'a> HasId for AbsFunction_<'a> { } } #[derive(Debug)] -pub struct AcosFunction_<'a> { // entity +pub struct AcosFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -62,9 +70,13 @@ impl<'a> ParseFromChunks<'a> for AcosFunction_<'a> { let mut i = 0; let (s, _) = tag("ACOS_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AcosFunction_<'a> { @@ -73,7 +85,8 @@ impl<'a> HasId for AcosFunction_<'a> { } } #[derive(Debug)] -pub struct Action_<'a> { // entity +pub struct Action_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub chosen_method: ActionMethod<'a>, @@ -95,11 +108,15 @@ impl<'a> ParseFromChunks<'a> for Action_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, chosen_method) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - chosen_method, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + chosen_method, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Action_<'a> { @@ -110,7 +127,8 @@ impl<'a> HasId for Action_<'a> { } } #[derive(Debug)] -pub struct ActionAssignment_<'a> { // entity +pub struct ActionAssignment_<'a> { + // entity pub assigned_action: Action<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -128,9 +146,13 @@ impl<'a> ParseFromChunks<'a> for ActionAssignment_<'a> { let mut i = 0; let (s, _) = tag("ACTION_ASSIGNMENT(")(strs[0])?; let (s, assigned_action) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_action, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_action, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionAssignment_<'a> { @@ -139,7 +161,8 @@ impl<'a> HasId for ActionAssignment_<'a> { } } #[derive(Debug)] -pub struct ActionDirective_<'a> { // entity +pub struct ActionDirective_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub analysis: Text<'a>, @@ -164,14 +187,19 @@ impl<'a> ParseFromChunks<'a> for ActionDirective_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, analysis) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, comment) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, requests) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - analysis, - comment, - requests, - _marker: std::marker::PhantomData})) + let (s, requests) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + analysis, + comment, + requests, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionDirective_<'a> { @@ -188,7 +216,8 @@ pub struct ActionItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous selec pub type ActionItem<'a> = Id>; #[derive(Debug)] -pub struct ActionMethod_<'a> { // entity +pub struct ActionMethod_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub consequence: Text<'a>, @@ -212,12 +241,16 @@ impl<'a> ParseFromChunks<'a> for ActionMethod_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, consequence) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, purpose) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - consequence, - purpose, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + consequence, + purpose, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionMethod_<'a> { @@ -229,7 +262,8 @@ impl<'a> HasId for ActionMethod_<'a> { } } #[derive(Debug)] -pub struct ActionMethodRelationship_<'a> { // entity +pub struct ActionMethodRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_method: ActionMethod<'a>, @@ -253,12 +287,16 @@ impl<'a> ParseFromChunks<'a> for ActionMethodRelationship_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, relating_method) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, related_method) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_method, - related_method, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + relating_method, + related_method, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionMethodRelationship_<'a> { @@ -270,7 +308,8 @@ impl<'a> HasId for ActionMethodRelationship_<'a> { } } #[derive(Debug)] -pub struct ActionProperty_<'a> { // entity +pub struct ActionProperty_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub definition: CharacterizedActionDefinition<'a>, @@ -291,12 +330,17 @@ impl<'a> ParseFromChunks<'a> for ActionProperty_<'a> { let (s, _) = tag("ACTION_PROPERTY(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, definition) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - definition, - _marker: std::marker::PhantomData})) + let (s, definition) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + definition, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionProperty_<'a> { @@ -307,7 +351,8 @@ impl<'a> HasId for ActionProperty_<'a> { } } #[derive(Debug)] -pub struct ActionPropertyRepresentation_<'a> { // entity +pub struct ActionPropertyRepresentation_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub property: ActionProperty<'a>, @@ -331,12 +376,16 @@ impl<'a> ParseFromChunks<'a> for ActionPropertyRepresentation_<'a> { let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, property) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - property, - representation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + property, + representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionPropertyRepresentation_<'a> { @@ -348,7 +397,8 @@ impl<'a> HasId for ActionPropertyRepresentation_<'a> { } } #[derive(Debug)] -pub struct ActionRelationship_<'a> { // entity +pub struct ActionRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_action: Action<'a>, @@ -372,12 +422,16 @@ impl<'a> ParseFromChunks<'a> for ActionRelationship_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, relating_action) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, related_action) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_action, - related_action, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + relating_action, + related_action, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionRelationship_<'a> { @@ -389,7 +443,8 @@ impl<'a> HasId for ActionRelationship_<'a> { } } #[derive(Debug)] -pub struct ActionRequestAssignment_<'a> { // entity +pub struct ActionRequestAssignment_<'a> { + // entity pub assigned_action_request: VersionedActionRequest<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -406,10 +461,15 @@ impl<'a> ParseFromChunks<'a> for ActionRequestAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("ACTION_REQUEST_ASSIGNMENT(")(strs[0])?; - let (s, assigned_action_request) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_action_request, - _marker: std::marker::PhantomData})) + let (s, assigned_action_request) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_action_request, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionRequestAssignment_<'a> { @@ -422,7 +482,8 @@ pub struct ActionRequestItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguou pub type ActionRequestItem<'a> = Id>; #[derive(Debug)] -pub struct ActionRequestSolution_<'a> { // entity +pub struct ActionRequestSolution_<'a> { + // entity pub method: ActionMethod<'a>, pub request: VersionedActionRequest<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -442,10 +503,14 @@ impl<'a> ParseFromChunks<'a> for ActionRequestSolution_<'a> { let (s, _) = tag("ACTION_REQUEST_SOLUTION(")(strs[0])?; let (s, method) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, request) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - method, - request, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + method, + request, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionRequestSolution_<'a> { @@ -455,7 +520,8 @@ impl<'a> HasId for ActionRequestSolution_<'a> { } } #[derive(Debug)] -pub struct ActionRequestStatus_<'a> { // entity +pub struct ActionRequestStatus_<'a> { + // entity pub status: Label<'a>, pub assigned_request: VersionedActionRequest<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -474,11 +540,16 @@ impl<'a> ParseFromChunks<'a> for ActionRequestStatus_<'a> { let mut i = 0; let (s, _) = tag("ACTION_REQUEST_STATUS(")(strs[0])?; let (s, status) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, assigned_request) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - status, - assigned_request, - _marker: std::marker::PhantomData})) + let (s, assigned_request) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + status, + assigned_request, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionRequestStatus_<'a> { @@ -488,7 +559,8 @@ impl<'a> HasId for ActionRequestStatus_<'a> { } } #[derive(Debug)] -pub struct ActionResource_<'a> { // entity +pub struct ActionResource_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub usage: Vec>, @@ -512,12 +584,16 @@ impl<'a> ParseFromChunks<'a> for ActionResource_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, usage) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, kind) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - usage, - kind, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + usage, + kind, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionResource_<'a> { @@ -529,7 +605,8 @@ impl<'a> HasId for ActionResource_<'a> { } } #[derive(Debug)] -pub struct ActionResourceRequirement_<'a> { // entity +pub struct ActionResourceRequirement_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub kind: ResourceRequirementType<'a>, @@ -552,13 +629,18 @@ impl<'a> ParseFromChunks<'a> for ActionResourceRequirement_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, kind) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, operations) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - kind, - operations, - _marker: std::marker::PhantomData})) + let (s, operations) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + kind, + operations, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionResourceRequirement_<'a> { @@ -570,7 +652,8 @@ impl<'a> HasId for ActionResourceRequirement_<'a> { } } #[derive(Debug)] -pub struct ActionResourceType_<'a> { // entity +pub struct ActionResourceType_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -588,9 +671,13 @@ impl<'a> ParseFromChunks<'a> for ActionResourceType_<'a> { let mut i = 0; let (s, _) = tag("ACTION_RESOURCE_TYPE(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionResourceType_<'a> { @@ -599,7 +686,8 @@ impl<'a> HasId for ActionResourceType_<'a> { } } #[derive(Debug)] -pub struct ActionStatus_<'a> { // entity +pub struct ActionStatus_<'a> { + // entity pub status: Label<'a>, pub assigned_action: ExecutedAction<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -619,10 +707,14 @@ impl<'a> ParseFromChunks<'a> for ActionStatus_<'a> { let (s, _) = tag("ACTION_STATUS(")(strs[0])?; let (s, status) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, assigned_action) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - status, - assigned_action, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + status, + assigned_action, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ActionStatus_<'a> { @@ -632,7 +724,8 @@ impl<'a> HasId for ActionStatus_<'a> { } } #[derive(Debug)] -pub struct Address_<'a> { // entity +pub struct Address_<'a> { + // entity pub internal_location: Option>, pub street_number: Option>, pub street: Option>, @@ -660,7 +753,8 @@ impl<'a> ParseFromChunks<'a> for Address_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("ADDRESS(")(strs[0])?; - let (s, internal_location) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, internal_location) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, street_number) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, street) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, postal_box) = param_from_chunks::>>(false, s, &mut i, strs)?; @@ -670,22 +764,27 @@ impl<'a> ParseFromChunks<'a> for Address_<'a> { let (s, country) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, facsimile_number) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, telephone_number) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, electronic_mail_address) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, electronic_mail_address) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, telex_number) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - internal_location, - street_number, - street, - postal_box, - town, - region, - postal_code, - country, - facsimile_number, - telephone_number, - electronic_mail_address, - telex_number, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + internal_location, + street_number, + street, + postal_box, + town, + region, + postal_code, + country, + facsimile_number, + telephone_number, + electronic_mail_address, + telex_number, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Address_<'a> { @@ -705,7 +804,8 @@ impl<'a> HasId for Address_<'a> { } } #[derive(Debug)] -pub struct AdvancedBrepShapeRepresentation_<'a> { // entity +pub struct AdvancedBrepShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -726,12 +826,17 @@ impl<'a> ParseFromChunks<'a> for AdvancedBrepShapeRepresentation_<'a> { let (s, _) = tag("ADVANCED_BREP_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AdvancedBrepShapeRepresentation_<'a> { @@ -742,7 +847,8 @@ impl<'a> HasId for AdvancedBrepShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct AdvancedFace_<'a> { // entity +pub struct AdvancedFace_<'a> { + // entity pub name: Label<'a>, pub bounds: Vec>, pub face_geometry: Surface<'a>, @@ -766,12 +872,16 @@ impl<'a> ParseFromChunks<'a> for AdvancedFace_<'a> { let (s, bounds) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, face_geometry) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, same_sense) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - bounds, - face_geometry, - same_sense, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + bounds, + face_geometry, + same_sense, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AdvancedFace_<'a> { @@ -783,7 +893,8 @@ impl<'a> HasId for AdvancedFace_<'a> { } } #[derive(Debug)] -pub enum AheadOrBehind<'a> { // enum +pub enum AheadOrBehind<'a> { + // enum Ahead, Exact, Behind, @@ -803,11 +914,13 @@ impl<'a> Parse<'a> for AheadOrBehind<'a> { } } impl<'a> HasId for AheadOrBehind<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct AlternateProductRelationship_<'a> { // entity +pub struct AlternateProductRelationship_<'a> { + // entity pub name: Label<'a>, pub definition: Option>, pub alternate: Product<'a>, @@ -833,13 +946,17 @@ impl<'a> ParseFromChunks<'a> for AlternateProductRelationship_<'a> { let (s, alternate) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, base) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, basis) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - definition, - alternate, - base, - basis, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + definition, + alternate, + base, + basis, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AlternateProductRelationship_<'a> { @@ -859,11 +976,13 @@ impl<'a> Parse<'a> for AmountOfSubstanceMeasure<'a> { } } impl<'a> HasId for AmountOfSubstanceMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct AmountOfSubstanceMeasureWithUnit_<'a> { // entity +pub struct AmountOfSubstanceMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -883,10 +1002,14 @@ impl<'a> ParseFromChunks<'a> for AmountOfSubstanceMeasureWithUnit_<'a> { let (s, _) = tag("AMOUNT_OF_SUBSTANCE_MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AmountOfSubstanceMeasureWithUnit_<'a> { @@ -896,7 +1019,8 @@ impl<'a> HasId for AmountOfSubstanceMeasureWithUnit_<'a> { } } #[derive(Debug)] -pub struct AmountOfSubstanceUnit_<'a> { // entity +pub struct AmountOfSubstanceUnit_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -914,9 +1038,13 @@ impl<'a> ParseFromChunks<'a> for AmountOfSubstanceUnit_<'a> { let mut i = 0; let (s, _) = tag("AMOUNT_OF_SUBSTANCE_UNIT(")(strs[0])?; let (s, dimensions) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AmountOfSubstanceUnit_<'a> { @@ -925,7 +1053,8 @@ impl<'a> HasId for AmountOfSubstanceUnit_<'a> { } } #[derive(Debug)] -pub struct AndExpression_<'a> { // entity +pub struct AndExpression_<'a> { + // entity pub operands: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -943,9 +1072,13 @@ impl<'a> ParseFromChunks<'a> for AndExpression_<'a> { let mut i = 0; let (s, _) = tag("AND_EXPRESSION(")(strs[0])?; let (s, operands) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AndExpression_<'a> { @@ -954,7 +1087,8 @@ impl<'a> HasId for AndExpression_<'a> { } } #[derive(Debug)] -pub enum AngleRelator<'a> { // enum +pub enum AngleRelator<'a> { + // enum Equal, Large, Small, @@ -974,11 +1108,13 @@ impl<'a> Parse<'a> for AngleRelator<'a> { } } impl<'a> HasId for AngleRelator<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct AngularDimension_<'a> { // entity +pub struct AngularDimension_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -997,11 +1133,16 @@ impl<'a> ParseFromChunks<'a> for AngularDimension_<'a> { let mut i = 0; let (s, _) = tag("ANGULAR_DIMENSION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AngularDimension_<'a> { @@ -1011,7 +1152,8 @@ impl<'a> HasId for AngularDimension_<'a> { } } #[derive(Debug)] -pub struct AngularLocation_<'a> { // entity +pub struct AngularLocation_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_shape_aspect: ShapeAspect<'a>, @@ -1034,16 +1176,22 @@ impl<'a> ParseFromChunks<'a> for AngularLocation_<'a> { let (s, _) = tag("ANGULAR_LOCATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, relating_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, angle_selection) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_shape_aspect, - related_shape_aspect, - angle_selection, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + relating_shape_aspect, + related_shape_aspect, + angle_selection, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AngularLocation_<'a> { @@ -1056,7 +1204,8 @@ impl<'a> HasId for AngularLocation_<'a> { } } #[derive(Debug)] -pub struct AngularSize_<'a> { // entity +pub struct AngularSize_<'a> { + // entity pub applies_to: ShapeAspect<'a>, pub name: Label<'a>, pub angle_selection: AngleRelator<'a>, @@ -1078,11 +1227,15 @@ impl<'a> ParseFromChunks<'a> for AngularSize_<'a> { let (s, applies_to) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, angle_selection) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to, - name, - angle_selection, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + applies_to, + name, + angle_selection, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AngularSize_<'a> { @@ -1093,7 +1246,8 @@ impl<'a> HasId for AngularSize_<'a> { } } #[derive(Debug)] -pub struct AngularityTolerance_<'a> { // entity +pub struct AngularityTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -1117,15 +1271,21 @@ impl<'a> ParseFromChunks<'a> for AngularityTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, datum_system) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - datum_system, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, datum_system) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + datum_system, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AngularityTolerance_<'a> { @@ -1138,7 +1298,8 @@ impl<'a> HasId for AngularityTolerance_<'a> { } } #[derive(Debug)] -pub struct AnnotationCurveOccurrence_<'a> { // entity +pub struct AnnotationCurveOccurrence_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -1158,13 +1319,18 @@ impl<'a> ParseFromChunks<'a> for AnnotationCurveOccurrence_<'a> { let mut i = 0; let (s, _) = tag("ANNOTATION_CURVE_OCCURRENCE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + styles, + item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AnnotationCurveOccurrence_<'a> { @@ -1175,7 +1341,8 @@ impl<'a> HasId for AnnotationCurveOccurrence_<'a> { } } #[derive(Debug)] -pub struct AnnotationFillArea_<'a> { // entity +pub struct AnnotationFillArea_<'a> { + // entity pub name: Label<'a>, pub boundaries: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -1195,10 +1362,14 @@ impl<'a> ParseFromChunks<'a> for AnnotationFillArea_<'a> { let (s, _) = tag("ANNOTATION_FILL_AREA(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, boundaries) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - boundaries, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + boundaries, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AnnotationFillArea_<'a> { @@ -1208,7 +1379,8 @@ impl<'a> HasId for AnnotationFillArea_<'a> { } } #[derive(Debug)] -pub struct AnnotationFillAreaOccurrence_<'a> { // entity +pub struct AnnotationFillAreaOccurrence_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -1229,15 +1401,20 @@ impl<'a> ParseFromChunks<'a> for AnnotationFillAreaOccurrence_<'a> { let mut i = 0; let (s, _) = tag("ANNOTATION_FILL_AREA_OCCURRENCE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, fill_style_target) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - fill_style_target, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + styles, + item, + fill_style_target, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AnnotationFillAreaOccurrence_<'a> { @@ -1249,7 +1426,8 @@ impl<'a> HasId for AnnotationFillAreaOccurrence_<'a> { } } #[derive(Debug)] -pub struct AnnotationOccurrence_<'a> { // entity +pub struct AnnotationOccurrence_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -1269,13 +1447,18 @@ impl<'a> ParseFromChunks<'a> for AnnotationOccurrence_<'a> { let mut i = 0; let (s, _) = tag("ANNOTATION_OCCURRENCE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + styles, + item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AnnotationOccurrence_<'a> { @@ -1286,7 +1469,8 @@ impl<'a> HasId for AnnotationOccurrence_<'a> { } } #[derive(Debug)] -pub struct AnnotationOccurrenceAssociativity_<'a> { // entity +pub struct AnnotationOccurrenceAssociativity_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub relating_annotation_occurrence: AnnotationOccurrence<'a>, @@ -1308,14 +1492,20 @@ impl<'a> ParseFromChunks<'a> for AnnotationOccurrenceAssociativity_<'a> { let (s, _) = tag("ANNOTATION_OCCURRENCE_ASSOCIATIVITY(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, relating_annotation_occurrence) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_annotation_occurrence) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_annotation_occurrence, - related_annotation_occurrence, - _marker: std::marker::PhantomData})) + let (s, relating_annotation_occurrence) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_annotation_occurrence) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_annotation_occurrence, + related_annotation_occurrence, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AnnotationOccurrenceAssociativity_<'a> { @@ -1327,7 +1517,8 @@ impl<'a> HasId for AnnotationOccurrenceAssociativity_<'a> { } } #[derive(Debug)] -pub struct AnnotationOccurrenceRelationship_<'a> { // entity +pub struct AnnotationOccurrenceRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub relating_annotation_occurrence: AnnotationOccurrence<'a>, @@ -1349,14 +1540,20 @@ impl<'a> ParseFromChunks<'a> for AnnotationOccurrenceRelationship_<'a> { let (s, _) = tag("ANNOTATION_OCCURRENCE_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, relating_annotation_occurrence) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_annotation_occurrence) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_annotation_occurrence, - related_annotation_occurrence, - _marker: std::marker::PhantomData})) + let (s, relating_annotation_occurrence) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_annotation_occurrence) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_annotation_occurrence, + related_annotation_occurrence, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AnnotationOccurrenceRelationship_<'a> { @@ -1369,7 +1566,8 @@ impl<'a> HasId for AnnotationOccurrenceRelationship_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct AnnotationPlane_<'a> { // entity +pub struct AnnotationPlane_<'a> { + // entity pub representation_item__name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -1390,16 +1588,23 @@ impl<'a> ParseFromChunks<'a> for AnnotationPlane_<'a> { let mut i = 0; let (s, _) = tag("ANNOTATION_PLANE(")(strs[0])?; #[allow(non_snake_case)] - let (s, representation_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, representation_item__name) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, elements) = param_from_chunks::>>>(true, s, &mut i, strs)?; - Ok((s, Self { - representation_item__name, - styles, - item, - elements, - _marker: std::marker::PhantomData})) + let (s, elements) = + param_from_chunks::>>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + representation_item__name, + styles, + item, + elements, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AnnotationPlane_<'a> { @@ -1415,7 +1620,8 @@ pub struct AnnotationPlaneElement_<'a>(std::marker::PhantomData<&'a ()>); // amb pub type AnnotationPlaneElement<'a> = Id>; #[derive(Debug)] -pub struct AnnotationSubfigureOccurrence_<'a> { // entity +pub struct AnnotationSubfigureOccurrence_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -1435,13 +1641,18 @@ impl<'a> ParseFromChunks<'a> for AnnotationSubfigureOccurrence_<'a> { let mut i = 0; let (s, _) = tag("ANNOTATION_SUBFIGURE_OCCURRENCE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + styles, + item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AnnotationSubfigureOccurrence_<'a> { @@ -1452,7 +1663,8 @@ impl<'a> HasId for AnnotationSubfigureOccurrence_<'a> { } } #[derive(Debug)] -pub struct AnnotationSymbol_<'a> { // entity +pub struct AnnotationSymbol_<'a> { + // entity pub name: Label<'a>, pub mapping_source: RepresentationMap<'a>, pub mapping_target: RepresentationItem<'a>, @@ -1472,13 +1684,19 @@ impl<'a> ParseFromChunks<'a> for AnnotationSymbol_<'a> { let mut i = 0; let (s, _) = tag("ANNOTATION_SYMBOL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_source) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_target) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - mapping_source, - mapping_target, - _marker: std::marker::PhantomData})) + let (s, mapping_source) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, mapping_target) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + mapping_source, + mapping_target, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AnnotationSymbol_<'a> { @@ -1489,7 +1707,8 @@ impl<'a> HasId for AnnotationSymbol_<'a> { } } #[derive(Debug)] -pub struct AnnotationSymbolOccurrence_<'a> { // entity +pub struct AnnotationSymbolOccurrence_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -1509,13 +1728,18 @@ impl<'a> ParseFromChunks<'a> for AnnotationSymbolOccurrence_<'a> { let mut i = 0; let (s, _) = tag("ANNOTATION_SYMBOL_OCCURRENCE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + styles, + item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AnnotationSymbolOccurrence_<'a> { @@ -1530,7 +1754,8 @@ pub struct AnnotationSymbolOccurrenceItem_<'a>(std::marker::PhantomData<&'a ()>) pub type AnnotationSymbolOccurrenceItem<'a> = Id>; #[derive(Debug)] -pub struct AnnotationText_<'a> { // entity +pub struct AnnotationText_<'a> { + // entity pub name: Label<'a>, pub mapping_source: RepresentationMap<'a>, pub mapping_target: RepresentationItem<'a>, @@ -1550,13 +1775,19 @@ impl<'a> ParseFromChunks<'a> for AnnotationText_<'a> { let mut i = 0; let (s, _) = tag("ANNOTATION_TEXT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_source) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_target) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - mapping_source, - mapping_target, - _marker: std::marker::PhantomData})) + let (s, mapping_source) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, mapping_target) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + mapping_source, + mapping_target, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AnnotationText_<'a> { @@ -1567,7 +1798,8 @@ impl<'a> HasId for AnnotationText_<'a> { } } #[derive(Debug)] -pub struct AnnotationTextCharacter_<'a> { // entity +pub struct AnnotationTextCharacter_<'a> { + // entity pub name: Label<'a>, pub mapping_source: RepresentationMap<'a>, pub mapping_target: RepresentationItem<'a>, @@ -1588,15 +1820,21 @@ impl<'a> ParseFromChunks<'a> for AnnotationTextCharacter_<'a> { let mut i = 0; let (s, _) = tag("ANNOTATION_TEXT_CHARACTER(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_source) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_target) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, mapping_source) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, mapping_target) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, alignment) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - mapping_source, - mapping_target, - alignment, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + mapping_source, + mapping_target, + alignment, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AnnotationTextCharacter_<'a> { @@ -1608,7 +1846,8 @@ impl<'a> HasId for AnnotationTextCharacter_<'a> { } } #[derive(Debug)] -pub struct AnnotationTextOccurrence_<'a> { // entity +pub struct AnnotationTextOccurrence_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -1628,13 +1867,18 @@ impl<'a> ParseFromChunks<'a> for AnnotationTextOccurrence_<'a> { let mut i = 0; let (s, _) = tag("ANNOTATION_TEXT_OCCURRENCE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + styles, + item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AnnotationTextOccurrence_<'a> { @@ -1649,7 +1893,8 @@ pub struct AnnotationTextOccurrenceItem_<'a>(std::marker::PhantomData<&'a ()>); pub type AnnotationTextOccurrenceItem<'a> = Id>; #[derive(Debug)] -pub struct Apex_<'a> { // entity +pub struct Apex_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -1671,14 +1916,19 @@ impl<'a> ParseFromChunks<'a> for Apex_<'a> { let (s, _) = tag("APEX(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Apex_<'a> { @@ -1690,7 +1940,8 @@ impl<'a> HasId for Apex_<'a> { } } #[derive(Debug)] -pub struct ApplicationContext_<'a> { // entity +pub struct ApplicationContext_<'a> { + // entity pub application: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -1708,9 +1959,13 @@ impl<'a> ParseFromChunks<'a> for ApplicationContext_<'a> { let mut i = 0; let (s, _) = tag("APPLICATION_CONTEXT(")(strs[0])?; let (s, application) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - application, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + application, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ApplicationContext_<'a> { @@ -1719,7 +1974,8 @@ impl<'a> HasId for ApplicationContext_<'a> { } } #[derive(Debug)] -pub struct ApplicationContextElement_<'a> { // entity +pub struct ApplicationContextElement_<'a> { + // entity pub name: Label<'a>, pub frame_of_reference: ApplicationContext<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -1738,11 +1994,16 @@ impl<'a> ParseFromChunks<'a> for ApplicationContextElement_<'a> { let mut i = 0; let (s, _) = tag("APPLICATION_CONTEXT_ELEMENT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, frame_of_reference) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - frame_of_reference, - _marker: std::marker::PhantomData})) + let (s, frame_of_reference) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + frame_of_reference, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ApplicationContextElement_<'a> { @@ -1752,7 +2013,8 @@ impl<'a> HasId for ApplicationContextElement_<'a> { } } #[derive(Debug)] -pub struct ApplicationContextRelationship_<'a> { // entity +pub struct ApplicationContextRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_context: ApplicationContext<'a>, @@ -1774,14 +2036,20 @@ impl<'a> ParseFromChunks<'a> for ApplicationContextRelationship_<'a> { let (s, _) = tag("APPLICATION_CONTEXT_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_context) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_context) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_context, - related_context, - _marker: std::marker::PhantomData})) + let (s, relating_context) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_context) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_context, + related_context, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ApplicationContextRelationship_<'a> { @@ -1793,7 +2061,8 @@ impl<'a> HasId for ApplicationContextRelationship_<'a> { } } #[derive(Debug)] -pub struct ApplicationProtocolDefinition_<'a> { // entity +pub struct ApplicationProtocolDefinition_<'a> { + // entity pub status: Label<'a>, pub application_interpreted_model_schema_name: Label<'a>, pub application_protocol_year: YearNumber<'a>, @@ -1814,27 +2083,35 @@ impl<'a> ParseFromChunks<'a> for ApplicationProtocolDefinition_<'a> { let mut i = 0; let (s, _) = tag("APPLICATION_PROTOCOL_DEFINITION(")(strs[0])?; let (s, status) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, application_interpreted_model_schema_name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, application_protocol_year) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, application_interpreted_model_schema_name) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, application_protocol_year) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, application) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - status, - application_interpreted_model_schema_name, - application_protocol_year, - application, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + status, + application_interpreted_model_schema_name, + application_protocol_year, + application, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ApplicationProtocolDefinition_<'a> { fn append_ids(&self, _v: &mut Vec) { self.status.append_ids(_v); - self.application_interpreted_model_schema_name.append_ids(_v); + self.application_interpreted_model_schema_name + .append_ids(_v); self.application_protocol_year.append_ids(_v); self.application.append_ids(_v); } } #[derive(Debug)] -pub struct AppliedActionAssignment_<'a> { // entity +pub struct AppliedActionAssignment_<'a> { + // entity pub assigned_action: Action<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -1854,10 +2131,14 @@ impl<'a> ParseFromChunks<'a> for AppliedActionAssignment_<'a> { let (s, _) = tag("APPLIED_ACTION_ASSIGNMENT(")(strs[0])?; let (s, assigned_action) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_action, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_action, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedActionAssignment_<'a> { @@ -1867,7 +2148,8 @@ impl<'a> HasId for AppliedActionAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedActionRequestAssignment_<'a> { // entity +pub struct AppliedActionRequestAssignment_<'a> { + // entity pub assigned_action_request: VersionedActionRequest<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -1885,12 +2167,17 @@ impl<'a> ParseFromChunks<'a> for AppliedActionRequestAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPLIED_ACTION_REQUEST_ASSIGNMENT(")(strs[0])?; - let (s, assigned_action_request) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_action_request) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_action_request, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_action_request, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedActionRequestAssignment_<'a> { @@ -1900,7 +2187,8 @@ impl<'a> HasId for AppliedActionRequestAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedApprovalAssignment_<'a> { // entity +pub struct AppliedApprovalAssignment_<'a> { + // entity pub assigned_approval: Approval<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -1920,10 +2208,14 @@ impl<'a> ParseFromChunks<'a> for AppliedApprovalAssignment_<'a> { let (s, _) = tag("APPLIED_APPROVAL_ASSIGNMENT(")(strs[0])?; let (s, assigned_approval) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_approval, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_approval, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedApprovalAssignment_<'a> { @@ -1933,7 +2225,8 @@ impl<'a> HasId for AppliedApprovalAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedArea_<'a> { // entity +pub struct AppliedArea_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -1955,14 +2248,19 @@ impl<'a> ParseFromChunks<'a> for AppliedArea_<'a> { let (s, _) = tag("APPLIED_AREA(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedArea_<'a> { @@ -1974,7 +2272,8 @@ impl<'a> HasId for AppliedArea_<'a> { } } #[derive(Debug)] -pub struct AppliedCertificationAssignment_<'a> { // entity +pub struct AppliedCertificationAssignment_<'a> { + // entity pub assigned_certification: Certification<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -1992,12 +2291,17 @@ impl<'a> ParseFromChunks<'a> for AppliedCertificationAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPLIED_CERTIFICATION_ASSIGNMENT(")(strs[0])?; - let (s, assigned_certification) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_certification) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_certification, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_certification, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedCertificationAssignment_<'a> { @@ -2007,7 +2311,8 @@ impl<'a> HasId for AppliedCertificationAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedClassificationAssignment_<'a> { // entity +pub struct AppliedClassificationAssignment_<'a> { + // entity pub assigned_class: Group<'a>, pub role: ClassificationRole<'a>, pub items: Vec>, @@ -2029,11 +2334,15 @@ impl<'a> ParseFromChunks<'a> for AppliedClassificationAssignment_<'a> { let (s, assigned_class) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_class, - role, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_class, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedClassificationAssignment_<'a> { @@ -2044,7 +2353,8 @@ impl<'a> HasId for AppliedClassificationAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedContractAssignment_<'a> { // entity +pub struct AppliedContractAssignment_<'a> { + // entity pub assigned_contract: Contract<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -2064,10 +2374,14 @@ impl<'a> ParseFromChunks<'a> for AppliedContractAssignment_<'a> { let (s, _) = tag("APPLIED_CONTRACT_ASSIGNMENT(")(strs[0])?; let (s, assigned_contract) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_contract, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_contract, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedContractAssignment_<'a> { @@ -2077,7 +2391,8 @@ impl<'a> HasId for AppliedContractAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedDateAndTimeAssignment_<'a> { // entity +pub struct AppliedDateAndTimeAssignment_<'a> { + // entity pub assigned_date_and_time: DateAndTime<'a>, pub role: DateTimeRole<'a>, pub items: Vec>, @@ -2096,14 +2411,19 @@ impl<'a> ParseFromChunks<'a> for AppliedDateAndTimeAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPLIED_DATE_AND_TIME_ASSIGNMENT(")(strs[0])?; - let (s, assigned_date_and_time) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_date_and_time) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_date_and_time, - role, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_date_and_time, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedDateAndTimeAssignment_<'a> { @@ -2114,7 +2434,8 @@ impl<'a> HasId for AppliedDateAndTimeAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedDateAssignment_<'a> { // entity +pub struct AppliedDateAssignment_<'a> { + // entity pub assigned_date: Date<'a>, pub role: DateRole<'a>, pub items: Vec>, @@ -2136,11 +2457,15 @@ impl<'a> ParseFromChunks<'a> for AppliedDateAssignment_<'a> { let (s, assigned_date) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_date, - role, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_date, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedDateAssignment_<'a> { @@ -2151,7 +2476,8 @@ impl<'a> HasId for AppliedDateAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedDocumentReference_<'a> { // entity +pub struct AppliedDocumentReference_<'a> { + // entity pub assigned_document: Document<'a>, pub source: Label<'a>, pub items: Vec>, @@ -2172,12 +2498,17 @@ impl<'a> ParseFromChunks<'a> for AppliedDocumentReference_<'a> { let (s, _) = tag("APPLIED_DOCUMENT_REFERENCE(")(strs[0])?; let (s, assigned_document) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_document, - source, - items, - _marker: std::marker::PhantomData})) + let (s, items) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_document, + source, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedDocumentReference_<'a> { @@ -2188,13 +2519,15 @@ impl<'a> HasId for AppliedDocumentReference_<'a> { } } #[derive(Debug)] -pub struct AppliedDocumentUsageConstraintAssignment_<'a> { // entity +pub struct AppliedDocumentUsageConstraintAssignment_<'a> { + // entity pub assigned_document_usage: DocumentUsageConstraint<'a>, pub role: DocumentUsageRole<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, } -pub type AppliedDocumentUsageConstraintAssignment<'a> = Id>; +pub type AppliedDocumentUsageConstraintAssignment<'a> = + Id>; impl<'a> FromEntity<'a> for AppliedDocumentUsageConstraintAssignment_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -2207,14 +2540,20 @@ impl<'a> ParseFromChunks<'a> for AppliedDocumentUsageConstraintAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPLIED_DOCUMENT_USAGE_CONSTRAINT_ASSIGNMENT(")(strs[0])?; - let (s, assigned_document_usage) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_document_usage) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_document_usage, - role, - items, - _marker: std::marker::PhantomData})) + let (s, items) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_document_usage, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedDocumentUsageConstraintAssignment_<'a> { @@ -2225,7 +2564,8 @@ impl<'a> HasId for AppliedDocumentUsageConstraintAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedEffectivityAssignment_<'a> { // entity +pub struct AppliedEffectivityAssignment_<'a> { + // entity pub assigned_effectivity: Effectivity<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -2243,12 +2583,17 @@ impl<'a> ParseFromChunks<'a> for AppliedEffectivityAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPLIED_EFFECTIVITY_ASSIGNMENT(")(strs[0])?; - let (s, assigned_effectivity) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_effectivity) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_effectivity, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_effectivity, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedEffectivityAssignment_<'a> { @@ -2258,7 +2603,8 @@ impl<'a> HasId for AppliedEffectivityAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedEventOccurrenceAssignment_<'a> { // entity +pub struct AppliedEventOccurrenceAssignment_<'a> { + // entity pub assigned_event_occurrence: EventOccurrence<'a>, pub role: EventOccurrenceRole<'a>, pub items: Vec>, @@ -2277,14 +2623,19 @@ impl<'a> ParseFromChunks<'a> for AppliedEventOccurrenceAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPLIED_EVENT_OCCURRENCE_ASSIGNMENT(")(strs[0])?; - let (s, assigned_event_occurrence) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_event_occurrence) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_event_occurrence, - role, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_event_occurrence, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedEventOccurrenceAssignment_<'a> { @@ -2295,14 +2646,16 @@ impl<'a> HasId for AppliedEventOccurrenceAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedExternalIdentificationAssignment_<'a> { // entity +pub struct AppliedExternalIdentificationAssignment_<'a> { + // entity pub assigned_id: Identifier<'a>, pub role: IdentificationRole<'a>, pub source: ExternalSource<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, } -pub type AppliedExternalIdentificationAssignment<'a> = Id>; +pub type AppliedExternalIdentificationAssignment<'a> = + Id>; impl<'a> FromEntity<'a> for AppliedExternalIdentificationAssignment_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -2318,13 +2671,18 @@ impl<'a> ParseFromChunks<'a> for AppliedExternalIdentificationAssignment_<'a> { let (s, assigned_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_id, - role, - source, - items, - _marker: std::marker::PhantomData})) + let (s, items) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_id, + role, + source, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedExternalIdentificationAssignment_<'a> { @@ -2336,7 +2694,8 @@ impl<'a> HasId for AppliedExternalIdentificationAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedGroupAssignment_<'a> { // entity +pub struct AppliedGroupAssignment_<'a> { + // entity pub assigned_group: Group<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -2356,10 +2715,14 @@ impl<'a> ParseFromChunks<'a> for AppliedGroupAssignment_<'a> { let (s, _) = tag("APPLIED_GROUP_ASSIGNMENT(")(strs[0])?; let (s, assigned_group) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_group, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_group, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedGroupAssignment_<'a> { @@ -2369,7 +2732,8 @@ impl<'a> HasId for AppliedGroupAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedIdentificationAssignment_<'a> { // entity +pub struct AppliedIdentificationAssignment_<'a> { + // entity pub assigned_id: Identifier<'a>, pub role: IdentificationRole<'a>, pub items: Vec>, @@ -2391,11 +2755,15 @@ impl<'a> ParseFromChunks<'a> for AppliedIdentificationAssignment_<'a> { let (s, assigned_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_id, - role, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_id, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedIdentificationAssignment_<'a> { @@ -2406,7 +2774,8 @@ impl<'a> HasId for AppliedIdentificationAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedIneffectivityAssignment_<'a> { // entity +pub struct AppliedIneffectivityAssignment_<'a> { + // entity pub assigned_effectivity: Effectivity<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -2424,12 +2793,17 @@ impl<'a> ParseFromChunks<'a> for AppliedIneffectivityAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPLIED_INEFFECTIVITY_ASSIGNMENT(")(strs[0])?; - let (s, assigned_effectivity) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_effectivity) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_effectivity, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_effectivity, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedIneffectivityAssignment_<'a> { @@ -2439,7 +2813,8 @@ impl<'a> HasId for AppliedIneffectivityAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedNameAssignment_<'a> { // entity +pub struct AppliedNameAssignment_<'a> { + // entity pub assigned_name: Label<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -2459,10 +2834,14 @@ impl<'a> ParseFromChunks<'a> for AppliedNameAssignment_<'a> { let (s, _) = tag("APPLIED_NAME_ASSIGNMENT(")(strs[0])?; let (s, assigned_name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_name, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_name, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedNameAssignment_<'a> { @@ -2472,7 +2851,8 @@ impl<'a> HasId for AppliedNameAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedOrganizationAssignment_<'a> { // entity +pub struct AppliedOrganizationAssignment_<'a> { + // entity pub assigned_organization: Organization<'a>, pub role: OrganizationRole<'a>, pub items: Vec>, @@ -2491,14 +2871,19 @@ impl<'a> ParseFromChunks<'a> for AppliedOrganizationAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPLIED_ORGANIZATION_ASSIGNMENT(")(strs[0])?; - let (s, assigned_organization) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_organization) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_organization, - role, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_organization, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedOrganizationAssignment_<'a> { @@ -2509,13 +2894,15 @@ impl<'a> HasId for AppliedOrganizationAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedOrganizationalProjectAssignment_<'a> { // entity +pub struct AppliedOrganizationalProjectAssignment_<'a> { + // entity pub assigned_organizational_project: OrganizationalProject<'a>, pub role: OrganizationalProjectRole<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, } -pub type AppliedOrganizationalProjectAssignment<'a> = Id>; +pub type AppliedOrganizationalProjectAssignment<'a> = + Id>; impl<'a> FromEntity<'a> for AppliedOrganizationalProjectAssignment_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -2528,14 +2915,20 @@ impl<'a> ParseFromChunks<'a> for AppliedOrganizationalProjectAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPLIED_ORGANIZATIONAL_PROJECT_ASSIGNMENT(")(strs[0])?; - let (s, assigned_organizational_project) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_organizational_project) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_organizational_project, - role, - items, - _marker: std::marker::PhantomData})) + let (s, items) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_organizational_project, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedOrganizationalProjectAssignment_<'a> { @@ -2546,13 +2939,15 @@ impl<'a> HasId for AppliedOrganizationalProjectAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedPersonAndOrganizationAssignment_<'a> { // entity +pub struct AppliedPersonAndOrganizationAssignment_<'a> { + // entity pub assigned_person_and_organization: PersonAndOrganization<'a>, pub role: PersonAndOrganizationRole<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, } -pub type AppliedPersonAndOrganizationAssignment<'a> = Id>; +pub type AppliedPersonAndOrganizationAssignment<'a> = + Id>; impl<'a> FromEntity<'a> for AppliedPersonAndOrganizationAssignment_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -2565,14 +2960,20 @@ impl<'a> ParseFromChunks<'a> for AppliedPersonAndOrganizationAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT(")(strs[0])?; - let (s, assigned_person_and_organization) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_person_and_organization) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_person_and_organization, - role, - items, - _marker: std::marker::PhantomData})) + let (s, items) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_person_and_organization, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedPersonAndOrganizationAssignment_<'a> { @@ -2583,7 +2984,8 @@ impl<'a> HasId for AppliedPersonAndOrganizationAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedPresentedItem_<'a> { // entity +pub struct AppliedPresentedItem_<'a> { + // entity pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -2601,9 +3003,13 @@ impl<'a> ParseFromChunks<'a> for AppliedPresentedItem_<'a> { let mut i = 0; let (s, _) = tag("APPLIED_PRESENTED_ITEM(")(strs[0])?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedPresentedItem_<'a> { @@ -2612,12 +3018,14 @@ impl<'a> HasId for AppliedPresentedItem_<'a> { } } #[derive(Debug)] -pub struct AppliedSecurityClassificationAssignment_<'a> { // entity +pub struct AppliedSecurityClassificationAssignment_<'a> { + // entity pub assigned_security_classification: SecurityClassification<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, } -pub type AppliedSecurityClassificationAssignment<'a> = Id>; +pub type AppliedSecurityClassificationAssignment<'a> = + Id>; impl<'a> FromEntity<'a> for AppliedSecurityClassificationAssignment_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -2630,12 +3038,18 @@ impl<'a> ParseFromChunks<'a> for AppliedSecurityClassificationAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPLIED_SECURITY_CLASSIFICATION_ASSIGNMENT(")(strs[0])?; - let (s, assigned_security_classification) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_security_classification, - items, - _marker: std::marker::PhantomData})) + let (s, assigned_security_classification) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, items) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_security_classification, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedSecurityClassificationAssignment_<'a> { @@ -2645,7 +3059,8 @@ impl<'a> HasId for AppliedSecurityClassificationAssignment_<'a> { } } #[derive(Debug)] -pub struct AppliedTimeIntervalAssignment_<'a> { // entity +pub struct AppliedTimeIntervalAssignment_<'a> { + // entity pub assigned_time_interval: TimeInterval<'a>, pub role: TimeIntervalRole<'a>, pub items: Vec>, @@ -2664,14 +3079,19 @@ impl<'a> ParseFromChunks<'a> for AppliedTimeIntervalAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPLIED_TIME_INTERVAL_ASSIGNMENT(")(strs[0])?; - let (s, assigned_time_interval) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_time_interval) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_time_interval, - role, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_time_interval, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AppliedTimeIntervalAssignment_<'a> { @@ -2682,7 +3102,8 @@ impl<'a> HasId for AppliedTimeIntervalAssignment_<'a> { } } #[derive(Debug)] -pub struct Approval_<'a> { // entity +pub struct Approval_<'a> { + // entity pub status: ApprovalStatus<'a>, pub level: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -2702,10 +3123,14 @@ impl<'a> ParseFromChunks<'a> for Approval_<'a> { let (s, _) = tag("APPROVAL(")(strs[0])?; let (s, status) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, level) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - status, - level, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + status, + level, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Approval_<'a> { @@ -2715,7 +3140,8 @@ impl<'a> HasId for Approval_<'a> { } } #[derive(Debug)] -pub struct ApprovalAssignment_<'a> { // entity +pub struct ApprovalAssignment_<'a> { + // entity pub assigned_approval: Approval<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -2733,9 +3159,13 @@ impl<'a> ParseFromChunks<'a> for ApprovalAssignment_<'a> { let mut i = 0; let (s, _) = tag("APPROVAL_ASSIGNMENT(")(strs[0])?; let (s, assigned_approval) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_approval, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_approval, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ApprovalAssignment_<'a> { @@ -2744,7 +3174,8 @@ impl<'a> HasId for ApprovalAssignment_<'a> { } } #[derive(Debug)] -pub struct ApprovalDateTime_<'a> { // entity +pub struct ApprovalDateTime_<'a> { + // entity pub date_time: DateTimeSelect<'a>, pub dated_approval: Approval<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -2764,10 +3195,14 @@ impl<'a> ParseFromChunks<'a> for ApprovalDateTime_<'a> { let (s, _) = tag("APPROVAL_DATE_TIME(")(strs[0])?; let (s, date_time) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, dated_approval) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - date_time, - dated_approval, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + date_time, + dated_approval, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ApprovalDateTime_<'a> { @@ -2781,7 +3216,8 @@ pub struct ApprovalItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous sel pub type ApprovalItem<'a> = Id>; #[derive(Debug)] -pub struct ApprovalPersonOrganization_<'a> { // entity +pub struct ApprovalPersonOrganization_<'a> { + // entity pub person_organization: PersonOrganizationSelect<'a>, pub authorized_approval: Approval<'a>, pub role: ApprovalRole<'a>, @@ -2800,14 +3236,19 @@ impl<'a> ParseFromChunks<'a> for ApprovalPersonOrganization_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPROVAL_PERSON_ORGANIZATION(")(strs[0])?; - let (s, person_organization) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, person_organization) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, authorized_approval) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - person_organization, - authorized_approval, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + person_organization, + authorized_approval, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ApprovalPersonOrganization_<'a> { @@ -2818,7 +3259,8 @@ impl<'a> HasId for ApprovalPersonOrganization_<'a> { } } #[derive(Debug)] -pub struct ApprovalRelationship_<'a> { // entity +pub struct ApprovalRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_approval: Approval<'a>, @@ -2842,12 +3284,16 @@ impl<'a> ParseFromChunks<'a> for ApprovalRelationship_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, relating_approval) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, related_approval) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_approval, - related_approval, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + relating_approval, + related_approval, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ApprovalRelationship_<'a> { @@ -2859,7 +3305,8 @@ impl<'a> HasId for ApprovalRelationship_<'a> { } } #[derive(Debug)] -pub struct ApprovalRole_<'a> { // entity +pub struct ApprovalRole_<'a> { + // entity pub role: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -2877,9 +3324,13 @@ impl<'a> ParseFromChunks<'a> for ApprovalRole_<'a> { let mut i = 0; let (s, _) = tag("APPROVAL_ROLE(")(strs[0])?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ApprovalRole_<'a> { @@ -2888,7 +3339,8 @@ impl<'a> HasId for ApprovalRole_<'a> { } } #[derive(Debug)] -pub struct ApprovalStatus_<'a> { // entity +pub struct ApprovalStatus_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -2906,9 +3358,13 @@ impl<'a> ParseFromChunks<'a> for ApprovalStatus_<'a> { let mut i = 0; let (s, _) = tag("APPROVAL_STATUS(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ApprovalStatus_<'a> { @@ -2917,7 +3373,8 @@ impl<'a> HasId for ApprovalStatus_<'a> { } } #[derive(Debug)] -pub enum ApproximationMethod<'a> { // enum +pub enum ApproximationMethod<'a> { + // enum ChordalDeviation, ChordalLength, _Unused(std::marker::PhantomData<&'a ()>), @@ -2935,11 +3392,13 @@ impl<'a> Parse<'a> for ApproximationMethod<'a> { } } impl<'a> HasId for ApproximationMethod<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct ApproximationTolerance_<'a> { // entity +pub struct ApproximationTolerance_<'a> { + // entity pub tolerance: ToleranceSelect<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -2957,9 +3416,13 @@ impl<'a> ParseFromChunks<'a> for ApproximationTolerance_<'a> { let mut i = 0; let (s, _) = tag("APPROXIMATION_TOLERANCE(")(strs[0])?; let (s, tolerance) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - tolerance, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + tolerance, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ApproximationTolerance_<'a> { @@ -2968,9 +3431,10 @@ impl<'a> HasId for ApproximationTolerance_<'a> { } } #[derive(Debug)] -pub struct ApproximationToleranceDeviation_<'a> { // entity +pub struct ApproximationToleranceDeviation_<'a> { + // entity pub tessellation_type: ApproximationMethod<'a>, - pub tolerances: ArrayVec::, 2>, + pub tolerances: ArrayVec, 2>, pub definition_space: ProductOrPresentationSpace<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -2987,14 +3451,21 @@ impl<'a> ParseFromChunks<'a> for ApproximationToleranceDeviation_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPROXIMATION_TOLERANCE_DEVIATION(")(strs[0])?; - let (s, tessellation_type) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, tolerances) = param_from_chunks::, 2>>(false, s, &mut i, strs)?; - let (s, definition_space) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - tessellation_type, - tolerances, - definition_space, - _marker: std::marker::PhantomData})) + let (s, tessellation_type) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, tolerances) = + param_from_chunks::, 2>>(false, s, &mut i, strs)?; + let (s, definition_space) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + tessellation_type, + tolerances, + definition_space, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ApproximationToleranceDeviation_<'a> { @@ -3005,8 +3476,9 @@ impl<'a> HasId for ApproximationToleranceDeviation_<'a> { } } #[derive(Debug)] -pub struct ApproximationToleranceParameter_<'a> { // entity - pub tolerances: ArrayVec::, 2>, +pub struct ApproximationToleranceParameter_<'a> { + // entity + pub tolerances: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type ApproximationToleranceParameter<'a> = Id>; @@ -3022,10 +3494,15 @@ impl<'a> ParseFromChunks<'a> for ApproximationToleranceParameter_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("APPROXIMATION_TOLERANCE_PARAMETER(")(strs[0])?; - let (s, tolerances) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - tolerances, - _marker: std::marker::PhantomData})) + let (s, tolerances) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + tolerances, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ApproximationToleranceParameter_<'a> { @@ -3034,7 +3511,8 @@ impl<'a> HasId for ApproximationToleranceParameter_<'a> { } } #[derive(Debug)] -pub struct AreaInSet_<'a> { // entity +pub struct AreaInSet_<'a> { + // entity pub area: PresentationArea<'a>, pub in_set: PresentationSet<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -3054,10 +3532,14 @@ impl<'a> ParseFromChunks<'a> for AreaInSet_<'a> { let (s, _) = tag("AREA_IN_SET(")(strs[0])?; let (s, area) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, in_set) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - area, - in_set, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + area, + in_set, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AreaInSet_<'a> { @@ -3074,11 +3556,13 @@ impl<'a> Parse<'a> for AreaMeasure<'a> { } } impl<'a> HasId for AreaMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct AreaMeasureWithUnit_<'a> { // entity +pub struct AreaMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -3098,10 +3582,14 @@ impl<'a> ParseFromChunks<'a> for AreaMeasureWithUnit_<'a> { let (s, _) = tag("AREA_MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AreaMeasureWithUnit_<'a> { @@ -3115,7 +3603,8 @@ pub struct AreaOrView_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous selec pub type AreaOrView<'a> = Id>; #[derive(Debug)] -pub struct AreaUnit_<'a> { // entity +pub struct AreaUnit_<'a> { + // entity pub elements: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -3132,10 +3621,15 @@ impl<'a> ParseFromChunks<'a> for AreaUnit_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("AREA_UNIT(")(strs[0])?; - let (s, elements) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - elements, - _marker: std::marker::PhantomData})) + let (s, elements) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + elements, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AreaUnit_<'a> { @@ -3144,7 +3638,8 @@ impl<'a> HasId for AreaUnit_<'a> { } } #[derive(Debug)] -pub struct AsinFunction_<'a> { // entity +pub struct AsinFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -3162,9 +3657,13 @@ impl<'a> ParseFromChunks<'a> for AsinFunction_<'a> { let mut i = 0; let (s, _) = tag("ASIN_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AsinFunction_<'a> { @@ -3173,7 +3672,8 @@ impl<'a> HasId for AsinFunction_<'a> { } } #[derive(Debug)] -pub struct AssemblyComponentUsage_<'a> { // entity +pub struct AssemblyComponentUsage_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -3198,17 +3698,24 @@ impl<'a> ParseFromChunks<'a> for AssemblyComponentUsage_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, reference_designator) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - relating_product_definition, - related_product_definition, - reference_designator, - _marker: std::marker::PhantomData})) + let (s, relating_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, reference_designator) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + name, + description, + relating_product_definition, + related_product_definition, + reference_designator, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AssemblyComponentUsage_<'a> { @@ -3222,7 +3729,8 @@ impl<'a> HasId for AssemblyComponentUsage_<'a> { } } #[derive(Debug)] -pub struct AssemblyComponentUsageSubstitute_<'a> { // entity +pub struct AssemblyComponentUsageSubstitute_<'a> { + // entity pub name: Label<'a>, pub definition: Option>, pub base: AssemblyComponentUsage<'a>, @@ -3245,13 +3753,18 @@ impl<'a> ParseFromChunks<'a> for AssemblyComponentUsageSubstitute_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, definition) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, base) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, substitute) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - definition, - base, - substitute, - _marker: std::marker::PhantomData})) + let (s, substitute) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + definition, + base, + substitute, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AssemblyComponentUsageSubstitute_<'a> { @@ -3263,8 +3776,9 @@ impl<'a> HasId for AssemblyComponentUsageSubstitute_<'a> { } } #[derive(Debug)] -pub struct AtanFunction_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct AtanFunction_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type AtanFunction<'a> = Id>; @@ -3280,10 +3794,15 @@ impl<'a> ParseFromChunks<'a> for AtanFunction_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("ATAN_FUNCTION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AtanFunction_<'a> { @@ -3292,7 +3811,8 @@ impl<'a> HasId for AtanFunction_<'a> { } } #[derive(Debug)] -pub struct AttributeClassificationAssignment_<'a> { // entity +pub struct AttributeClassificationAssignment_<'a> { + // entity pub assigned_class: Group<'a>, pub attribute_name: Label<'a>, pub role: ClassificationRole<'a>, @@ -3314,11 +3834,15 @@ impl<'a> ParseFromChunks<'a> for AttributeClassificationAssignment_<'a> { let (s, assigned_class) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, attribute_name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_class, - attribute_name, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_class, + attribute_name, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AttributeClassificationAssignment_<'a> { @@ -3329,7 +3853,8 @@ impl<'a> HasId for AttributeClassificationAssignment_<'a> { } } #[derive(Debug)] -pub struct AttributeLanguageAssignment_<'a> { // entity +pub struct AttributeLanguageAssignment_<'a> { + // entity pub assigned_class: Group<'a>, pub attribute_name: Label<'a>, pub role: ClassificationRole<'a>, @@ -3352,13 +3877,18 @@ impl<'a> ParseFromChunks<'a> for AttributeLanguageAssignment_<'a> { let (s, assigned_class) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, attribute_name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_class, - attribute_name, - role, - items, - _marker: std::marker::PhantomData})) + let (s, items) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_class, + attribute_name, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AttributeLanguageAssignment_<'a> { @@ -3374,16 +3904,23 @@ pub struct AttributeLanguageItem_<'a>(std::marker::PhantomData<&'a ()>); // ambi pub type AttributeLanguageItem<'a> = Id>; #[derive(Debug)] -pub enum AttributeType<'a> { // select +pub enum AttributeType<'a> { + // select Label(Label<'a>), Text(Text<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for AttributeType<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("LABEL("), >::parse, char(')')), AttributeType::Label), - map(delimited(tag("TEXT("), >::parse, char(')')), AttributeType::Text), + map( + delimited(tag("LABEL("), >::parse, char(')')), + AttributeType::Label, + ), + map( + delimited(tag("TEXT("), >::parse, char(')')), + AttributeType::Text, + ), ))(s) } } @@ -3397,7 +3934,8 @@ impl<'a> HasId for AttributeType<'a> { } } #[derive(Debug)] -pub struct AttributeValueAssignment_<'a> { // entity +pub struct AttributeValueAssignment_<'a> { + // entity pub attribute_name: Label<'a>, pub attribute_value: AttributeType<'a>, pub role: AttributeValueRole<'a>, @@ -3419,11 +3957,15 @@ impl<'a> ParseFromChunks<'a> for AttributeValueAssignment_<'a> { let (s, attribute_name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, attribute_value) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - attribute_name, - attribute_value, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + attribute_name, + attribute_value, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AttributeValueAssignment_<'a> { @@ -3434,7 +3976,8 @@ impl<'a> HasId for AttributeValueAssignment_<'a> { } } #[derive(Debug)] -pub struct AttributeValueRole_<'a> { // entity +pub struct AttributeValueRole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -3454,10 +3997,14 @@ impl<'a> ParseFromChunks<'a> for AttributeValueRole_<'a> { let (s, _) = tag("ATTRIBUTE_VALUE_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for AttributeValueRole_<'a> { @@ -3467,7 +4014,8 @@ impl<'a> HasId for AttributeValueRole_<'a> { } } #[derive(Debug)] -pub struct Axis1Placement_<'a> { // entity +pub struct Axis1Placement_<'a> { + // entity pub name: Label<'a>, pub location: CartesianPoint<'a>, pub axis: Option>, @@ -3489,11 +4037,15 @@ impl<'a> ParseFromChunks<'a> for Axis1Placement_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, location) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, axis) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - location, - axis, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + location, + axis, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Axis1Placement_<'a> { @@ -3508,7 +4060,8 @@ pub struct Axis2Placement_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous s pub type Axis2Placement<'a> = Id>; #[derive(Debug)] -pub struct Axis2Placement2d_<'a> { // entity +pub struct Axis2Placement2d_<'a> { + // entity pub name: Label<'a>, pub location: CartesianPoint<'a>, pub ref_direction: Option>, @@ -3530,11 +4083,15 @@ impl<'a> ParseFromChunks<'a> for Axis2Placement2d_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, location) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, ref_direction) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - location, - ref_direction, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + location, + ref_direction, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Axis2Placement2d_<'a> { @@ -3545,7 +4102,8 @@ impl<'a> HasId for Axis2Placement2d_<'a> { } } #[derive(Debug)] -pub struct Axis2Placement3d_<'a> { // entity +pub struct Axis2Placement3d_<'a> { + // entity pub name: Label<'a>, pub location: CartesianPoint<'a>, pub axis: Option>, @@ -3569,12 +4127,16 @@ impl<'a> ParseFromChunks<'a> for Axis2Placement3d_<'a> { let (s, location) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, axis) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, ref_direction) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - location, - axis, - ref_direction, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + location, + axis, + ref_direction, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Axis2Placement3d_<'a> { @@ -3586,7 +4148,8 @@ impl<'a> HasId for Axis2Placement3d_<'a> { } } #[derive(Debug)] -pub struct BSplineCurve_<'a> { // entity +pub struct BSplineCurve_<'a> { + // entity pub name: Label<'a>, pub degree: i64, pub control_points_list: Vec>, @@ -3610,18 +4173,23 @@ impl<'a> ParseFromChunks<'a> for BSplineCurve_<'a> { let (s, _) = tag("B_SPLINE_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, degree) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, control_points_list) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, control_points_list) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, curve_form) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, closed_curve) = param_from_chunks::(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - degree, - control_points_list, - curve_form, - closed_curve, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + degree, + control_points_list, + curve_form, + closed_curve, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BSplineCurve_<'a> { @@ -3635,7 +4203,8 @@ impl<'a> HasId for BSplineCurve_<'a> { } } #[derive(Debug)] -pub enum BSplineCurveForm<'a> { // enum +pub enum BSplineCurveForm<'a> { + // enum PolylineForm, CircularArc, EllipticArc, @@ -3661,11 +4230,13 @@ impl<'a> Parse<'a> for BSplineCurveForm<'a> { } } impl<'a> HasId for BSplineCurveForm<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct BSplineCurveWithKnots_<'a> { // entity +pub struct BSplineCurveWithKnots_<'a> { + // entity pub name: Label<'a>, pub degree: i64, pub control_points_list: Vec>, @@ -3692,24 +4263,29 @@ impl<'a> ParseFromChunks<'a> for BSplineCurveWithKnots_<'a> { let (s, _) = tag("B_SPLINE_CURVE_WITH_KNOTS(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, degree) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, control_points_list) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, control_points_list) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, curve_form) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, closed_curve) = param_from_chunks::(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(false, s, &mut i, strs)?; let (s, knot_multiplicities) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, knots) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, knot_spec) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - degree, - control_points_list, - curve_form, - closed_curve, - self_intersect, - knot_multiplicities, - knots, - knot_spec, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + degree, + control_points_list, + curve_form, + closed_curve, + self_intersect, + knot_multiplicities, + knots, + knot_spec, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BSplineCurveWithKnots_<'a> { @@ -3726,7 +4302,8 @@ impl<'a> HasId for BSplineCurveWithKnots_<'a> { } } #[derive(Debug)] -pub struct BSplineSurface_<'a> { // entity +pub struct BSplineSurface_<'a> { + // entity pub name: Label<'a>, pub u_degree: i64, pub v_degree: i64, @@ -3753,21 +4330,27 @@ impl<'a> ParseFromChunks<'a> for BSplineSurface_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, u_degree) = param_from_chunks::(false, s, &mut i, strs)?; let (s, v_degree) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, control_points_list) = param_from_chunks::>>>(false, s, &mut i, strs)?; - let (s, surface_form) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, control_points_list) = + param_from_chunks::>>>(false, s, &mut i, strs)?; + let (s, surface_form) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, u_closed) = param_from_chunks::(false, s, &mut i, strs)?; let (s, v_closed) = param_from_chunks::(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - u_degree, - v_degree, - control_points_list, - surface_form, - u_closed, - v_closed, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + u_degree, + v_degree, + control_points_list, + surface_form, + u_closed, + v_closed, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BSplineSurface_<'a> { @@ -3783,7 +4366,8 @@ impl<'a> HasId for BSplineSurface_<'a> { } } #[derive(Debug)] -pub enum BSplineSurfaceForm<'a> { // enum +pub enum BSplineSurfaceForm<'a> { + // enum PlaneSurf, CylindricalSurf, ConicalSurf, @@ -3819,11 +4403,13 @@ impl<'a> Parse<'a> for BSplineSurfaceForm<'a> { } } impl<'a> HasId for BSplineSurfaceForm<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct BSplineSurfaceWithKnots_<'a> { // entity +pub struct BSplineSurfaceWithKnots_<'a> { + // entity pub name: Label<'a>, pub u_degree: i64, pub v_degree: i64, @@ -3855,8 +4441,10 @@ impl<'a> ParseFromChunks<'a> for BSplineSurfaceWithKnots_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, u_degree) = param_from_chunks::(false, s, &mut i, strs)?; let (s, v_degree) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, control_points_list) = param_from_chunks::>>>(false, s, &mut i, strs)?; - let (s, surface_form) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, control_points_list) = + param_from_chunks::>>>(false, s, &mut i, strs)?; + let (s, surface_form) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, u_closed) = param_from_chunks::(false, s, &mut i, strs)?; let (s, v_closed) = param_from_chunks::(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(false, s, &mut i, strs)?; @@ -3865,21 +4453,25 @@ impl<'a> ParseFromChunks<'a> for BSplineSurfaceWithKnots_<'a> { let (s, u_knots) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, v_knots) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, knot_spec) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - u_degree, - v_degree, - control_points_list, - surface_form, - u_closed, - v_closed, - self_intersect, - u_multiplicities, - v_multiplicities, - u_knots, - v_knots, - knot_spec, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + u_degree, + v_degree, + control_points_list, + surface_form, + u_closed, + v_closed, + self_intersect, + u_multiplicities, + v_multiplicities, + u_knots, + v_knots, + knot_spec, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BSplineSurfaceWithKnots_<'a> { @@ -3900,7 +4492,8 @@ impl<'a> HasId for BSplineSurfaceWithKnots_<'a> { } } #[derive(Debug)] -pub struct BackgroundColour_<'a> { // entity +pub struct BackgroundColour_<'a> { + // entity pub presentation: AreaOrView<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -3918,9 +4511,13 @@ impl<'a> ParseFromChunks<'a> for BackgroundColour_<'a> { let mut i = 0; let (s, _) = tag("BACKGROUND_COLOUR(")(strs[0])?; let (s, presentation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - presentation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + presentation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BackgroundColour_<'a> { @@ -3929,7 +4526,8 @@ impl<'a> HasId for BackgroundColour_<'a> { } } #[derive(Debug)] -pub struct BarringHole_<'a> { // entity +pub struct BarringHole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -3949,10 +4547,14 @@ impl<'a> ParseFromChunks<'a> for BarringHole_<'a> { let (s, _) = tag("BARRING_HOLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BarringHole_<'a> { @@ -3962,7 +4564,8 @@ impl<'a> HasId for BarringHole_<'a> { } } #[derive(Debug)] -pub struct Bead_<'a> { // entity +pub struct Bead_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -3982,10 +4585,14 @@ impl<'a> ParseFromChunks<'a> for Bead_<'a> { let (s, _) = tag("BEAD(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Bead_<'a> { @@ -3995,7 +4602,8 @@ impl<'a> HasId for Bead_<'a> { } } #[derive(Debug)] -pub struct BeadEnd_<'a> { // entity +pub struct BeadEnd_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -4017,14 +4625,19 @@ impl<'a> ParseFromChunks<'a> for BeadEnd_<'a> { let (s, _) = tag("BEAD_END(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BeadEnd_<'a> { @@ -4036,7 +4649,8 @@ impl<'a> HasId for BeadEnd_<'a> { } } #[derive(Debug)] -pub struct BezierCurve_<'a> { // entity +pub struct BezierCurve_<'a> { + // entity pub name: Label<'a>, pub degree: i64, pub control_points_list: Vec>, @@ -4060,18 +4674,23 @@ impl<'a> ParseFromChunks<'a> for BezierCurve_<'a> { let (s, _) = tag("BEZIER_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, degree) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, control_points_list) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, control_points_list) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, curve_form) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, closed_curve) = param_from_chunks::(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - degree, - control_points_list, - curve_form, - closed_curve, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + degree, + control_points_list, + curve_form, + closed_curve, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BezierCurve_<'a> { @@ -4085,7 +4704,8 @@ impl<'a> HasId for BezierCurve_<'a> { } } #[derive(Debug)] -pub struct BezierSurface_<'a> { // entity +pub struct BezierSurface_<'a> { + // entity pub name: Label<'a>, pub u_degree: i64, pub v_degree: i64, @@ -4112,21 +4732,27 @@ impl<'a> ParseFromChunks<'a> for BezierSurface_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, u_degree) = param_from_chunks::(false, s, &mut i, strs)?; let (s, v_degree) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, control_points_list) = param_from_chunks::>>>(false, s, &mut i, strs)?; - let (s, surface_form) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, control_points_list) = + param_from_chunks::>>>(false, s, &mut i, strs)?; + let (s, surface_form) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, u_closed) = param_from_chunks::(false, s, &mut i, strs)?; let (s, v_closed) = param_from_chunks::(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - u_degree, - v_degree, - control_points_list, - surface_form, - u_closed, - v_closed, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + u_degree, + v_degree, + control_points_list, + surface_form, + u_closed, + v_closed, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BezierSurface_<'a> { @@ -4142,8 +4768,9 @@ impl<'a> HasId for BezierSurface_<'a> { } } #[derive(Debug)] -pub struct BinaryBooleanExpression_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct BinaryBooleanExpression_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type BinaryBooleanExpression<'a> = Id>; @@ -4159,10 +4786,15 @@ impl<'a> ParseFromChunks<'a> for BinaryBooleanExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("BINARY_BOOLEAN_EXPRESSION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BinaryBooleanExpression_<'a> { @@ -4171,8 +4803,9 @@ impl<'a> HasId for BinaryBooleanExpression_<'a> { } } #[derive(Debug)] -pub struct BinaryFunctionCall_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct BinaryFunctionCall_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type BinaryFunctionCall<'a> = Id>; @@ -4188,10 +4821,15 @@ impl<'a> ParseFromChunks<'a> for BinaryFunctionCall_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("BINARY_FUNCTION_CALL(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BinaryFunctionCall_<'a> { @@ -4200,8 +4838,9 @@ impl<'a> HasId for BinaryFunctionCall_<'a> { } } #[derive(Debug)] -pub struct BinaryGenericExpression_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct BinaryGenericExpression_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type BinaryGenericExpression<'a> = Id>; @@ -4217,10 +4856,15 @@ impl<'a> ParseFromChunks<'a> for BinaryGenericExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("BINARY_GENERIC_EXPRESSION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BinaryGenericExpression_<'a> { @@ -4229,8 +4873,9 @@ impl<'a> HasId for BinaryGenericExpression_<'a> { } } #[derive(Debug)] -pub struct BinaryNumericExpression_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct BinaryNumericExpression_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type BinaryNumericExpression<'a> = Id>; @@ -4246,10 +4891,15 @@ impl<'a> ParseFromChunks<'a> for BinaryNumericExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("BINARY_NUMERIC_EXPRESSION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BinaryNumericExpression_<'a> { @@ -4258,7 +4908,8 @@ impl<'a> HasId for BinaryNumericExpression_<'a> { } } #[derive(Debug)] -pub struct Block_<'a> { // entity +pub struct Block_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement3d<'a>, pub x: PositiveLengthMeasure<'a>, @@ -4284,13 +4935,17 @@ impl<'a> ParseFromChunks<'a> for Block_<'a> { let (s, x) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, y) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, z) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - x, - y, - z, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + position, + x, + y, + z, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Block_<'a> { @@ -4303,7 +4958,8 @@ impl<'a> HasId for Block_<'a> { } } #[derive(Debug)] -pub struct BooleanDefinedFunction_<'a> { // entity +pub struct BooleanDefinedFunction_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type BooleanDefinedFunction<'a> = Id>; @@ -4318,16 +4974,20 @@ impl<'a> FromEntity<'a> for BooleanDefinedFunction_<'a> { impl<'a> ParseFromChunks<'a> for BooleanDefinedFunction_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("BOOLEAN_DEFINED_FUNCTION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BooleanDefinedFunction_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct BooleanExpression_<'a> { // entity +pub struct BooleanExpression_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type BooleanExpression<'a> = Id>; @@ -4342,16 +5002,20 @@ impl<'a> FromEntity<'a> for BooleanExpression_<'a> { impl<'a> ParseFromChunks<'a> for BooleanExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("BOOLEAN_EXPRESSION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BooleanExpression_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct BooleanLiteral_<'a> { // entity +pub struct BooleanLiteral_<'a> { + // entity pub the_value: bool, _marker: std::marker::PhantomData<&'a ()>, } @@ -4369,9 +5033,13 @@ impl<'a> ParseFromChunks<'a> for BooleanLiteral_<'a> { let mut i = 0; let (s, _) = tag("BOOLEAN_LITERAL(")(strs[0])?; let (s, the_value) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - the_value, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + the_value, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BooleanLiteral_<'a> { @@ -4384,7 +5052,8 @@ pub struct BooleanOperand_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous s pub type BooleanOperand<'a> = Id>; #[derive(Debug)] -pub enum BooleanOperator<'a> { // enum +pub enum BooleanOperator<'a> { + // enum Union, Intersection, Difference, @@ -4404,11 +5073,13 @@ impl<'a> Parse<'a> for BooleanOperator<'a> { } } impl<'a> HasId for BooleanOperator<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct BooleanResult_<'a> { // entity +pub struct BooleanResult_<'a> { + // entity pub name: Label<'a>, pub operator: BooleanOperator<'a>, pub first_operand: BooleanOperand<'a>, @@ -4432,12 +5103,16 @@ impl<'a> ParseFromChunks<'a> for BooleanResult_<'a> { let (s, operator) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, first_operand) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, second_operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - operator, - first_operand, - second_operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + operator, + first_operand, + second_operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BooleanResult_<'a> { @@ -4449,7 +5124,8 @@ impl<'a> HasId for BooleanResult_<'a> { } } #[derive(Debug)] -pub struct BooleanVariable_<'a> { // entity +pub struct BooleanVariable_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type BooleanVariable<'a> = Id>; @@ -4464,16 +5140,20 @@ impl<'a> FromEntity<'a> for BooleanVariable_<'a> { impl<'a> ParseFromChunks<'a> for BooleanVariable_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("BOOLEAN_VARIABLE(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BooleanVariable_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct Boss_<'a> { // entity +pub struct Boss_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -4493,10 +5173,14 @@ impl<'a> ParseFromChunks<'a> for Boss_<'a> { let (s, _) = tag("BOSS(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Boss_<'a> { @@ -4506,7 +5190,8 @@ impl<'a> HasId for Boss_<'a> { } } #[derive(Debug)] -pub struct BossTop_<'a> { // entity +pub struct BossTop_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -4528,14 +5213,19 @@ impl<'a> ParseFromChunks<'a> for BossTop_<'a> { let (s, _) = tag("BOSS_TOP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BossTop_<'a> { @@ -4547,7 +5237,8 @@ impl<'a> HasId for BossTop_<'a> { } } #[derive(Debug)] -pub struct BoundaryCurve_<'a> { // entity +pub struct BoundaryCurve_<'a> { + // entity pub name: Label<'a>, pub segments: Vec>, pub self_intersect: Logical, @@ -4567,13 +5258,18 @@ impl<'a> ParseFromChunks<'a> for BoundaryCurve_<'a> { let mut i = 0; let (s, _) = tag("BOUNDARY_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, segments) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, segments) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - segments, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + segments, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BoundaryCurve_<'a> { @@ -4584,7 +5280,8 @@ impl<'a> HasId for BoundaryCurve_<'a> { } } #[derive(Debug)] -pub struct BoundedCurve_<'a> { // entity +pub struct BoundedCurve_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -4602,9 +5299,13 @@ impl<'a> ParseFromChunks<'a> for BoundedCurve_<'a> { let mut i = 0; let (s, _) = tag("BOUNDED_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BoundedCurve_<'a> { @@ -4614,7 +5315,8 @@ impl<'a> HasId for BoundedCurve_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct BoundedPcurve_<'a> { // entity +pub struct BoundedPcurve_<'a> { + // entity pub representation_item__name: Label<'a>, pub basis_surface: Surface<'a>, pub reference_to_curve: DefinitionalRepresentation<'a>, @@ -4634,14 +5336,20 @@ impl<'a> ParseFromChunks<'a> for BoundedPcurve_<'a> { let mut i = 0; let (s, _) = tag("BOUNDED_PCURVE(")(strs[0])?; #[allow(non_snake_case)] - let (s, representation_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, representation_item__name) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, basis_surface) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, reference_to_curve) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - representation_item__name, - basis_surface, - reference_to_curve, - _marker: std::marker::PhantomData})) + let (s, reference_to_curve) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + representation_item__name, + basis_surface, + reference_to_curve, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BoundedPcurve_<'a> { @@ -4652,7 +5360,8 @@ impl<'a> HasId for BoundedPcurve_<'a> { } } #[derive(Debug)] -pub struct BoundedSurface_<'a> { // entity +pub struct BoundedSurface_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -4670,9 +5379,13 @@ impl<'a> ParseFromChunks<'a> for BoundedSurface_<'a> { let mut i = 0; let (s, _) = tag("BOUNDED_SURFACE(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BoundedSurface_<'a> { @@ -4682,10 +5395,11 @@ impl<'a> HasId for BoundedSurface_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct BoundedSurfaceCurve_<'a> { // entity +pub struct BoundedSurfaceCurve_<'a> { + // entity pub representation_item__name: Label<'a>, pub curve_3d: Curve<'a>, - pub associated_geometry: ArrayVec::, 2>, + pub associated_geometry: ArrayVec, 2>, pub master_representation: PreferredSurfaceCurveRepresentation<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -4703,16 +5417,23 @@ impl<'a> ParseFromChunks<'a> for BoundedSurfaceCurve_<'a> { let mut i = 0; let (s, _) = tag("BOUNDED_SURFACE_CURVE(")(strs[0])?; #[allow(non_snake_case)] - let (s, representation_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, representation_item__name) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_3d) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, associated_geometry) = param_from_chunks::, 2>>(false, s, &mut i, strs)?; - let (s, master_representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - representation_item__name, - curve_3d, - associated_geometry, - master_representation, - _marker: std::marker::PhantomData})) + let (s, associated_geometry) = + param_from_chunks::, 2>>(false, s, &mut i, strs)?; + let (s, master_representation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + representation_item__name, + curve_3d, + associated_geometry, + master_representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BoundedSurfaceCurve_<'a> { @@ -4724,20 +5445,41 @@ impl<'a> HasId for BoundedSurfaceCurve_<'a> { } } #[derive(Debug)] -pub enum BoxCharacteristicSelect<'a> { // select +pub enum BoxCharacteristicSelect<'a> { + // select BoxHeight(BoxHeight<'a>), BoxWidth(BoxWidth<'a>), BoxSlantAngle(BoxSlantAngle<'a>), BoxRotateAngle(BoxRotateAngle<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for BoxCharacteristicSelect<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("BOX_HEIGHT("), >::parse, char(')')), BoxCharacteristicSelect::BoxHeight), - map(delimited(tag("BOX_WIDTH("), >::parse, char(')')), BoxCharacteristicSelect::BoxWidth), - map(delimited(tag("BOX_SLANT_ANGLE("), >::parse, char(')')), BoxCharacteristicSelect::BoxSlantAngle), - map(delimited(tag("BOX_ROTATE_ANGLE("), >::parse, char(')')), BoxCharacteristicSelect::BoxRotateAngle), + map( + delimited(tag("BOX_HEIGHT("), >::parse, char(')')), + BoxCharacteristicSelect::BoxHeight, + ), + map( + delimited(tag("BOX_WIDTH("), >::parse, char(')')), + BoxCharacteristicSelect::BoxWidth, + ), + map( + delimited( + tag("BOX_SLANT_ANGLE("), + >::parse, + char(')'), + ), + BoxCharacteristicSelect::BoxSlantAngle, + ), + map( + delimited( + tag("BOX_ROTATE_ANGLE("), + >::parse, + char(')'), + ), + BoxCharacteristicSelect::BoxRotateAngle, + ), ))(s) } } @@ -4753,7 +5495,8 @@ impl<'a> HasId for BoxCharacteristicSelect<'a> { } } #[derive(Debug)] -pub struct BoxDomain_<'a> { // entity +pub struct BoxDomain_<'a> { + // entity pub corner: CartesianPoint<'a>, pub xlength: PositiveLengthMeasure<'a>, pub ylength: PositiveLengthMeasure<'a>, @@ -4777,12 +5520,16 @@ impl<'a> ParseFromChunks<'a> for BoxDomain_<'a> { let (s, xlength) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, ylength) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, zlength) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - corner, - xlength, - ylength, - zlength, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + corner, + xlength, + ylength, + zlength, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BoxDomain_<'a> { @@ -4795,10 +5542,15 @@ impl<'a> HasId for BoxDomain_<'a> { } #[derive(Debug)] -pub struct BoxHeight<'a>(pub PositiveRatioMeasure<'a>, std::marker::PhantomData<&'a ()>); // redeclared +pub struct BoxHeight<'a>( + pub PositiveRatioMeasure<'a>, + std::marker::PhantomData<&'a ()>, +); // redeclared impl<'a> Parse<'a> for BoxHeight<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(PositiveRatioMeasure::parse, |r| Self(r, std::marker::PhantomData))(s) + map(PositiveRatioMeasure::parse, |r| { + Self(r, std::marker::PhantomData) + })(s) } } impl<'a> HasId for BoxHeight<'a> { @@ -4807,12 +5559,13 @@ impl<'a> HasId for BoxHeight<'a> { } } - #[derive(Debug)] pub struct BoxRotateAngle<'a>(pub PlaneAngleMeasure<'a>, std::marker::PhantomData<&'a ()>); // redeclared impl<'a> Parse<'a> for BoxRotateAngle<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(PlaneAngleMeasure::parse, |r| Self(r, std::marker::PhantomData))(s) + map(PlaneAngleMeasure::parse, |r| { + Self(r, std::marker::PhantomData) + })(s) } } impl<'a> HasId for BoxRotateAngle<'a> { @@ -4821,12 +5574,13 @@ impl<'a> HasId for BoxRotateAngle<'a> { } } - #[derive(Debug)] pub struct BoxSlantAngle<'a>(pub PlaneAngleMeasure<'a>, std::marker::PhantomData<&'a ()>); // redeclared impl<'a> Parse<'a> for BoxSlantAngle<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(PlaneAngleMeasure::parse, |r| Self(r, std::marker::PhantomData))(s) + map(PlaneAngleMeasure::parse, |r| { + Self(r, std::marker::PhantomData) + })(s) } } impl<'a> HasId for BoxSlantAngle<'a> { @@ -4835,12 +5589,16 @@ impl<'a> HasId for BoxSlantAngle<'a> { } } - #[derive(Debug)] -pub struct BoxWidth<'a>(pub PositiveRatioMeasure<'a>, std::marker::PhantomData<&'a ()>); // redeclared +pub struct BoxWidth<'a>( + pub PositiveRatioMeasure<'a>, + std::marker::PhantomData<&'a ()>, +); // redeclared impl<'a> Parse<'a> for BoxWidth<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(PositiveRatioMeasure::parse, |r| Self(r, std::marker::PhantomData))(s) + map(PositiveRatioMeasure::parse, |r| { + Self(r, std::marker::PhantomData) + })(s) } } impl<'a> HasId for BoxWidth<'a> { @@ -4850,7 +5608,8 @@ impl<'a> HasId for BoxWidth<'a> { } #[derive(Debug)] -pub struct BoxedHalfSpace_<'a> { // entity +pub struct BoxedHalfSpace_<'a> { + // entity pub name: Label<'a>, pub base_surface: Surface<'a>, pub agreement_flag: bool, @@ -4874,12 +5633,16 @@ impl<'a> ParseFromChunks<'a> for BoxedHalfSpace_<'a> { let (s, base_surface) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, agreement_flag) = param_from_chunks::(false, s, &mut i, strs)?; let (s, enclosure) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - base_surface, - agreement_flag, - enclosure, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + base_surface, + agreement_flag, + enclosure, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BoxedHalfSpace_<'a> { @@ -4891,7 +5654,8 @@ impl<'a> HasId for BoxedHalfSpace_<'a> { } } #[derive(Debug)] -pub struct BrepWithVoids_<'a> { // entity +pub struct BrepWithVoids_<'a> { + // entity pub name: Label<'a>, pub outer: ClosedShell<'a>, pub voids: Vec>, @@ -4913,11 +5677,15 @@ impl<'a> ParseFromChunks<'a> for BrepWithVoids_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, outer) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, voids) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - outer, - voids, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + outer, + voids, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for BrepWithVoids_<'a> { @@ -4928,7 +5696,8 @@ impl<'a> HasId for BrepWithVoids_<'a> { } } #[derive(Debug)] -pub struct CalendarDate_<'a> { // entity +pub struct CalendarDate_<'a> { + // entity pub year_component: YearNumber<'a>, pub day_component: DayInMonthNumber<'a>, pub month_component: MonthInYearNumber<'a>, @@ -4949,12 +5718,17 @@ impl<'a> ParseFromChunks<'a> for CalendarDate_<'a> { let (s, _) = tag("CALENDAR_DATE(")(strs[0])?; let (s, year_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, day_component) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, month_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - year_component, - day_component, - month_component, - _marker: std::marker::PhantomData})) + let (s, month_component) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + year_component, + day_component, + month_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CalendarDate_<'a> { @@ -4965,7 +5739,8 @@ impl<'a> HasId for CalendarDate_<'a> { } } #[derive(Debug)] -pub struct CameraImage_<'a> { // entity +pub struct CameraImage_<'a> { + // entity pub name: Label<'a>, pub mapping_source: RepresentationMap<'a>, pub mapping_target: RepresentationItem<'a>, @@ -4985,13 +5760,19 @@ impl<'a> ParseFromChunks<'a> for CameraImage_<'a> { let mut i = 0; let (s, _) = tag("CAMERA_IMAGE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_source) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_target) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - mapping_source, - mapping_target, - _marker: std::marker::PhantomData})) + let (s, mapping_source) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, mapping_target) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + mapping_source, + mapping_target, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CameraImage_<'a> { @@ -5002,7 +5783,8 @@ impl<'a> HasId for CameraImage_<'a> { } } #[derive(Debug)] -pub struct CameraImage2dWithScale_<'a> { // entity +pub struct CameraImage2dWithScale_<'a> { + // entity pub name: Label<'a>, pub mapping_source: RepresentationMap<'a>, pub mapping_target: RepresentationItem<'a>, @@ -5022,13 +5804,19 @@ impl<'a> ParseFromChunks<'a> for CameraImage2dWithScale_<'a> { let mut i = 0; let (s, _) = tag("CAMERA_IMAGE_2D_WITH_SCALE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_source) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_target) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - mapping_source, - mapping_target, - _marker: std::marker::PhantomData})) + let (s, mapping_source) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, mapping_target) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + mapping_source, + mapping_target, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CameraImage2dWithScale_<'a> { @@ -5039,7 +5827,8 @@ impl<'a> HasId for CameraImage2dWithScale_<'a> { } } #[derive(Debug)] -pub struct CameraImage3dWithScale_<'a> { // entity +pub struct CameraImage3dWithScale_<'a> { + // entity pub name: Label<'a>, pub mapping_source: RepresentationMap<'a>, pub mapping_target: RepresentationItem<'a>, @@ -5059,13 +5848,19 @@ impl<'a> ParseFromChunks<'a> for CameraImage3dWithScale_<'a> { let mut i = 0; let (s, _) = tag("CAMERA_IMAGE_3D_WITH_SCALE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_source) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_target) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - mapping_source, - mapping_target, - _marker: std::marker::PhantomData})) + let (s, mapping_source) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, mapping_target) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + mapping_source, + mapping_target, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CameraImage3dWithScale_<'a> { @@ -5076,7 +5871,8 @@ impl<'a> HasId for CameraImage3dWithScale_<'a> { } } #[derive(Debug)] -pub struct CameraModel_<'a> { // entity +pub struct CameraModel_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -5094,9 +5890,13 @@ impl<'a> ParseFromChunks<'a> for CameraModel_<'a> { let mut i = 0; let (s, _) = tag("CAMERA_MODEL(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CameraModel_<'a> { @@ -5105,7 +5905,8 @@ impl<'a> HasId for CameraModel_<'a> { } } #[derive(Debug)] -pub struct CameraModelD2_<'a> { // entity +pub struct CameraModelD2_<'a> { + // entity pub name: Label<'a>, pub view_window: PlanarBox<'a>, pub view_window_clipping: bool, @@ -5127,11 +5928,15 @@ impl<'a> ParseFromChunks<'a> for CameraModelD2_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, view_window) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, view_window_clipping) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - view_window, - view_window_clipping, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + view_window, + view_window_clipping, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CameraModelD2_<'a> { @@ -5142,7 +5947,8 @@ impl<'a> HasId for CameraModelD2_<'a> { } } #[derive(Debug)] -pub struct CameraModelD3_<'a> { // entity +pub struct CameraModelD3_<'a> { + // entity pub name: Label<'a>, pub view_reference_system: Axis2Placement3d<'a>, pub perspective_of_volume: ViewVolume<'a>, @@ -5162,13 +5968,19 @@ impl<'a> ParseFromChunks<'a> for CameraModelD3_<'a> { let mut i = 0; let (s, _) = tag("CAMERA_MODEL_D3(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, view_reference_system) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, perspective_of_volume) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - view_reference_system, - perspective_of_volume, - _marker: std::marker::PhantomData})) + let (s, view_reference_system) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, perspective_of_volume) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + view_reference_system, + perspective_of_volume, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CameraModelD3_<'a> { @@ -5179,7 +5991,8 @@ impl<'a> HasId for CameraModelD3_<'a> { } } #[derive(Debug)] -pub struct CameraModelD3WithHlhsr_<'a> { // entity +pub struct CameraModelD3WithHlhsr_<'a> { + // entity pub name: Label<'a>, pub view_reference_system: Axis2Placement3d<'a>, pub perspective_of_volume: ViewVolume<'a>, @@ -5200,15 +6013,21 @@ impl<'a> ParseFromChunks<'a> for CameraModelD3WithHlhsr_<'a> { let mut i = 0; let (s, _) = tag("CAMERA_MODEL_D3_WITH_HLHSR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, view_reference_system) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, perspective_of_volume) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, view_reference_system) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, perspective_of_volume) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, hidden_line_surface_removal) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - view_reference_system, - perspective_of_volume, - hidden_line_surface_removal, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + view_reference_system, + perspective_of_volume, + hidden_line_surface_removal, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CameraModelD3WithHlhsr_<'a> { @@ -5220,7 +6039,8 @@ impl<'a> HasId for CameraModelD3WithHlhsr_<'a> { } } #[derive(Debug)] -pub struct CameraUsage_<'a> { // entity +pub struct CameraUsage_<'a> { + // entity pub mapping_origin: RepresentationItem<'a>, pub mapped_representation: Representation<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -5238,12 +6058,18 @@ impl<'a> ParseFromChunks<'a> for CameraUsage_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("CAMERA_USAGE(")(strs[0])?; - let (s, mapping_origin) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapped_representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - mapping_origin, - mapped_representation, - _marker: std::marker::PhantomData})) + let (s, mapping_origin) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, mapped_representation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + mapping_origin, + mapped_representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CameraUsage_<'a> { @@ -5253,9 +6079,10 @@ impl<'a> HasId for CameraUsage_<'a> { } } #[derive(Debug)] -pub struct CartesianPoint_<'a> { // entity +pub struct CartesianPoint_<'a> { + // entity pub name: Label<'a>, - pub coordinates: ArrayVec::, 3>, + pub coordinates: ArrayVec, 3>, _marker: std::marker::PhantomData<&'a ()>, } pub type CartesianPoint<'a> = Id>; @@ -5272,11 +6099,16 @@ impl<'a> ParseFromChunks<'a> for CartesianPoint_<'a> { let mut i = 0; let (s, _) = tag("CARTESIAN_POINT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, coordinates) = param_from_chunks::, 3>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - coordinates, - _marker: std::marker::PhantomData})) + let (s, coordinates) = + param_from_chunks::, 3>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + coordinates, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CartesianPoint_<'a> { @@ -5287,7 +6119,8 @@ impl<'a> HasId for CartesianPoint_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct CartesianTransformationOperator_<'a> { // entity +pub struct CartesianTransformationOperator_<'a> { + // entity pub representation_item__name: Label<'a>, pub functionally_defined_transformation__name: Label<'a>, pub description: Option>, @@ -5311,29 +6144,36 @@ impl<'a> ParseFromChunks<'a> for CartesianTransformationOperator_<'a> { let mut i = 0; let (s, _) = tag("CARTESIAN_TRANSFORMATION_OPERATOR(")(strs[0])?; #[allow(non_snake_case)] - let (s, representation_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, representation_item__name) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, functionally_defined_transformation__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, functionally_defined_transformation__name) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, axis1) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, axis2) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, local_origin) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, scale) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - representation_item__name, - functionally_defined_transformation__name, - description, - axis1, - axis2, - local_origin, - scale, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + representation_item__name, + functionally_defined_transformation__name, + description, + axis1, + axis2, + local_origin, + scale, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CartesianTransformationOperator_<'a> { fn append_ids(&self, _v: &mut Vec) { self.representation_item__name.append_ids(_v); - self.functionally_defined_transformation__name.append_ids(_v); + self.functionally_defined_transformation__name + .append_ids(_v); self.description.append_ids(_v); self.axis1.append_ids(_v); self.axis2.append_ids(_v); @@ -5343,7 +6183,8 @@ impl<'a> HasId for CartesianTransformationOperator_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct CartesianTransformationOperator2d_<'a> { // entity +pub struct CartesianTransformationOperator2d_<'a> { + // entity pub representation_item__name: Label<'a>, pub functionally_defined_transformation__name: Label<'a>, pub description: Option>, @@ -5367,29 +6208,36 @@ impl<'a> ParseFromChunks<'a> for CartesianTransformationOperator2d_<'a> { let mut i = 0; let (s, _) = tag("CARTESIAN_TRANSFORMATION_OPERATOR_2D(")(strs[0])?; #[allow(non_snake_case)] - let (s, representation_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, representation_item__name) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, functionally_defined_transformation__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, functionally_defined_transformation__name) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, axis1) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, axis2) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, local_origin) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, scale) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - representation_item__name, - functionally_defined_transformation__name, - description, - axis1, - axis2, - local_origin, - scale, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + representation_item__name, + functionally_defined_transformation__name, + description, + axis1, + axis2, + local_origin, + scale, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CartesianTransformationOperator2d_<'a> { fn append_ids(&self, _v: &mut Vec) { self.representation_item__name.append_ids(_v); - self.functionally_defined_transformation__name.append_ids(_v); + self.functionally_defined_transformation__name + .append_ids(_v); self.description.append_ids(_v); self.axis1.append_ids(_v); self.axis2.append_ids(_v); @@ -5399,7 +6247,8 @@ impl<'a> HasId for CartesianTransformationOperator2d_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct CartesianTransformationOperator3d_<'a> { // entity +pub struct CartesianTransformationOperator3d_<'a> { + // entity pub representation_item__name: Label<'a>, pub functionally_defined_transformation__name: Label<'a>, pub description: Option>, @@ -5424,31 +6273,38 @@ impl<'a> ParseFromChunks<'a> for CartesianTransformationOperator3d_<'a> { let mut i = 0; let (s, _) = tag("CARTESIAN_TRANSFORMATION_OPERATOR_3D(")(strs[0])?; #[allow(non_snake_case)] - let (s, representation_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, representation_item__name) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, functionally_defined_transformation__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, functionally_defined_transformation__name) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, axis1) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, axis2) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, local_origin) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, scale) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, axis3) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - representation_item__name, - functionally_defined_transformation__name, - description, - axis1, - axis2, - local_origin, - scale, - axis3, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + representation_item__name, + functionally_defined_transformation__name, + description, + axis1, + axis2, + local_origin, + scale, + axis3, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CartesianTransformationOperator3d_<'a> { fn append_ids(&self, _v: &mut Vec) { self.representation_item__name.append_ids(_v); - self.functionally_defined_transformation__name.append_ids(_v); + self.functionally_defined_transformation__name + .append_ids(_v); self.description.append_ids(_v); self.axis1.append_ids(_v); self.axis2.append_ids(_v); @@ -5469,11 +6325,13 @@ impl<'a> Parse<'a> for CelsiusTemperatureMeasure<'a> { } } impl<'a> HasId for CelsiusTemperatureMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct CelsiusTemperatureMeasureWithUnit_<'a> { // entity +pub struct CelsiusTemperatureMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -5493,10 +6351,14 @@ impl<'a> ParseFromChunks<'a> for CelsiusTemperatureMeasureWithUnit_<'a> { let (s, _) = tag("CELSIUS_TEMPERATURE_MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CelsiusTemperatureMeasureWithUnit_<'a> { @@ -5506,7 +6368,8 @@ impl<'a> HasId for CelsiusTemperatureMeasureWithUnit_<'a> { } } #[derive(Debug)] -pub enum CentralOrParallel<'a> { // enum +pub enum CentralOrParallel<'a> { + // enum Central, Parallel, _Unused(std::marker::PhantomData<&'a ()>), @@ -5524,11 +6387,13 @@ impl<'a> Parse<'a> for CentralOrParallel<'a> { } } impl<'a> HasId for CentralOrParallel<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct CentreOfSymmetry_<'a> { // entity +pub struct CentreOfSymmetry_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -5550,14 +6415,19 @@ impl<'a> ParseFromChunks<'a> for CentreOfSymmetry_<'a> { let (s, _) = tag("CENTRE_OF_SYMMETRY(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CentreOfSymmetry_<'a> { @@ -5569,7 +6439,8 @@ impl<'a> HasId for CentreOfSymmetry_<'a> { } } #[derive(Debug)] -pub struct Certification_<'a> { // entity +pub struct Certification_<'a> { + // entity pub name: Label<'a>, pub purpose: Text<'a>, pub kind: CertificationType<'a>, @@ -5591,11 +6462,15 @@ impl<'a> ParseFromChunks<'a> for Certification_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, purpose) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, kind) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - purpose, - kind, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + purpose, + kind, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Certification_<'a> { @@ -5606,7 +6481,8 @@ impl<'a> HasId for Certification_<'a> { } } #[derive(Debug)] -pub struct CertificationAssignment_<'a> { // entity +pub struct CertificationAssignment_<'a> { + // entity pub assigned_certification: Certification<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -5623,10 +6499,15 @@ impl<'a> ParseFromChunks<'a> for CertificationAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("CERTIFICATION_ASSIGNMENT(")(strs[0])?; - let (s, assigned_certification) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_certification, - _marker: std::marker::PhantomData})) + let (s, assigned_certification) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_certification, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CertificationAssignment_<'a> { @@ -5639,7 +6520,8 @@ pub struct CertificationItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguou pub type CertificationItem<'a> = Id>; #[derive(Debug)] -pub struct CertificationType_<'a> { // entity +pub struct CertificationType_<'a> { + // entity pub description: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -5657,9 +6539,13 @@ impl<'a> ParseFromChunks<'a> for CertificationType_<'a> { let mut i = 0; let (s, _) = tag("CERTIFICATION_TYPE(")(strs[0])?; let (s, description) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CertificationType_<'a> { @@ -5668,7 +6554,8 @@ impl<'a> HasId for CertificationType_<'a> { } } #[derive(Debug)] -pub struct Chamfer_<'a> { // entity +pub struct Chamfer_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -5690,14 +6577,19 @@ impl<'a> ParseFromChunks<'a> for Chamfer_<'a> { let (s, _) = tag("CHAMFER(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Chamfer_<'a> { @@ -5709,7 +6601,8 @@ impl<'a> HasId for Chamfer_<'a> { } } #[derive(Debug)] -pub struct ChamferOffset_<'a> { // entity +pub struct ChamferOffset_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -5731,14 +6624,19 @@ impl<'a> ParseFromChunks<'a> for ChamferOffset_<'a> { let (s, _) = tag("CHAMFER_OFFSET(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ChamferOffset_<'a> { @@ -5750,7 +6648,8 @@ impl<'a> HasId for ChamferOffset_<'a> { } } #[derive(Debug)] -pub struct CharacterGlyphSymbol_<'a> { // entity +pub struct CharacterGlyphSymbol_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -5773,16 +6672,21 @@ impl<'a> ParseFromChunks<'a> for CharacterGlyphSymbol_<'a> { let (s, _) = tag("CHARACTER_GLYPH_SYMBOL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, context_of_items) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, character_box) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, baseline_ratio) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - character_box, - baseline_ratio, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + items, + context_of_items, + character_box, + baseline_ratio, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CharacterGlyphSymbol_<'a> { @@ -5795,20 +6699,41 @@ impl<'a> HasId for CharacterGlyphSymbol_<'a> { } } #[derive(Debug)] -pub enum CharacterSpacingSelect<'a> { // select +pub enum CharacterSpacingSelect<'a> { + // select LengthMeasure(LengthMeasure<'a>), RatioMeasure(RatioMeasure<'a>), MeasureWithUnit(MeasureWithUnit<'a>), DescriptiveMeasure(DescriptiveMeasure<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for CharacterSpacingSelect<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("LENGTH_MEASURE("), >::parse, char(')')), CharacterSpacingSelect::LengthMeasure), - map(delimited(tag("RATIO_MEASURE("), >::parse, char(')')), CharacterSpacingSelect::RatioMeasure), - map(>::parse, CharacterSpacingSelect::MeasureWithUnit), - map(delimited(tag("DESCRIPTIVE_MEASURE("), >::parse, char(')')), CharacterSpacingSelect::DescriptiveMeasure), + map( + delimited( + tag("LENGTH_MEASURE("), + >::parse, + char(')'), + ), + CharacterSpacingSelect::LengthMeasure, + ), + map( + delimited(tag("RATIO_MEASURE("), >::parse, char(')')), + CharacterSpacingSelect::RatioMeasure, + ), + map( + >::parse, + CharacterSpacingSelect::MeasureWithUnit, + ), + map( + delimited( + tag("DESCRIPTIVE_MEASURE("), + >::parse, + char(')'), + ), + CharacterSpacingSelect::DescriptiveMeasure, + ), ))(s) } } @@ -5833,7 +6758,8 @@ pub type CharacterizedActionDefinition<'a> = Id { // entity +pub struct CharacterizedClass_<'a> { + // entity pub characterized_object__name: Label<'a>, pub characterized_object__description: Option>, pub group__name: Label<'a>, @@ -5854,19 +6780,25 @@ impl<'a> ParseFromChunks<'a> for CharacterizedClass_<'a> { let mut i = 0; let (s, _) = tag("CHARACTERIZED_CLASS(")(strs[0])?; #[allow(non_snake_case)] - let (s, characterized_object__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, characterized_object__name) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, characterized_object__description) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, characterized_object__description) = + param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] let (s, group__name) = param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] let (s, group__description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - characterized_object__name, - characterized_object__description, - group__name, - group__description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + characterized_object__name, + characterized_object__description, + group__name, + group__description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CharacterizedClass_<'a> { @@ -5886,7 +6818,8 @@ pub struct CharacterizedMaterialProperty_<'a>(std::marker::PhantomData<&'a ()>); pub type CharacterizedMaterialProperty<'a> = Id>; #[derive(Debug)] -pub struct CharacterizedObject_<'a> { // entity +pub struct CharacterizedObject_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -5906,10 +6839,14 @@ impl<'a> ParseFromChunks<'a> for CharacterizedObject_<'a> { let (s, _) = tag("CHARACTERIZED_OBJECT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CharacterizedObject_<'a> { @@ -5927,7 +6864,8 @@ pub struct CharacterizedResourceDefinition_<'a>(std::marker::PhantomData<&'a ()> pub type CharacterizedResourceDefinition<'a> = Id>; #[derive(Debug)] -pub struct Circle_<'a> { // entity +pub struct Circle_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement<'a>, pub radius: PositiveLengthMeasure<'a>, @@ -5949,11 +6887,15 @@ impl<'a> ParseFromChunks<'a> for Circle_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, position) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, radius) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - radius, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + position, + radius, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Circle_<'a> { @@ -5964,7 +6906,8 @@ impl<'a> HasId for Circle_<'a> { } } #[derive(Debug)] -pub struct CircularClosedProfile_<'a> { // entity +pub struct CircularClosedProfile_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -5986,14 +6929,19 @@ impl<'a> ParseFromChunks<'a> for CircularClosedProfile_<'a> { let (s, _) = tag("CIRCULAR_CLOSED_PROFILE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CircularClosedProfile_<'a> { @@ -6005,7 +6953,8 @@ impl<'a> HasId for CircularClosedProfile_<'a> { } } #[derive(Debug)] -pub struct CircularPattern_<'a> { // entity +pub struct CircularPattern_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -6025,10 +6974,14 @@ impl<'a> ParseFromChunks<'a> for CircularPattern_<'a> { let (s, _) = tag("CIRCULAR_PATTERN(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CircularPattern_<'a> { @@ -6038,7 +6991,8 @@ impl<'a> HasId for CircularPattern_<'a> { } } #[derive(Debug)] -pub struct CircularRunoutTolerance_<'a> { // entity +pub struct CircularRunoutTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -6062,15 +7016,21 @@ impl<'a> ParseFromChunks<'a> for CircularRunoutTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, datum_system) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - datum_system, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, datum_system) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + datum_system, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CircularRunoutTolerance_<'a> { @@ -6083,7 +7043,8 @@ impl<'a> HasId for CircularRunoutTolerance_<'a> { } } #[derive(Debug)] -pub struct Class_<'a> { // entity +pub struct Class_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -6103,10 +7064,14 @@ impl<'a> ParseFromChunks<'a> for Class_<'a> { let (s, _) = tag("CLASS(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Class_<'a> { @@ -6116,7 +7081,8 @@ impl<'a> HasId for Class_<'a> { } } #[derive(Debug)] -pub struct ClassSystem_<'a> { // entity +pub struct ClassSystem_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -6136,10 +7102,14 @@ impl<'a> ParseFromChunks<'a> for ClassSystem_<'a> { let (s, _) = tag("CLASS_SYSTEM(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ClassSystem_<'a> { @@ -6149,13 +7119,15 @@ impl<'a> HasId for ClassSystem_<'a> { } } #[derive(Debug)] -pub struct ClassUsageEffectivityContextAssignment_<'a> { // entity +pub struct ClassUsageEffectivityContextAssignment_<'a> { + // entity pub assigned_effectivity_assignment: EffectivityAssignment<'a>, pub role: EffectivityContextRole<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, } -pub type ClassUsageEffectivityContextAssignment<'a> = Id>; +pub type ClassUsageEffectivityContextAssignment<'a> = + Id>; impl<'a> FromEntity<'a> for ClassUsageEffectivityContextAssignment_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -6168,14 +7140,20 @@ impl<'a> ParseFromChunks<'a> for ClassUsageEffectivityContextAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("CLASS_USAGE_EFFECTIVITY_CONTEXT_ASSIGNMENT(")(strs[0])?; - let (s, assigned_effectivity_assignment) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_effectivity_assignment) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_effectivity_assignment, - role, - items, - _marker: std::marker::PhantomData})) + let (s, items) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_effectivity_assignment, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ClassUsageEffectivityContextAssignment_<'a> { @@ -6190,7 +7168,8 @@ pub struct ClassUsageEffectivityContextItem_<'a>(std::marker::PhantomData<&'a () pub type ClassUsageEffectivityContextItem<'a> = Id>; #[derive(Debug)] -pub struct ClassificationAssignment_<'a> { // entity +pub struct ClassificationAssignment_<'a> { + // entity pub assigned_class: Group<'a>, pub role: ClassificationRole<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -6210,10 +7189,14 @@ impl<'a> ParseFromChunks<'a> for ClassificationAssignment_<'a> { let (s, _) = tag("CLASSIFICATION_ASSIGNMENT(")(strs[0])?; let (s, assigned_class) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_class, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_class, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ClassificationAssignment_<'a> { @@ -6227,7 +7210,8 @@ pub struct ClassificationItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguo pub type ClassificationItem<'a> = Id>; #[derive(Debug)] -pub struct ClassificationRole_<'a> { // entity +pub struct ClassificationRole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -6247,10 +7231,14 @@ impl<'a> ParseFromChunks<'a> for ClassificationRole_<'a> { let (s, _) = tag("CLASSIFICATION_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ClassificationRole_<'a> { @@ -6260,7 +7248,8 @@ impl<'a> HasId for ClassificationRole_<'a> { } } #[derive(Debug)] -pub struct ClosedPathProfile_<'a> { // entity +pub struct ClosedPathProfile_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -6282,14 +7271,19 @@ impl<'a> ParseFromChunks<'a> for ClosedPathProfile_<'a> { let (s, _) = tag("CLOSED_PATH_PROFILE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ClosedPathProfile_<'a> { @@ -6301,7 +7295,8 @@ impl<'a> HasId for ClosedPathProfile_<'a> { } } #[derive(Debug)] -pub struct ClosedShell_<'a> { // entity +pub struct ClosedShell_<'a> { + // entity pub name: Label<'a>, pub cfs_faces: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -6321,10 +7316,14 @@ impl<'a> ParseFromChunks<'a> for ClosedShell_<'a> { let (s, _) = tag("CLOSED_SHELL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, cfs_faces) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - cfs_faces, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + cfs_faces, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ClosedShell_<'a> { @@ -6334,7 +7333,8 @@ impl<'a> HasId for ClosedShell_<'a> { } } #[derive(Debug)] -pub struct CoaxialityTolerance_<'a> { // entity +pub struct CoaxialityTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -6358,15 +7358,21 @@ impl<'a> ParseFromChunks<'a> for CoaxialityTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, datum_system) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - datum_system, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, datum_system) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + datum_system, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CoaxialityTolerance_<'a> { @@ -6379,7 +7385,8 @@ impl<'a> HasId for CoaxialityTolerance_<'a> { } } #[derive(Debug)] -pub struct Colour_<'a> { // entity +pub struct Colour_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type Colour<'a> = Id>; @@ -6394,16 +7401,20 @@ impl<'a> FromEntity<'a> for Colour_<'a> { impl<'a> ParseFromChunks<'a> for Colour_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("COLOUR(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Colour_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct ColourRgb_<'a> { // entity +pub struct ColourRgb_<'a> { + // entity pub name: Label<'a>, pub red: f64, pub green: f64, @@ -6427,12 +7438,16 @@ impl<'a> ParseFromChunks<'a> for ColourRgb_<'a> { let (s, red) = param_from_chunks::(false, s, &mut i, strs)?; let (s, green) = param_from_chunks::(false, s, &mut i, strs)?; let (s, blue) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - red, - green, - blue, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + red, + green, + blue, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ColourRgb_<'a> { @@ -6444,7 +7459,8 @@ impl<'a> HasId for ColourRgb_<'a> { } } #[derive(Debug)] -pub struct ColourSpecification_<'a> { // entity +pub struct ColourSpecification_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -6462,9 +7478,13 @@ impl<'a> ParseFromChunks<'a> for ColourSpecification_<'a> { let mut i = 0; let (s, _) = tag("COLOUR_SPECIFICATION(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ColourSpecification_<'a> { @@ -6474,7 +7494,8 @@ impl<'a> HasId for ColourSpecification_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct CommonDatum_<'a> { // entity +pub struct CommonDatum_<'a> { + // entity pub shape_aspect__name: Label<'a>, pub shape_aspect__description: Option>, pub shape_aspect__of_shape: ProductDefinitionShape<'a>, @@ -6498,19 +7519,26 @@ impl<'a> ParseFromChunks<'a> for CommonDatum_<'a> { #[allow(non_snake_case)] let (s, shape_aspect__name) = param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, shape_aspect__description) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, shape_aspect__description) = + param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, shape_aspect__of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, shape_aspect__of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, shape_aspect__product_definitional) = param_from_chunks::(false, s, &mut i, strs)?; + let (s, shape_aspect__product_definitional) = + param_from_chunks::(false, s, &mut i, strs)?; let (s, identification) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - shape_aspect__name, - shape_aspect__description, - shape_aspect__of_shape, - shape_aspect__product_definitional, - identification, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + shape_aspect__name, + shape_aspect__description, + shape_aspect__of_shape, + shape_aspect__product_definitional, + identification, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CommonDatum_<'a> { @@ -6523,8 +7551,9 @@ impl<'a> HasId for CommonDatum_<'a> { } } #[derive(Debug)] -pub struct ComparisonEqual_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct ComparisonEqual_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type ComparisonEqual<'a> = Id>; @@ -6540,10 +7569,15 @@ impl<'a> ParseFromChunks<'a> for ComparisonEqual_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("COMPARISON_EQUAL(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ComparisonEqual_<'a> { @@ -6552,8 +7586,9 @@ impl<'a> HasId for ComparisonEqual_<'a> { } } #[derive(Debug)] -pub struct ComparisonExpression_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct ComparisonExpression_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type ComparisonExpression<'a> = Id>; @@ -6569,10 +7604,15 @@ impl<'a> ParseFromChunks<'a> for ComparisonExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("COMPARISON_EXPRESSION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ComparisonExpression_<'a> { @@ -6581,8 +7621,9 @@ impl<'a> HasId for ComparisonExpression_<'a> { } } #[derive(Debug)] -pub struct ComparisonGreater_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct ComparisonGreater_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type ComparisonGreater<'a> = Id>; @@ -6598,10 +7639,15 @@ impl<'a> ParseFromChunks<'a> for ComparisonGreater_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("COMPARISON_GREATER(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ComparisonGreater_<'a> { @@ -6610,8 +7656,9 @@ impl<'a> HasId for ComparisonGreater_<'a> { } } #[derive(Debug)] -pub struct ComparisonGreaterEqual_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct ComparisonGreaterEqual_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type ComparisonGreaterEqual<'a> = Id>; @@ -6627,10 +7674,15 @@ impl<'a> ParseFromChunks<'a> for ComparisonGreaterEqual_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("COMPARISON_GREATER_EQUAL(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ComparisonGreaterEqual_<'a> { @@ -6639,8 +7691,9 @@ impl<'a> HasId for ComparisonGreaterEqual_<'a> { } } #[derive(Debug)] -pub struct ComparisonLess_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct ComparisonLess_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type ComparisonLess<'a> = Id>; @@ -6656,10 +7709,15 @@ impl<'a> ParseFromChunks<'a> for ComparisonLess_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("COMPARISON_LESS(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ComparisonLess_<'a> { @@ -6668,8 +7726,9 @@ impl<'a> HasId for ComparisonLess_<'a> { } } #[derive(Debug)] -pub struct ComparisonLessEqual_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct ComparisonLessEqual_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type ComparisonLessEqual<'a> = Id>; @@ -6685,10 +7744,15 @@ impl<'a> ParseFromChunks<'a> for ComparisonLessEqual_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("COMPARISON_LESS_EQUAL(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ComparisonLessEqual_<'a> { @@ -6697,8 +7761,9 @@ impl<'a> HasId for ComparisonLessEqual_<'a> { } } #[derive(Debug)] -pub struct ComparisonNotEqual_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct ComparisonNotEqual_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type ComparisonNotEqual<'a> = Id>; @@ -6714,10 +7779,15 @@ impl<'a> ParseFromChunks<'a> for ComparisonNotEqual_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("COMPARISON_NOT_EQUAL(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ComparisonNotEqual_<'a> { @@ -6726,7 +7796,8 @@ impl<'a> HasId for ComparisonNotEqual_<'a> { } } #[derive(Debug)] -pub struct CompositeCurve_<'a> { // entity +pub struct CompositeCurve_<'a> { + // entity pub name: Label<'a>, pub segments: Vec>, pub self_intersect: Logical, @@ -6746,13 +7817,18 @@ impl<'a> ParseFromChunks<'a> for CompositeCurve_<'a> { let mut i = 0; let (s, _) = tag("COMPOSITE_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, segments) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, segments) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - segments, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + segments, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CompositeCurve_<'a> { @@ -6763,7 +7839,8 @@ impl<'a> HasId for CompositeCurve_<'a> { } } #[derive(Debug)] -pub struct CompositeCurveOnSurface_<'a> { // entity +pub struct CompositeCurveOnSurface_<'a> { + // entity pub name: Label<'a>, pub segments: Vec>, pub self_intersect: Logical, @@ -6783,13 +7860,18 @@ impl<'a> ParseFromChunks<'a> for CompositeCurveOnSurface_<'a> { let mut i = 0; let (s, _) = tag("COMPOSITE_CURVE_ON_SURFACE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, segments) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, segments) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - segments, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + segments, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CompositeCurveOnSurface_<'a> { @@ -6800,7 +7882,8 @@ impl<'a> HasId for CompositeCurveOnSurface_<'a> { } } #[derive(Debug)] -pub struct CompositeCurveSegment_<'a> { // entity +pub struct CompositeCurveSegment_<'a> { + // entity pub transition: TransitionCode<'a>, pub same_sense: bool, pub parent_curve: Curve<'a>, @@ -6822,11 +7905,15 @@ impl<'a> ParseFromChunks<'a> for CompositeCurveSegment_<'a> { let (s, transition) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, same_sense) = param_from_chunks::(false, s, &mut i, strs)?; let (s, parent_curve) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - transition, - same_sense, - parent_curve, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + transition, + same_sense, + parent_curve, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CompositeCurveSegment_<'a> { @@ -6837,7 +7924,8 @@ impl<'a> HasId for CompositeCurveSegment_<'a> { } } #[derive(Debug)] -pub struct CompositeHole_<'a> { // entity +pub struct CompositeHole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -6857,10 +7945,14 @@ impl<'a> ParseFromChunks<'a> for CompositeHole_<'a> { let (s, _) = tag("COMPOSITE_HOLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CompositeHole_<'a> { @@ -6870,7 +7962,8 @@ impl<'a> HasId for CompositeHole_<'a> { } } #[derive(Debug)] -pub struct CompositeShapeAspect_<'a> { // entity +pub struct CompositeShapeAspect_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -6892,14 +7985,19 @@ impl<'a> ParseFromChunks<'a> for CompositeShapeAspect_<'a> { let (s, _) = tag("COMPOSITE_SHAPE_ASPECT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CompositeShapeAspect_<'a> { @@ -6911,7 +8009,8 @@ impl<'a> HasId for CompositeShapeAspect_<'a> { } } #[derive(Debug)] -pub struct CompositeText_<'a> { // entity +pub struct CompositeText_<'a> { + // entity pub name: Label<'a>, pub collected_text: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -6930,11 +8029,16 @@ impl<'a> ParseFromChunks<'a> for CompositeText_<'a> { let mut i = 0; let (s, _) = tag("COMPOSITE_TEXT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, collected_text) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - collected_text, - _marker: std::marker::PhantomData})) + let (s, collected_text) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + collected_text, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CompositeText_<'a> { @@ -6944,7 +8048,8 @@ impl<'a> HasId for CompositeText_<'a> { } } #[derive(Debug)] -pub struct CompositeTextWithAssociatedCurves_<'a> { // entity +pub struct CompositeTextWithAssociatedCurves_<'a> { + // entity pub name: Label<'a>, pub collected_text: Vec>, pub associated_curves: Vec>, @@ -6964,13 +8069,18 @@ impl<'a> ParseFromChunks<'a> for CompositeTextWithAssociatedCurves_<'a> { let mut i = 0; let (s, _) = tag("COMPOSITE_TEXT_WITH_ASSOCIATED_CURVES(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, collected_text) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, collected_text) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, associated_curves) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - collected_text, - associated_curves, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + collected_text, + associated_curves, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CompositeTextWithAssociatedCurves_<'a> { @@ -6981,7 +8091,8 @@ impl<'a> HasId for CompositeTextWithAssociatedCurves_<'a> { } } #[derive(Debug)] -pub struct CompositeTextWithBlankingBox_<'a> { // entity +pub struct CompositeTextWithBlankingBox_<'a> { + // entity pub name: Label<'a>, pub collected_text: Vec>, pub blanking: PlanarBox<'a>, @@ -7001,13 +8112,18 @@ impl<'a> ParseFromChunks<'a> for CompositeTextWithBlankingBox_<'a> { let mut i = 0; let (s, _) = tag("COMPOSITE_TEXT_WITH_BLANKING_BOX(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, collected_text) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, collected_text) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, blanking) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - collected_text, - blanking, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + collected_text, + blanking, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CompositeTextWithBlankingBox_<'a> { @@ -7018,7 +8134,8 @@ impl<'a> HasId for CompositeTextWithBlankingBox_<'a> { } } #[derive(Debug)] -pub struct CompositeTextWithExtent_<'a> { // entity +pub struct CompositeTextWithExtent_<'a> { + // entity pub name: Label<'a>, pub collected_text: Vec>, pub extent: PlanarExtent<'a>, @@ -7038,13 +8155,18 @@ impl<'a> ParseFromChunks<'a> for CompositeTextWithExtent_<'a> { let mut i = 0; let (s, _) = tag("COMPOSITE_TEXT_WITH_EXTENT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, collected_text) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, collected_text) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, extent) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - collected_text, - extent, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + collected_text, + extent, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CompositeTextWithExtent_<'a> { @@ -7055,7 +8177,8 @@ impl<'a> HasId for CompositeTextWithExtent_<'a> { } } #[derive(Debug)] -pub struct CompoundFeature_<'a> { // entity +pub struct CompoundFeature_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -7075,10 +8198,14 @@ impl<'a> ParseFromChunks<'a> for CompoundFeature_<'a> { let (s, _) = tag("COMPOUND_FEATURE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CompoundFeature_<'a> { @@ -7088,16 +8215,31 @@ impl<'a> HasId for CompoundFeature_<'a> { } } #[derive(Debug)] -pub enum CompoundItemDefinition<'a> { // select +pub enum CompoundItemDefinition<'a> { + // select ListRepresentationItem(Vec>), SetRepresentationItem(Vec>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for CompoundItemDefinition<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("LIST_REPRESENTATION_ITEM("), >>::parse, char(')')), CompoundItemDefinition::ListRepresentationItem), - map(delimited(tag("SET_REPRESENTATION_ITEM("), >>::parse, char(')')), CompoundItemDefinition::SetRepresentationItem), + map( + delimited( + tag("LIST_REPRESENTATION_ITEM("), + >>::parse, + char(')'), + ), + CompoundItemDefinition::ListRepresentationItem, + ), + map( + delimited( + tag("SET_REPRESENTATION_ITEM("), + >>::parse, + char(')'), + ), + CompoundItemDefinition::SetRepresentationItem, + ), ))(s) } } @@ -7111,7 +8253,8 @@ impl<'a> HasId for CompoundItemDefinition<'a> { } } #[derive(Debug)] -pub struct CompoundRepresentationItem_<'a> { // entity +pub struct CompoundRepresentationItem_<'a> { + // entity pub name: Label<'a>, pub item_element: CompoundItemDefinition<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -7130,11 +8273,16 @@ impl<'a> ParseFromChunks<'a> for CompoundRepresentationItem_<'a> { let mut i = 0; let (s, _) = tag("COMPOUND_REPRESENTATION_ITEM(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, item_element) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - item_element, - _marker: std::marker::PhantomData})) + let (s, item_element) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + item_element, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CompoundRepresentationItem_<'a> { @@ -7144,7 +8292,8 @@ impl<'a> HasId for CompoundRepresentationItem_<'a> { } } #[derive(Debug)] -pub struct CompoundShapeRepresentation_<'a> { // entity +pub struct CompoundShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -7165,12 +8314,17 @@ impl<'a> ParseFromChunks<'a> for CompoundShapeRepresentation_<'a> { let (s, _) = tag("COMPOUND_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CompoundShapeRepresentation_<'a> { @@ -7181,7 +8335,8 @@ impl<'a> HasId for CompoundShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct ConcatExpression_<'a> { // entity +pub struct ConcatExpression_<'a> { + // entity pub operands: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -7199,9 +8354,13 @@ impl<'a> ParseFromChunks<'a> for ConcatExpression_<'a> { let mut i = 0; let (s, _) = tag("CONCAT_EXPRESSION(")(strs[0])?; let (s, operands) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConcatExpression_<'a> { @@ -7210,7 +8369,8 @@ impl<'a> HasId for ConcatExpression_<'a> { } } #[derive(Debug)] -pub struct ConcentricityTolerance_<'a> { // entity +pub struct ConcentricityTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -7234,15 +8394,21 @@ impl<'a> ParseFromChunks<'a> for ConcentricityTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, datum_system) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - datum_system, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, datum_system) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + datum_system, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConcentricityTolerance_<'a> { @@ -7255,7 +8421,8 @@ impl<'a> HasId for ConcentricityTolerance_<'a> { } } #[derive(Debug)] -pub struct ConceptFeatureOperator_<'a> { // entity +pub struct ConceptFeatureOperator_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -7275,10 +8442,14 @@ impl<'a> ParseFromChunks<'a> for ConceptFeatureOperator_<'a> { let (s, _) = tag("CONCEPT_FEATURE_OPERATOR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConceptFeatureOperator_<'a> { @@ -7288,7 +8459,8 @@ impl<'a> HasId for ConceptFeatureOperator_<'a> { } } #[derive(Debug)] -pub struct ConceptFeatureRelationship_<'a> { // entity +pub struct ConceptFeatureRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_product_concept_feature: ProductConceptFeature<'a>, @@ -7310,14 +8482,20 @@ impl<'a> ParseFromChunks<'a> for ConceptFeatureRelationship_<'a> { let (s, _) = tag("CONCEPT_FEATURE_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_product_concept_feature) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product_concept_feature) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_product_concept_feature, - related_product_concept_feature, - _marker: std::marker::PhantomData})) + let (s, relating_product_concept_feature) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_product_concept_feature) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_product_concept_feature, + related_product_concept_feature, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConceptFeatureRelationship_<'a> { @@ -7329,7 +8507,8 @@ impl<'a> HasId for ConceptFeatureRelationship_<'a> { } } #[derive(Debug)] -pub struct ConceptFeatureRelationshipWithCondition_<'a> { // entity +pub struct ConceptFeatureRelationshipWithCondition_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_product_concept_feature: ProductConceptFeature<'a>, @@ -7337,7 +8516,8 @@ pub struct ConceptFeatureRelationshipWithCondition_<'a> { // entity pub conditional_operator: ConceptFeatureOperator<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type ConceptFeatureRelationshipWithCondition<'a> = Id>; +pub type ConceptFeatureRelationshipWithCondition<'a> = + Id>; impl<'a> FromEntity<'a> for ConceptFeatureRelationshipWithCondition_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -7352,16 +8532,23 @@ impl<'a> ParseFromChunks<'a> for ConceptFeatureRelationshipWithCondition_<'a> { let (s, _) = tag("CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_product_concept_feature) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product_concept_feature) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, conditional_operator) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_product_concept_feature, - related_product_concept_feature, - conditional_operator, - _marker: std::marker::PhantomData})) + let (s, relating_product_concept_feature) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_product_concept_feature) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, conditional_operator) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_product_concept_feature, + related_product_concept_feature, + conditional_operator, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConceptFeatureRelationshipWithCondition_<'a> { @@ -7374,7 +8561,8 @@ impl<'a> HasId for ConceptFeatureRelationshipWithCondition_<'a> { } } #[derive(Debug)] -pub struct ConditionalConceptFeature_<'a> { // entity +pub struct ConditionalConceptFeature_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -7397,13 +8585,19 @@ impl<'a> ParseFromChunks<'a> for ConditionalConceptFeature_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, condition) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - condition, - _marker: std::marker::PhantomData})) + let (s, condition) = param_from_chunks::>( + true, s, &mut i, strs, + )?; + Ok(( + s, + Self { + id, + name, + description, + condition, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConditionalConceptFeature_<'a> { @@ -7415,7 +8609,8 @@ impl<'a> HasId for ConditionalConceptFeature_<'a> { } } #[derive(Debug)] -pub struct ConfigurableItem_<'a> { // entity +pub struct ConfigurableItem_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -7442,15 +8637,20 @@ impl<'a> ParseFromChunks<'a> for ConfigurableItem_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item_concept) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, purpose) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, item_concept_feature) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - item_concept, - purpose, - item_concept_feature, - _marker: std::marker::PhantomData})) + let (s, item_concept_feature) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + name, + description, + item_concept, + purpose, + item_concept_feature, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConfigurableItem_<'a> { @@ -7464,7 +8664,8 @@ impl<'a> HasId for ConfigurableItem_<'a> { } } #[derive(Debug)] -pub struct ConfigurationDefinition_<'a> { // entity +pub struct ConfigurationDefinition_<'a> { + // entity pub pair_values: Vec>, pub t_parameter: MotionParameterMeasure<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -7483,11 +8684,16 @@ impl<'a> ParseFromChunks<'a> for ConfigurationDefinition_<'a> { let mut i = 0; let (s, _) = tag("CONFIGURATION_DEFINITION(")(strs[0])?; let (s, pair_values) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, t_parameter) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - pair_values, - t_parameter, - _marker: std::marker::PhantomData})) + let (s, t_parameter) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + pair_values, + t_parameter, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConfigurationDefinition_<'a> { @@ -7497,7 +8703,8 @@ impl<'a> HasId for ConfigurationDefinition_<'a> { } } #[derive(Debug)] -pub struct ConfigurationDesign_<'a> { // entity +pub struct ConfigurationDesign_<'a> { + // entity pub configuration: ConfigurationItem<'a>, pub design: ConfigurationDesignItem<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -7515,12 +8722,17 @@ impl<'a> ParseFromChunks<'a> for ConfigurationDesign_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("CONFIGURATION_DESIGN(")(strs[0])?; - let (s, configuration) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, configuration) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, design) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - configuration, - design, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + configuration, + design, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConfigurationDesign_<'a> { @@ -7534,7 +8746,8 @@ pub struct ConfigurationDesignItem_<'a>(std::marker::PhantomData<&'a ()>); // am pub type ConfigurationDesignItem<'a> = Id>; #[derive(Debug)] -pub struct ConfigurationEffectivity_<'a> { // entity +pub struct ConfigurationEffectivity_<'a> { + // entity pub id: Identifier<'a>, pub usage: ProductDefinitionRelationship<'a>, pub configuration: ConfigurationDesign<'a>, @@ -7554,13 +8767,19 @@ impl<'a> ParseFromChunks<'a> for ConfigurationEffectivity_<'a> { let mut i = 0; let (s, _) = tag("CONFIGURATION_EFFECTIVITY(")(strs[0])?; let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, usage) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, configuration) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - usage, - configuration, - _marker: std::marker::PhantomData})) + let (s, usage) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, configuration) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + usage, + configuration, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConfigurationEffectivity_<'a> { @@ -7571,7 +8790,8 @@ impl<'a> HasId for ConfigurationEffectivity_<'a> { } } #[derive(Debug)] -pub struct ConfigurationInterpolation_<'a> { // entity +pub struct ConfigurationInterpolation_<'a> { + // entity pub previous_configuration_definition: ConfigurationDefinition<'a>, pub next_configuration_definition: ConfigurationDefinition<'a>, pub interpolation: InterpolationType<'a>, @@ -7590,14 +8810,20 @@ impl<'a> ParseFromChunks<'a> for ConfigurationInterpolation_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("CONFIGURATION_INTERPOLATION(")(strs[0])?; - let (s, previous_configuration_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, next_configuration_definition) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, previous_configuration_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, next_configuration_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, interpolation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - previous_configuration_definition, - next_configuration_definition, - interpolation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + previous_configuration_definition, + next_configuration_definition, + interpolation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConfigurationInterpolation_<'a> { @@ -7608,7 +8834,8 @@ impl<'a> HasId for ConfigurationInterpolation_<'a> { } } #[derive(Debug)] -pub struct ConfigurationItem_<'a> { // entity +pub struct ConfigurationItem_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -7634,13 +8861,17 @@ impl<'a> ParseFromChunks<'a> for ConfigurationItem_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item_concept) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, purpose) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - item_concept, - purpose, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + name, + description, + item_concept, + purpose, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConfigurationItem_<'a> { @@ -7653,7 +8884,8 @@ impl<'a> HasId for ConfigurationItem_<'a> { } } #[derive(Debug)] -pub struct ConfiguredEffectivityAssignment_<'a> { // entity +pub struct ConfiguredEffectivityAssignment_<'a> { + // entity pub assigned_effectivity: Effectivity<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -7671,12 +8903,18 @@ impl<'a> ParseFromChunks<'a> for ConfiguredEffectivityAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("CONFIGURED_EFFECTIVITY_ASSIGNMENT(")(strs[0])?; - let (s, assigned_effectivity) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_effectivity, - items, - _marker: std::marker::PhantomData})) + let (s, assigned_effectivity) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, items) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_effectivity, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConfiguredEffectivityAssignment_<'a> { @@ -7686,13 +8924,15 @@ impl<'a> HasId for ConfiguredEffectivityAssignment_<'a> { } } #[derive(Debug)] -pub struct ConfiguredEffectivityContextAssignment_<'a> { // entity +pub struct ConfiguredEffectivityContextAssignment_<'a> { + // entity pub assigned_effectivity_assignment: EffectivityAssignment<'a>, pub role: EffectivityContextRole<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, } -pub type ConfiguredEffectivityContextAssignment<'a> = Id>; +pub type ConfiguredEffectivityContextAssignment<'a> = + Id>; impl<'a> FromEntity<'a> for ConfiguredEffectivityContextAssignment_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -7705,14 +8945,20 @@ impl<'a> ParseFromChunks<'a> for ConfiguredEffectivityContextAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT(")(strs[0])?; - let (s, assigned_effectivity_assignment) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_effectivity_assignment) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_effectivity_assignment, - role, - items, - _marker: std::marker::PhantomData})) + let (s, items) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_effectivity_assignment, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConfiguredEffectivityContextAssignment_<'a> { @@ -7731,7 +8977,8 @@ pub struct ConfiguredEffectivityItem_<'a>(std::marker::PhantomData<&'a ()>); // pub type ConfiguredEffectivityItem<'a> = Id>; #[derive(Debug)] -pub struct Conic_<'a> { // entity +pub struct Conic_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -7751,10 +8998,14 @@ impl<'a> ParseFromChunks<'a> for Conic_<'a> { let (s, _) = tag("CONIC(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, position) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + position, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Conic_<'a> { @@ -7764,7 +9015,8 @@ impl<'a> HasId for Conic_<'a> { } } #[derive(Debug)] -pub struct ConicalSurface_<'a> { // entity +pub struct ConicalSurface_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement3d<'a>, pub radius: LengthMeasure<'a>, @@ -7788,12 +9040,16 @@ impl<'a> ParseFromChunks<'a> for ConicalSurface_<'a> { let (s, position) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, radius) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, semi_angle) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - radius, - semi_angle, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + position, + radius, + semi_angle, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConicalSurface_<'a> { @@ -7805,7 +9061,8 @@ impl<'a> HasId for ConicalSurface_<'a> { } } #[derive(Debug)] -pub struct ConnectedEdgeSet_<'a> { // entity +pub struct ConnectedEdgeSet_<'a> { + // entity pub name: Label<'a>, pub ces_edges: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -7825,10 +9082,14 @@ impl<'a> ParseFromChunks<'a> for ConnectedEdgeSet_<'a> { let (s, _) = tag("CONNECTED_EDGE_SET(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, ces_edges) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - ces_edges, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + ces_edges, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConnectedEdgeSet_<'a> { @@ -7838,7 +9099,8 @@ impl<'a> HasId for ConnectedEdgeSet_<'a> { } } #[derive(Debug)] -pub struct ConnectedFaceSet_<'a> { // entity +pub struct ConnectedFaceSet_<'a> { + // entity pub name: Label<'a>, pub cfs_faces: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -7858,10 +9120,14 @@ impl<'a> ParseFromChunks<'a> for ConnectedFaceSet_<'a> { let (s, _) = tag("CONNECTED_FACE_SET(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, cfs_faces) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - cfs_faces, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + cfs_faces, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConnectedFaceSet_<'a> { @@ -7871,7 +9137,8 @@ impl<'a> HasId for ConnectedFaceSet_<'a> { } } #[derive(Debug)] -pub struct ConnectedFaceSubSet_<'a> { // entity +pub struct ConnectedFaceSubSet_<'a> { + // entity pub name: Label<'a>, pub cfs_faces: Vec>, pub parent_face_set: ConnectedFaceSet<'a>, @@ -7892,12 +9159,17 @@ impl<'a> ParseFromChunks<'a> for ConnectedFaceSubSet_<'a> { let (s, _) = tag("CONNECTED_FACE_SUB_SET(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, cfs_faces) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, parent_face_set) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - cfs_faces, - parent_face_set, - _marker: std::marker::PhantomData})) + let (s, parent_face_set) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + cfs_faces, + parent_face_set, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConnectedFaceSubSet_<'a> { @@ -7908,7 +9180,8 @@ impl<'a> HasId for ConnectedFaceSubSet_<'a> { } } #[derive(Debug)] -pub struct ConstructiveGeometryRepresentation_<'a> { // entity +pub struct ConstructiveGeometryRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -7929,12 +9202,17 @@ impl<'a> ParseFromChunks<'a> for ConstructiveGeometryRepresentation_<'a> { let (s, _) = tag("CONSTRUCTIVE_GEOMETRY_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConstructiveGeometryRepresentation_<'a> { @@ -7945,14 +9223,16 @@ impl<'a> HasId for ConstructiveGeometryRepresentation_<'a> { } } #[derive(Debug)] -pub struct ConstructiveGeometryRepresentationRelationship_<'a> { // entity +pub struct ConstructiveGeometryRepresentationRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub rep_1: Representation<'a>, pub rep_2: Representation<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type ConstructiveGeometryRepresentationRelationship<'a> = Id>; +pub type ConstructiveGeometryRepresentationRelationship<'a> = + Id>; impl<'a> FromEntity<'a> for ConstructiveGeometryRepresentationRelationship_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -7969,12 +9249,16 @@ impl<'a> ParseFromChunks<'a> for ConstructiveGeometryRepresentationRelationship_ let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, rep_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, rep_2) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - rep_1, - rep_2, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + rep_1, + rep_2, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConstructiveGeometryRepresentationRelationship_<'a> { @@ -7986,7 +9270,8 @@ impl<'a> HasId for ConstructiveGeometryRepresentationRelationship_<'a> { } } #[derive(Debug)] -pub struct ContactRatioRepresentation_<'a> { // entity +pub struct ContactRatioRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -8007,12 +9292,17 @@ impl<'a> ParseFromChunks<'a> for ContactRatioRepresentation_<'a> { let (s, _) = tag("CONTACT_RATIO_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ContactRatioRepresentation_<'a> { @@ -8023,7 +9313,8 @@ impl<'a> HasId for ContactRatioRepresentation_<'a> { } } #[derive(Debug)] -pub struct ContextDependentInvisibility_<'a> { // entity +pub struct ContextDependentInvisibility_<'a> { + // entity pub invisible_items: Vec>, pub presentation_context: InvisibilityContext<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -8041,12 +9332,18 @@ impl<'a> ParseFromChunks<'a> for ContextDependentInvisibility_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("CONTEXT_DEPENDENT_INVISIBILITY(")(strs[0])?; - let (s, invisible_items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, presentation_context) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - invisible_items, - presentation_context, - _marker: std::marker::PhantomData})) + let (s, invisible_items) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, presentation_context) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + invisible_items, + presentation_context, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ContextDependentInvisibility_<'a> { @@ -8063,11 +9360,13 @@ impl<'a> Parse<'a> for ContextDependentMeasure<'a> { } } impl<'a> HasId for ContextDependentMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct ContextDependentOverRidingStyledItem_<'a> { // entity +pub struct ContextDependentOverRidingStyledItem_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -8089,17 +9388,23 @@ impl<'a> ParseFromChunks<'a> for ContextDependentOverRidingStyledItem_<'a> { let mut i = 0; let (s, _) = tag("CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, over_ridden_style) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, style_context) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - over_ridden_style, - style_context, - _marker: std::marker::PhantomData})) + let (s, style_context) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + styles, + item, + over_ridden_style, + style_context, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ContextDependentOverRidingStyledItem_<'a> { @@ -8112,7 +9417,8 @@ impl<'a> HasId for ContextDependentOverRidingStyledItem_<'a> { } } #[derive(Debug)] -pub struct ContextDependentShapeRepresentation_<'a> { // entity +pub struct ContextDependentShapeRepresentation_<'a> { + // entity pub representation_relation: ShapeRepresentationRelationship<'a>, pub represented_product_relation: ProductDefinitionShape<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -8130,12 +9436,18 @@ impl<'a> ParseFromChunks<'a> for ContextDependentShapeRepresentation_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(")(strs[0])?; - let (s, representation_relation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, represented_product_relation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - representation_relation, - represented_product_relation, - _marker: std::marker::PhantomData})) + let (s, representation_relation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, represented_product_relation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + representation_relation, + represented_product_relation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ContextDependentShapeRepresentation_<'a> { @@ -8145,7 +9457,8 @@ impl<'a> HasId for ContextDependentShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct ContextDependentUnit_<'a> { // entity +pub struct ContextDependentUnit_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -8163,12 +9476,17 @@ impl<'a> ParseFromChunks<'a> for ContextDependentUnit_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("CONTEXT_DEPENDENT_UNIT(")(strs[0])?; - let (s, dimensions) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, dimensions) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ContextDependentUnit_<'a> { @@ -8178,7 +9496,8 @@ impl<'a> HasId for ContextDependentUnit_<'a> { } } #[derive(Debug)] -pub struct Contract_<'a> { // entity +pub struct Contract_<'a> { + // entity pub name: Label<'a>, pub purpose: Text<'a>, pub kind: ContractType<'a>, @@ -8200,11 +9519,15 @@ impl<'a> ParseFromChunks<'a> for Contract_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, purpose) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, kind) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - purpose, - kind, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + purpose, + kind, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Contract_<'a> { @@ -8215,7 +9538,8 @@ impl<'a> HasId for Contract_<'a> { } } #[derive(Debug)] -pub struct ContractAssignment_<'a> { // entity +pub struct ContractAssignment_<'a> { + // entity pub assigned_contract: Contract<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -8233,9 +9557,13 @@ impl<'a> ParseFromChunks<'a> for ContractAssignment_<'a> { let mut i = 0; let (s, _) = tag("CONTRACT_ASSIGNMENT(")(strs[0])?; let (s, assigned_contract) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_contract, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_contract, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ContractAssignment_<'a> { @@ -8248,7 +9576,8 @@ pub struct ContractItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous sel pub type ContractItem<'a> = Id>; #[derive(Debug)] -pub struct ContractType_<'a> { // entity +pub struct ContractType_<'a> { + // entity pub description: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -8266,9 +9595,13 @@ impl<'a> ParseFromChunks<'a> for ContractType_<'a> { let mut i = 0; let (s, _) = tag("CONTRACT_TYPE(")(strs[0])?; let (s, description) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ContractType_<'a> { @@ -8277,7 +9610,8 @@ impl<'a> HasId for ContractType_<'a> { } } #[derive(Debug)] -pub struct ConversionBasedUnit_<'a> { // entity +pub struct ConversionBasedUnit_<'a> { + // entity pub name: Label<'a>, pub conversion_factor: MeasureWithUnit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -8297,11 +9631,16 @@ impl<'a> ParseFromChunks<'a> for ConversionBasedUnit_<'a> { let (s, _) = tag("CONVERSION_BASED_UNIT(")(strs[0])?; let (s, _) = param_from_chunks::(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, conversion_factor) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - conversion_factor, - _marker: std::marker::PhantomData})) + let (s, conversion_factor) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + conversion_factor, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ConversionBasedUnit_<'a> { @@ -8311,7 +9650,8 @@ impl<'a> HasId for ConversionBasedUnit_<'a> { } } #[derive(Debug)] -pub struct CoordinatedUniversalTimeOffset_<'a> { // entity +pub struct CoordinatedUniversalTimeOffset_<'a> { + // entity pub hour_offset: i64, pub minute_offset: Option, pub sense: AheadOrBehind<'a>, @@ -8333,11 +9673,15 @@ impl<'a> ParseFromChunks<'a> for CoordinatedUniversalTimeOffset_<'a> { let (s, hour_offset) = param_from_chunks::(false, s, &mut i, strs)?; let (s, minute_offset) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, sense) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - hour_offset, - minute_offset, - sense, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + hour_offset, + minute_offset, + sense, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CoordinatedUniversalTimeOffset_<'a> { @@ -8348,7 +9692,8 @@ impl<'a> HasId for CoordinatedUniversalTimeOffset_<'a> { } } #[derive(Debug)] -pub struct CosFunction_<'a> { // entity +pub struct CosFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -8366,9 +9711,13 @@ impl<'a> ParseFromChunks<'a> for CosFunction_<'a> { let mut i = 0; let (s, _) = tag("COS_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CosFunction_<'a> { @@ -8384,7 +9733,8 @@ impl<'a> Parse<'a> for CountMeasure<'a> { } } impl<'a> HasId for CountMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] @@ -8396,7 +9746,8 @@ pub struct CsgSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous select pub type CsgSelect<'a> = Id>; #[derive(Debug)] -pub struct CsgShapeRepresentation_<'a> { // entity +pub struct CsgShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -8417,12 +9768,17 @@ impl<'a> ParseFromChunks<'a> for CsgShapeRepresentation_<'a> { let (s, _) = tag("CSG_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CsgShapeRepresentation_<'a> { @@ -8433,7 +9789,8 @@ impl<'a> HasId for CsgShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct CsgSolid_<'a> { // entity +pub struct CsgSolid_<'a> { + // entity pub name: Label<'a>, pub tree_root_expression: CsgSelect<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -8453,10 +9810,14 @@ impl<'a> ParseFromChunks<'a> for CsgSolid_<'a> { let (s, _) = tag("CSG_SOLID(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, tree_root_expression) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - tree_root_expression, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + tree_root_expression, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CsgSolid_<'a> { @@ -8466,7 +9827,8 @@ impl<'a> HasId for CsgSolid_<'a> { } } #[derive(Debug)] -pub struct Curve_<'a> { // entity +pub struct Curve_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -8484,9 +9846,13 @@ impl<'a> ParseFromChunks<'a> for Curve_<'a> { let mut i = 0; let (s, _) = tag("CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Curve_<'a> { @@ -8495,7 +9861,8 @@ impl<'a> HasId for Curve_<'a> { } } #[derive(Debug)] -pub struct CurveBoundedSurface_<'a> { // entity +pub struct CurveBoundedSurface_<'a> { + // entity pub name: Label<'a>, pub basis_surface: Surface<'a>, pub boundaries: Vec>, @@ -8519,12 +9886,16 @@ impl<'a> ParseFromChunks<'a> for CurveBoundedSurface_<'a> { let (s, basis_surface) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, boundaries) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, implicit_outer) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - basis_surface, - boundaries, - implicit_outer, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + basis_surface, + boundaries, + implicit_outer, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CurveBoundedSurface_<'a> { @@ -8536,7 +9907,8 @@ impl<'a> HasId for CurveBoundedSurface_<'a> { } } #[derive(Debug)] -pub struct CurveDimension_<'a> { // entity +pub struct CurveDimension_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -8555,11 +9927,16 @@ impl<'a> ParseFromChunks<'a> for CurveDimension_<'a> { let mut i = 0; let (s, _) = tag("CURVE_DIMENSION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CurveDimension_<'a> { @@ -8581,7 +9958,8 @@ pub struct CurveOrRender_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous se pub type CurveOrRender<'a> = Id>; #[derive(Debug)] -pub struct CurveReplica_<'a> { // entity +pub struct CurveReplica_<'a> { + // entity pub name: Label<'a>, pub parent_curve: Curve<'a>, pub transformation: CartesianTransformationOperator<'a>, @@ -8602,12 +9980,17 @@ impl<'a> ParseFromChunks<'a> for CurveReplica_<'a> { let (s, _) = tag("CURVE_REPLICA(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, parent_curve) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transformation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - parent_curve, - transformation, - _marker: std::marker::PhantomData})) + let (s, transformation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + parent_curve, + transformation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CurveReplica_<'a> { @@ -8618,7 +10001,8 @@ impl<'a> HasId for CurveReplica_<'a> { } } #[derive(Debug)] -pub struct CurveStyle_<'a> { // entity +pub struct CurveStyle_<'a> { + // entity pub name: Label<'a>, pub curve_font: CurveFontOrScaledCurveFontSelect<'a>, pub curve_width: SizeSelect<'a>, @@ -8639,15 +10023,20 @@ impl<'a> ParseFromChunks<'a> for CurveStyle_<'a> { let mut i = 0; let (s, _) = tag("CURVE_STYLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, curve_font) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, curve_font) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_width) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_colour) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - curve_font, - curve_width, - curve_colour, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + curve_font, + curve_width, + curve_colour, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CurveStyle_<'a> { @@ -8659,7 +10048,8 @@ impl<'a> HasId for CurveStyle_<'a> { } } #[derive(Debug)] -pub struct CurveStyleFont_<'a> { // entity +pub struct CurveStyleFont_<'a> { + // entity pub name: Label<'a>, pub pattern_list: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -8678,11 +10068,16 @@ impl<'a> ParseFromChunks<'a> for CurveStyleFont_<'a> { let mut i = 0; let (s, _) = tag("CURVE_STYLE_FONT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, pattern_list) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - pattern_list, - _marker: std::marker::PhantomData})) + let (s, pattern_list) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + pattern_list, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CurveStyleFont_<'a> { @@ -8692,7 +10087,8 @@ impl<'a> HasId for CurveStyleFont_<'a> { } } #[derive(Debug)] -pub struct CurveStyleFontPattern_<'a> { // entity +pub struct CurveStyleFontPattern_<'a> { + // entity pub visible_segment_length: PositiveLengthMeasure<'a>, pub invisible_segment_length: PositiveLengthMeasure<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -8710,12 +10106,18 @@ impl<'a> ParseFromChunks<'a> for CurveStyleFontPattern_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("CURVE_STYLE_FONT_PATTERN(")(strs[0])?; - let (s, visible_segment_length) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, invisible_segment_length) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - visible_segment_length, - invisible_segment_length, - _marker: std::marker::PhantomData})) + let (s, visible_segment_length) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, invisible_segment_length) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + visible_segment_length, + invisible_segment_length, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CurveStyleFontPattern_<'a> { @@ -8729,7 +10131,8 @@ pub struct CurveStyleFontSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambig pub type CurveStyleFontSelect<'a> = Id>; #[derive(Debug)] -pub struct CurveStyleRendering_<'a> { // entity +pub struct CurveStyleRendering_<'a> { + // entity pub rendering_method: ShadingCurveMethod<'a>, pub rendering_properties: SurfaceRenderingProperties<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -8747,12 +10150,18 @@ impl<'a> ParseFromChunks<'a> for CurveStyleRendering_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("CURVE_STYLE_RENDERING(")(strs[0])?; - let (s, rendering_method) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, rendering_properties) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - rendering_method, - rendering_properties, - _marker: std::marker::PhantomData})) + let (s, rendering_method) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, rendering_properties) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + rendering_method, + rendering_properties, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CurveStyleRendering_<'a> { @@ -8762,7 +10171,8 @@ impl<'a> HasId for CurveStyleRendering_<'a> { } } #[derive(Debug)] -pub struct CurveSweptSolidShapeRepresentation_<'a> { // entity +pub struct CurveSweptSolidShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -8783,12 +10193,17 @@ impl<'a> ParseFromChunks<'a> for CurveSweptSolidShapeRepresentation_<'a> { let (s, _) = tag("CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CurveSweptSolidShapeRepresentation_<'a> { @@ -8800,10 +10215,15 @@ impl<'a> HasId for CurveSweptSolidShapeRepresentation_<'a> { } #[derive(Debug)] -pub struct CurveToleranceDeviation<'a>(pub PositiveLengthMeasure<'a>, std::marker::PhantomData<&'a ()>); // redeclared +pub struct CurveToleranceDeviation<'a>( + pub PositiveLengthMeasure<'a>, + std::marker::PhantomData<&'a ()>, +); // redeclared impl<'a> Parse<'a> for CurveToleranceDeviation<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(PositiveLengthMeasure::parse, |r| Self(r, std::marker::PhantomData))(s) + map(PositiveLengthMeasure::parse, |r| { + Self(r, std::marker::PhantomData) + })(s) } } impl<'a> HasId for CurveToleranceDeviation<'a> { @@ -8820,11 +10240,13 @@ impl<'a> Parse<'a> for CurveToleranceParameter<'a> { } } impl<'a> HasId for CurveToleranceParameter<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct CylindricalPair_<'a> { // entity +pub struct CylindricalPair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -8847,16 +10269,22 @@ impl<'a> ParseFromChunks<'a> for CylindricalPair_<'a> { let (s, _) = tag("CYLINDRICAL_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CylindricalPair_<'a> { @@ -8869,7 +10297,8 @@ impl<'a> HasId for CylindricalPair_<'a> { } } #[derive(Debug)] -pub struct CylindricalPairRange_<'a> { // entity +pub struct CylindricalPairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub lower_limit_actual_translation: TranslationalRangeMeasure<'a>, pub upper_limit_actual_translation: TranslationalRangeMeasure<'a>, @@ -8891,17 +10320,25 @@ impl<'a> ParseFromChunks<'a> for CylindricalPairRange_<'a> { let mut i = 0; let (s, _) = tag("CYLINDRICAL_PAIR_RANGE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_actual_translation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_actual_translation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_actual_rotation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_actual_rotation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - lower_limit_actual_translation, - upper_limit_actual_translation, - lower_limit_actual_rotation, - upper_limit_actual_rotation, - _marker: std::marker::PhantomData})) + let (s, lower_limit_actual_translation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_actual_translation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, lower_limit_actual_rotation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_actual_rotation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + lower_limit_actual_translation, + upper_limit_actual_translation, + lower_limit_actual_rotation, + upper_limit_actual_rotation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CylindricalPairRange_<'a> { @@ -8914,7 +10351,8 @@ impl<'a> HasId for CylindricalPairRange_<'a> { } } #[derive(Debug)] -pub struct CylindricalPairValue_<'a> { // entity +pub struct CylindricalPairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_translation: LengthMeasure<'a>, pub actual_rotation: PlaneAngleMeasure<'a>, @@ -8934,13 +10372,19 @@ impl<'a> ParseFromChunks<'a> for CylindricalPairValue_<'a> { let mut i = 0; let (s, _) = tag("CYLINDRICAL_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_translation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_rotation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_translation, - actual_rotation, - _marker: std::marker::PhantomData})) + let (s, actual_translation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, actual_rotation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_translation, + actual_rotation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CylindricalPairValue_<'a> { @@ -8951,7 +10395,8 @@ impl<'a> HasId for CylindricalPairValue_<'a> { } } #[derive(Debug)] -pub struct CylindricalSurface_<'a> { // entity +pub struct CylindricalSurface_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement3d<'a>, pub radius: PositiveLengthMeasure<'a>, @@ -8973,11 +10418,15 @@ impl<'a> ParseFromChunks<'a> for CylindricalSurface_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, position) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, radius) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - radius, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + position, + radius, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CylindricalSurface_<'a> { @@ -8988,7 +10437,8 @@ impl<'a> HasId for CylindricalSurface_<'a> { } } #[derive(Debug)] -pub struct CylindricityTolerance_<'a> { // entity +pub struct CylindricityTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -9011,13 +10461,18 @@ impl<'a> ParseFromChunks<'a> for CylindricityTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for CylindricityTolerance_<'a> { @@ -9029,7 +10484,8 @@ impl<'a> HasId for CylindricityTolerance_<'a> { } } #[derive(Debug)] -pub struct DataEnvironment_<'a> { // entity +pub struct DataEnvironment_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub elements: Vec>, @@ -9050,12 +10506,17 @@ impl<'a> ParseFromChunks<'a> for DataEnvironment_<'a> { let (s, _) = tag("DATA_ENVIRONMENT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, elements) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - elements, - _marker: std::marker::PhantomData})) + let (s, elements) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + elements, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DataEnvironment_<'a> { @@ -9066,7 +10527,8 @@ impl<'a> HasId for DataEnvironment_<'a> { } } #[derive(Debug)] -pub struct Date_<'a> { // entity +pub struct Date_<'a> { + // entity pub year_component: YearNumber<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -9084,9 +10546,13 @@ impl<'a> ParseFromChunks<'a> for Date_<'a> { let mut i = 0; let (s, _) = tag("DATE(")(strs[0])?; let (s, year_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - year_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + year_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Date_<'a> { @@ -9095,7 +10561,8 @@ impl<'a> HasId for Date_<'a> { } } #[derive(Debug)] -pub struct DateAndTime_<'a> { // entity +pub struct DateAndTime_<'a> { + // entity pub date_component: Date<'a>, pub time_component: LocalTime<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -9115,10 +10582,14 @@ impl<'a> ParseFromChunks<'a> for DateAndTime_<'a> { let (s, _) = tag("DATE_AND_TIME(")(strs[0])?; let (s, date_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, time_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - date_component, - time_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + date_component, + time_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DateAndTime_<'a> { @@ -9128,7 +10599,8 @@ impl<'a> HasId for DateAndTime_<'a> { } } #[derive(Debug)] -pub struct DateAndTimeAssignment_<'a> { // entity +pub struct DateAndTimeAssignment_<'a> { + // entity pub assigned_date_and_time: DateAndTime<'a>, pub role: DateTimeRole<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -9146,12 +10618,17 @@ impl<'a> ParseFromChunks<'a> for DateAndTimeAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("DATE_AND_TIME_ASSIGNMENT(")(strs[0])?; - let (s, assigned_date_and_time) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_date_and_time) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_date_and_time, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_date_and_time, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DateAndTimeAssignment_<'a> { @@ -9165,7 +10642,8 @@ pub struct DateAndTimeItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous pub type DateAndTimeItem<'a> = Id>; #[derive(Debug)] -pub struct DateAssignment_<'a> { // entity +pub struct DateAssignment_<'a> { + // entity pub assigned_date: Date<'a>, pub role: DateRole<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -9185,10 +10663,14 @@ impl<'a> ParseFromChunks<'a> for DateAssignment_<'a> { let (s, _) = tag("DATE_ASSIGNMENT(")(strs[0])?; let (s, assigned_date) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_date, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_date, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DateAssignment_<'a> { @@ -9202,7 +10684,8 @@ pub struct DateItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous select pub type DateItem<'a> = Id>; #[derive(Debug)] -pub struct DateRole_<'a> { // entity +pub struct DateRole_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -9220,9 +10703,13 @@ impl<'a> ParseFromChunks<'a> for DateRole_<'a> { let mut i = 0; let (s, _) = tag("DATE_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DateRole_<'a> { @@ -9235,7 +10722,8 @@ pub struct DateTimeOrEventOccurrence_<'a>(std::marker::PhantomData<&'a ()>); // pub type DateTimeOrEventOccurrence<'a> = Id>; #[derive(Debug)] -pub struct DateTimeRole_<'a> { // entity +pub struct DateTimeRole_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -9253,9 +10741,13 @@ impl<'a> ParseFromChunks<'a> for DateTimeRole_<'a> { let mut i = 0; let (s, _) = tag("DATE_TIME_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DateTimeRole_<'a> { @@ -9268,7 +10760,8 @@ pub struct DateTimeSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous s pub type DateTimeSelect<'a> = Id>; #[derive(Debug)] -pub struct DatedEffectivity_<'a> { // entity +pub struct DatedEffectivity_<'a> { + // entity pub id: Identifier<'a>, pub effectivity_end_date: Option>, pub effectivity_start_date: DateTimeOrEventOccurrence<'a>, @@ -9288,13 +10781,19 @@ impl<'a> ParseFromChunks<'a> for DatedEffectivity_<'a> { let mut i = 0; let (s, _) = tag("DATED_EFFECTIVITY(")(strs[0])?; let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, effectivity_end_date) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, effectivity_start_date) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - effectivity_end_date, - effectivity_start_date, - _marker: std::marker::PhantomData})) + let (s, effectivity_end_date) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, effectivity_start_date) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + effectivity_end_date, + effectivity_start_date, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DatedEffectivity_<'a> { @@ -9305,7 +10804,8 @@ impl<'a> HasId for DatedEffectivity_<'a> { } } #[derive(Debug)] -pub struct Datum_<'a> { // entity +pub struct Datum_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -9328,16 +10828,21 @@ impl<'a> ParseFromChunks<'a> for Datum_<'a> { let (s, _) = tag("DATUM(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(false, s, &mut i, strs)?; let (s, identification) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - identification, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + identification, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Datum_<'a> { @@ -9350,7 +10855,8 @@ impl<'a> HasId for Datum_<'a> { } } #[derive(Debug)] -pub struct DatumFeature_<'a> { // entity +pub struct DatumFeature_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -9372,14 +10878,19 @@ impl<'a> ParseFromChunks<'a> for DatumFeature_<'a> { let (s, _) = tag("DATUM_FEATURE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DatumFeature_<'a> { @@ -9391,7 +10902,8 @@ impl<'a> HasId for DatumFeature_<'a> { } } #[derive(Debug)] -pub struct DatumFeatureCallout_<'a> { // entity +pub struct DatumFeatureCallout_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -9410,11 +10922,16 @@ impl<'a> ParseFromChunks<'a> for DatumFeatureCallout_<'a> { let mut i = 0; let (s, _) = tag("DATUM_FEATURE_CALLOUT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DatumFeatureCallout_<'a> { @@ -9424,7 +10941,8 @@ impl<'a> HasId for DatumFeatureCallout_<'a> { } } #[derive(Debug)] -pub struct DatumReference_<'a> { // entity +pub struct DatumReference_<'a> { + // entity pub precedence: i64, pub referenced_datum: Datum<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -9444,10 +10962,14 @@ impl<'a> ParseFromChunks<'a> for DatumReference_<'a> { let (s, _) = tag("DATUM_REFERENCE(")(strs[0])?; let (s, precedence) = param_from_chunks::(false, s, &mut i, strs)?; let (s, referenced_datum) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - precedence, - referenced_datum, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + precedence, + referenced_datum, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DatumReference_<'a> { @@ -9457,7 +10979,8 @@ impl<'a> HasId for DatumReference_<'a> { } } #[derive(Debug)] -pub struct DatumTarget_<'a> { // entity +pub struct DatumTarget_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -9480,16 +11003,21 @@ impl<'a> ParseFromChunks<'a> for DatumTarget_<'a> { let (s, _) = tag("DATUM_TARGET(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(false, s, &mut i, strs)?; let (s, target_id) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - target_id, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + target_id, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DatumTarget_<'a> { @@ -9502,7 +11030,8 @@ impl<'a> HasId for DatumTarget_<'a> { } } #[derive(Debug)] -pub struct DatumTargetCallout_<'a> { // entity +pub struct DatumTargetCallout_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -9521,11 +11050,16 @@ impl<'a> ParseFromChunks<'a> for DatumTargetCallout_<'a> { let mut i = 0; let (s, _) = tag("DATUM_TARGET_CALLOUT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DatumTargetCallout_<'a> { @@ -9542,11 +11076,13 @@ impl<'a> Parse<'a> for DayInMonthNumber<'a> { } } impl<'a> HasId for DayInMonthNumber<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct DefaultToleranceTable_<'a> { // entity +pub struct DefaultToleranceTable_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -9567,12 +11103,17 @@ impl<'a> ParseFromChunks<'a> for DefaultToleranceTable_<'a> { let (s, _) = tag("DEFAULT_TOLERANCE_TABLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DefaultToleranceTable_<'a> { @@ -9583,7 +11124,8 @@ impl<'a> HasId for DefaultToleranceTable_<'a> { } } #[derive(Debug)] -pub struct DefaultToleranceTableCell_<'a> { // entity +pub struct DefaultToleranceTableCell_<'a> { + // entity pub name: Label<'a>, pub item_element: CompoundItemDefinition<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -9602,11 +11144,16 @@ impl<'a> ParseFromChunks<'a> for DefaultToleranceTableCell_<'a> { let mut i = 0; let (s, _) = tag("DEFAULT_TOLERANCE_TABLE_CELL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, item_element) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - item_element, - _marker: std::marker::PhantomData})) + let (s, item_element) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + item_element, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DefaultToleranceTableCell_<'a> { @@ -9616,7 +11163,8 @@ impl<'a> HasId for DefaultToleranceTableCell_<'a> { } } #[derive(Debug)] -pub struct DefinedCharacterGlyph_<'a> { // entity +pub struct DefinedCharacterGlyph_<'a> { + // entity pub name: Label<'a>, pub definition: DefinedGlyphSelect<'a>, pub placement: Axis2Placement<'a>, @@ -9638,11 +11186,15 @@ impl<'a> ParseFromChunks<'a> for DefinedCharacterGlyph_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, definition) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, placement) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - definition, - placement, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + definition, + placement, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DefinedCharacterGlyph_<'a> { @@ -9653,7 +11205,8 @@ impl<'a> HasId for DefinedCharacterGlyph_<'a> { } } #[derive(Debug)] -pub struct DefinedFunction_<'a> { // entity +pub struct DefinedFunction_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type DefinedFunction<'a> = Id>; @@ -9668,20 +11221,24 @@ impl<'a> FromEntity<'a> for DefinedFunction_<'a> { impl<'a> ParseFromChunks<'a> for DefinedFunction_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("DEFINED_FUNCTION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DefinedFunction_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] pub struct DefinedGlyphSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous select pub type DefinedGlyphSelect<'a> = Id>; #[derive(Debug)] -pub struct DefinedSymbol_<'a> { // entity +pub struct DefinedSymbol_<'a> { + // entity pub name: Label<'a>, pub definition: DefinedSymbolSelect<'a>, pub target: SymbolTarget<'a>, @@ -9703,11 +11260,15 @@ impl<'a> ParseFromChunks<'a> for DefinedSymbol_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, definition) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, target) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - definition, - target, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + definition, + target, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DefinedSymbol_<'a> { @@ -9722,7 +11283,8 @@ pub struct DefinedSymbolSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambigu pub type DefinedSymbolSelect<'a> = Id>; #[derive(Debug)] -pub struct DefinitionalRepresentation_<'a> { // entity +pub struct DefinitionalRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -9743,12 +11305,17 @@ impl<'a> ParseFromChunks<'a> for DefinitionalRepresentation_<'a> { let (s, _) = tag("DEFINITIONAL_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DefinitionalRepresentation_<'a> { @@ -9759,7 +11326,8 @@ impl<'a> HasId for DefinitionalRepresentation_<'a> { } } #[derive(Debug)] -pub struct DegeneratePcurve_<'a> { // entity +pub struct DegeneratePcurve_<'a> { + // entity pub name: Label<'a>, pub basis_surface: Surface<'a>, pub reference_to_curve: DefinitionalRepresentation<'a>, @@ -9780,12 +11348,17 @@ impl<'a> ParseFromChunks<'a> for DegeneratePcurve_<'a> { let (s, _) = tag("DEGENERATE_PCURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, basis_surface) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, reference_to_curve) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - basis_surface, - reference_to_curve, - _marker: std::marker::PhantomData})) + let (s, reference_to_curve) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + basis_surface, + reference_to_curve, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DegeneratePcurve_<'a> { @@ -9796,7 +11369,8 @@ impl<'a> HasId for DegeneratePcurve_<'a> { } } #[derive(Debug)] -pub struct DegenerateToroidalSurface_<'a> { // entity +pub struct DegenerateToroidalSurface_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement3d<'a>, pub major_radius: PositiveLengthMeasure<'a>, @@ -9819,16 +11393,22 @@ impl<'a> ParseFromChunks<'a> for DegenerateToroidalSurface_<'a> { let (s, _) = tag("DEGENERATE_TOROIDAL_SURFACE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, position) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, major_radius) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, minor_radius) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, major_radius) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, minor_radius) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, select_outer) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - major_radius, - minor_radius, - select_outer, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + position, + major_radius, + minor_radius, + select_outer, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DegenerateToroidalSurface_<'a> { @@ -9845,7 +11425,8 @@ pub struct DerivedPropertySelect_<'a>(std::marker::PhantomData<&'a ()>); // ambi pub type DerivedPropertySelect<'a> = Id>; #[derive(Debug)] -pub struct DerivedShapeAspect_<'a> { // entity +pub struct DerivedShapeAspect_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -9867,14 +11448,19 @@ impl<'a> ParseFromChunks<'a> for DerivedShapeAspect_<'a> { let (s, _) = tag("DERIVED_SHAPE_ASPECT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DerivedShapeAspect_<'a> { @@ -9886,7 +11472,8 @@ impl<'a> HasId for DerivedShapeAspect_<'a> { } } #[derive(Debug)] -pub struct DerivedUnit_<'a> { // entity +pub struct DerivedUnit_<'a> { + // entity pub elements: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -9903,10 +11490,15 @@ impl<'a> ParseFromChunks<'a> for DerivedUnit_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("DERIVED_UNIT(")(strs[0])?; - let (s, elements) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - elements, - _marker: std::marker::PhantomData})) + let (s, elements) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + elements, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DerivedUnit_<'a> { @@ -9915,7 +11507,8 @@ impl<'a> HasId for DerivedUnit_<'a> { } } #[derive(Debug)] -pub struct DerivedUnitElement_<'a> { // entity +pub struct DerivedUnitElement_<'a> { + // entity pub unit: NamedUnit<'a>, pub exponent: f64, _marker: std::marker::PhantomData<&'a ()>, @@ -9935,10 +11528,14 @@ impl<'a> ParseFromChunks<'a> for DerivedUnitElement_<'a> { let (s, _) = tag("DERIVED_UNIT_ELEMENT(")(strs[0])?; let (s, unit) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, exponent) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - unit, - exponent, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + unit, + exponent, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DerivedUnitElement_<'a> { @@ -9948,7 +11545,8 @@ impl<'a> HasId for DerivedUnitElement_<'a> { } } #[derive(Debug)] -pub struct DerivedUnitVariable_<'a> { // entity +pub struct DerivedUnitVariable_<'a> { + // entity pub elements: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -9965,10 +11563,15 @@ impl<'a> ParseFromChunks<'a> for DerivedUnitVariable_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("DERIVED_UNIT_VARIABLE(")(strs[0])?; - let (s, elements) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - elements, - _marker: std::marker::PhantomData})) + let (s, elements) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + elements, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DerivedUnitVariable_<'a> { @@ -9977,7 +11580,8 @@ impl<'a> HasId for DerivedUnitVariable_<'a> { } } #[derive(Debug)] -pub struct DescriptionAttribute_<'a> { // entity +pub struct DescriptionAttribute_<'a> { + // entity pub attribute_value: Text<'a>, pub described_item: DescriptionAttributeSelect<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -9996,11 +11600,16 @@ impl<'a> ParseFromChunks<'a> for DescriptionAttribute_<'a> { let mut i = 0; let (s, _) = tag("DESCRIPTION_ATTRIBUTE(")(strs[0])?; let (s, attribute_value) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, described_item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - attribute_value, - described_item, - _marker: std::marker::PhantomData})) + let (s, described_item) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + attribute_value, + described_item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DescriptionAttribute_<'a> { @@ -10021,11 +11630,13 @@ impl<'a> Parse<'a> for DescriptiveMeasure<'a> { } } impl<'a> HasId for DescriptiveMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct DescriptiveRepresentationItem_<'a> { // entity +pub struct DescriptiveRepresentationItem_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -10045,10 +11656,14 @@ impl<'a> ParseFromChunks<'a> for DescriptiveRepresentationItem_<'a> { let (s, _) = tag("DESCRIPTIVE_REPRESENTATION_ITEM(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DescriptiveRepresentationItem_<'a> { @@ -10058,7 +11673,8 @@ impl<'a> HasId for DescriptiveRepresentationItem_<'a> { } } #[derive(Debug)] -pub struct DiameterDimension_<'a> { // entity +pub struct DiameterDimension_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -10077,11 +11693,16 @@ impl<'a> ParseFromChunks<'a> for DiameterDimension_<'a> { let mut i = 0; let (s, _) = tag("DIAMETER_DIMENSION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DiameterDimension_<'a> { @@ -10091,7 +11712,8 @@ impl<'a> HasId for DiameterDimension_<'a> { } } #[derive(Debug)] -pub struct DimensionCallout_<'a> { // entity +pub struct DimensionCallout_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -10110,11 +11732,16 @@ impl<'a> ParseFromChunks<'a> for DimensionCallout_<'a> { let mut i = 0; let (s, _) = tag("DIMENSION_CALLOUT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionCallout_<'a> { @@ -10124,7 +11751,8 @@ impl<'a> HasId for DimensionCallout_<'a> { } } #[derive(Debug)] -pub struct DimensionCalloutComponentRelationship_<'a> { // entity +pub struct DimensionCalloutComponentRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub relating_draughting_callout: DraughtingCallout<'a>, @@ -10146,14 +11774,20 @@ impl<'a> ParseFromChunks<'a> for DimensionCalloutComponentRelationship_<'a> { let (s, _) = tag("DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, relating_draughting_callout) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_draughting_callout) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_draughting_callout, - related_draughting_callout, - _marker: std::marker::PhantomData})) + let (s, relating_draughting_callout) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_draughting_callout) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_draughting_callout, + related_draughting_callout, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionCalloutComponentRelationship_<'a> { @@ -10165,7 +11799,8 @@ impl<'a> HasId for DimensionCalloutComponentRelationship_<'a> { } } #[derive(Debug)] -pub struct DimensionCalloutRelationship_<'a> { // entity +pub struct DimensionCalloutRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub relating_draughting_callout: DraughtingCallout<'a>, @@ -10187,14 +11822,20 @@ impl<'a> ParseFromChunks<'a> for DimensionCalloutRelationship_<'a> { let (s, _) = tag("DIMENSION_CALLOUT_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, relating_draughting_callout) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_draughting_callout) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_draughting_callout, - related_draughting_callout, - _marker: std::marker::PhantomData})) + let (s, relating_draughting_callout) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_draughting_callout) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_draughting_callout, + related_draughting_callout, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionCalloutRelationship_<'a> { @@ -10213,11 +11854,13 @@ impl<'a> Parse<'a> for DimensionCount<'a> { } } impl<'a> HasId for DimensionCount<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct DimensionCurve_<'a> { // entity +pub struct DimensionCurve_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -10237,13 +11880,18 @@ impl<'a> ParseFromChunks<'a> for DimensionCurve_<'a> { let mut i = 0; let (s, _) = tag("DIMENSION_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + styles, + item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionCurve_<'a> { @@ -10254,7 +11902,8 @@ impl<'a> HasId for DimensionCurve_<'a> { } } #[derive(Debug)] -pub struct DimensionCurveDirectedCallout_<'a> { // entity +pub struct DimensionCurveDirectedCallout_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -10273,11 +11922,16 @@ impl<'a> ParseFromChunks<'a> for DimensionCurveDirectedCallout_<'a> { let mut i = 0; let (s, _) = tag("DIMENSION_CURVE_DIRECTED_CALLOUT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionCurveDirectedCallout_<'a> { @@ -10287,7 +11941,8 @@ impl<'a> HasId for DimensionCurveDirectedCallout_<'a> { } } #[derive(Debug)] -pub struct DimensionCurveTerminator_<'a> { // entity +pub struct DimensionCurveTerminator_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -10309,17 +11964,23 @@ impl<'a> ParseFromChunks<'a> for DimensionCurveTerminator_<'a> { let mut i = 0; let (s, _) = tag("DIMENSION_CURVE_TERMINATOR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, annotated_curve) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, annotated_curve) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - annotated_curve, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + styles, + item, + annotated_curve, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionCurveTerminator_<'a> { @@ -10332,7 +11993,8 @@ impl<'a> HasId for DimensionCurveTerminator_<'a> { } } #[derive(Debug)] -pub enum DimensionExtentUsage<'a> { // enum +pub enum DimensionExtentUsage<'a> { + // enum Origin, Target, _Unused(std::marker::PhantomData<&'a ()>), @@ -10350,11 +12012,13 @@ impl<'a> Parse<'a> for DimensionExtentUsage<'a> { } } impl<'a> HasId for DimensionExtentUsage<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct DimensionPair_<'a> { // entity +pub struct DimensionPair_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub relating_draughting_callout: DraughtingCallout<'a>, @@ -10376,14 +12040,20 @@ impl<'a> ParseFromChunks<'a> for DimensionPair_<'a> { let (s, _) = tag("DIMENSION_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, relating_draughting_callout) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_draughting_callout) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_draughting_callout, - related_draughting_callout, - _marker: std::marker::PhantomData})) + let (s, relating_draughting_callout) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_draughting_callout) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_draughting_callout, + related_draughting_callout, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionPair_<'a> { @@ -10395,7 +12065,8 @@ impl<'a> HasId for DimensionPair_<'a> { } } #[derive(Debug)] -pub struct DimensionRelatedToleranceZoneElement_<'a> { // entity +pub struct DimensionRelatedToleranceZoneElement_<'a> { + // entity pub related_dimension: DimensionalLocation<'a>, pub related_element: ToleranceZoneDefinition<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -10413,12 +12084,18 @@ impl<'a> ParseFromChunks<'a> for DimensionRelatedToleranceZoneElement_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("DIMENSION_RELATED_TOLERANCE_ZONE_ELEMENT(")(strs[0])?; - let (s, related_dimension) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_element) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - related_dimension, - related_element, - _marker: std::marker::PhantomData})) + let (s, related_dimension) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_element) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + related_dimension, + related_element, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionRelatedToleranceZoneElement_<'a> { @@ -10429,7 +12106,8 @@ impl<'a> HasId for DimensionRelatedToleranceZoneElement_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct DimensionTextAssociativity_<'a> { // entity +pub struct DimensionTextAssociativity_<'a> { + // entity pub representation_item__name: Label<'a>, pub literal: PresentableText<'a>, pub placement: Axis2Placement<'a>, @@ -10454,24 +12132,31 @@ impl<'a> ParseFromChunks<'a> for DimensionTextAssociativity_<'a> { let mut i = 0; let (s, _) = tag("DIMENSION_TEXT_ASSOCIATIVITY(")(strs[0])?; #[allow(non_snake_case)] - let (s, representation_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, representation_item__name) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, literal) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, placement) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, alignment) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, path) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, font) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_source) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_target) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - representation_item__name, - literal, - placement, - alignment, - path, - font, - mapping_source, - mapping_target, - _marker: std::marker::PhantomData})) + let (s, mapping_source) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, mapping_target) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + representation_item__name, + literal, + placement, + alignment, + path, + font, + mapping_source, + mapping_target, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionTextAssociativity_<'a> { @@ -10491,12 +12176,14 @@ pub struct DimensionalCharacteristic_<'a>(std::marker::PhantomData<&'a ()>); // pub type DimensionalCharacteristic<'a> = Id>; #[derive(Debug)] -pub struct DimensionalCharacteristicRepresentation_<'a> { // entity +pub struct DimensionalCharacteristicRepresentation_<'a> { + // entity pub dimension: DimensionalCharacteristic<'a>, pub representation: ShapeDimensionRepresentation<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type DimensionalCharacteristicRepresentation<'a> = Id>; +pub type DimensionalCharacteristicRepresentation<'a> = + Id>; impl<'a> FromEntity<'a> for DimensionalCharacteristicRepresentation_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -10509,12 +12196,18 @@ impl<'a> ParseFromChunks<'a> for DimensionalCharacteristicRepresentation_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("DIMENSIONAL_CHARACTERISTIC_REPRESENTATION(")(strs[0])?; - let (s, dimension) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimension, - representation, - _marker: std::marker::PhantomData})) + let (s, dimension) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, representation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + dimension, + representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionalCharacteristicRepresentation_<'a> { @@ -10524,7 +12217,8 @@ impl<'a> HasId for DimensionalCharacteristicRepresentation_<'a> { } } #[derive(Debug)] -pub struct DimensionalExponents_<'a> { // entity +pub struct DimensionalExponents_<'a> { + // entity pub length_exponent: f64, pub mass_exponent: f64, pub time_exponent: f64, @@ -10551,18 +12245,23 @@ impl<'a> ParseFromChunks<'a> for DimensionalExponents_<'a> { let (s, mass_exponent) = param_from_chunks::(false, s, &mut i, strs)?; let (s, time_exponent) = param_from_chunks::(false, s, &mut i, strs)?; let (s, electric_current_exponent) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, thermodynamic_temperature_exponent) = param_from_chunks::(false, s, &mut i, strs)?; + let (s, thermodynamic_temperature_exponent) = + param_from_chunks::(false, s, &mut i, strs)?; let (s, amount_of_substance_exponent) = param_from_chunks::(false, s, &mut i, strs)?; let (s, luminous_intensity_exponent) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - length_exponent, - mass_exponent, - time_exponent, - electric_current_exponent, - thermodynamic_temperature_exponent, - amount_of_substance_exponent, - luminous_intensity_exponent, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + length_exponent, + mass_exponent, + time_exponent, + electric_current_exponent, + thermodynamic_temperature_exponent, + amount_of_substance_exponent, + luminous_intensity_exponent, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionalExponents_<'a> { @@ -10577,7 +12276,8 @@ impl<'a> HasId for DimensionalExponents_<'a> { } } #[derive(Debug)] -pub struct DimensionalLocation_<'a> { // entity +pub struct DimensionalLocation_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_shape_aspect: ShapeAspect<'a>, @@ -10599,14 +12299,20 @@ impl<'a> ParseFromChunks<'a> for DimensionalLocation_<'a> { let (s, _) = tag("DIMENSIONAL_LOCATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_shape_aspect, - related_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, relating_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_shape_aspect, + related_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionalLocation_<'a> { @@ -10618,7 +12324,8 @@ impl<'a> HasId for DimensionalLocation_<'a> { } } #[derive(Debug)] -pub struct DimensionalLocationWithPath_<'a> { // entity +pub struct DimensionalLocationWithPath_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_shape_aspect: ShapeAspect<'a>, @@ -10641,16 +12348,22 @@ impl<'a> ParseFromChunks<'a> for DimensionalLocationWithPath_<'a> { let (s, _) = tag("DIMENSIONAL_LOCATION_WITH_PATH(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, relating_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, path) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_shape_aspect, - related_shape_aspect, - path, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + relating_shape_aspect, + related_shape_aspect, + path, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionalLocationWithPath_<'a> { @@ -10663,7 +12376,8 @@ impl<'a> HasId for DimensionalLocationWithPath_<'a> { } } #[derive(Debug)] -pub struct DimensionalSize_<'a> { // entity +pub struct DimensionalSize_<'a> { + // entity pub applies_to: ShapeAspect<'a>, pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -10683,10 +12397,14 @@ impl<'a> ParseFromChunks<'a> for DimensionalSize_<'a> { let (s, _) = tag("DIMENSIONAL_SIZE(")(strs[0])?; let (s, applies_to) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to, - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + applies_to, + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionalSize_<'a> { @@ -10696,7 +12414,8 @@ impl<'a> HasId for DimensionalSize_<'a> { } } #[derive(Debug)] -pub struct DimensionalSizeWithPath_<'a> { // entity +pub struct DimensionalSizeWithPath_<'a> { + // entity pub applies_to: ShapeAspect<'a>, pub name: Label<'a>, pub path: ShapeAspect<'a>, @@ -10718,11 +12437,15 @@ impl<'a> ParseFromChunks<'a> for DimensionalSizeWithPath_<'a> { let (s, applies_to) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, path) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to, - name, - path, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + applies_to, + name, + path, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DimensionalSizeWithPath_<'a> { @@ -10733,7 +12456,8 @@ impl<'a> HasId for DimensionalSizeWithPath_<'a> { } } #[derive(Debug)] -pub struct DirectedAction_<'a> { // entity +pub struct DirectedAction_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub chosen_method: ActionMethod<'a>, @@ -10757,12 +12481,16 @@ impl<'a> ParseFromChunks<'a> for DirectedAction_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, chosen_method) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, directive) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - chosen_method, - directive, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + chosen_method, + directive, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DirectedAction_<'a> { @@ -10774,7 +12502,8 @@ impl<'a> HasId for DirectedAction_<'a> { } } #[derive(Debug)] -pub struct DirectedAngle_<'a> { // entity +pub struct DirectedAngle_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -10796,14 +12525,19 @@ impl<'a> ParseFromChunks<'a> for DirectedAngle_<'a> { let (s, _) = tag("DIRECTED_ANGLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DirectedAngle_<'a> { @@ -10815,7 +12549,8 @@ impl<'a> HasId for DirectedAngle_<'a> { } } #[derive(Debug)] -pub struct DirectedDimensionalLocation_<'a> { // entity +pub struct DirectedDimensionalLocation_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_shape_aspect: ShapeAspect<'a>, @@ -10837,14 +12572,20 @@ impl<'a> ParseFromChunks<'a> for DirectedDimensionalLocation_<'a> { let (s, _) = tag("DIRECTED_DIMENSIONAL_LOCATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_shape_aspect, - related_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, relating_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_shape_aspect, + related_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DirectedDimensionalLocation_<'a> { @@ -10856,9 +12597,10 @@ impl<'a> HasId for DirectedDimensionalLocation_<'a> { } } #[derive(Debug)] -pub struct Direction_<'a> { // entity +pub struct Direction_<'a> { + // entity pub name: Label<'a>, - pub direction_ratios: ArrayVec::, + pub direction_ratios: ArrayVec, _marker: std::marker::PhantomData<&'a ()>, } pub type Direction<'a> = Id>; @@ -10875,11 +12617,15 @@ impl<'a> ParseFromChunks<'a> for Direction_<'a> { let mut i = 0; let (s, _) = tag("DIRECTION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, direction_ratios) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - direction_ratios, - _marker: std::marker::PhantomData})) + let (s, direction_ratios) = param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + direction_ratios, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Direction_<'a> { @@ -10889,16 +12635,31 @@ impl<'a> HasId for Direction_<'a> { } } #[derive(Debug)] -pub enum DirectionCountSelect<'a> { // select +pub enum DirectionCountSelect<'a> { + // select UDirectionCount(UDirectionCount<'a>), VDirectionCount(VDirectionCount<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for DirectionCountSelect<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("U_DIRECTION_COUNT("), >::parse, char(')')), DirectionCountSelect::UDirectionCount), - map(delimited(tag("V_DIRECTION_COUNT("), >::parse, char(')')), DirectionCountSelect::VDirectionCount), + map( + delimited( + tag("U_DIRECTION_COUNT("), + >::parse, + char(')'), + ), + DirectionCountSelect::UDirectionCount, + ), + map( + delimited( + tag("V_DIRECTION_COUNT("), + >::parse, + char(')'), + ), + DirectionCountSelect::VDirectionCount, + ), ))(s) } } @@ -10912,7 +12673,8 @@ impl<'a> HasId for DirectionCountSelect<'a> { } } #[derive(Debug)] -pub struct DirectionShapeRepresentation_<'a> { // entity +pub struct DirectionShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -10933,12 +12695,17 @@ impl<'a> ParseFromChunks<'a> for DirectionShapeRepresentation_<'a> { let (s, _) = tag("DIRECTION_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DirectionShapeRepresentation_<'a> { @@ -10949,8 +12716,9 @@ impl<'a> HasId for DirectionShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct DivExpression_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct DivExpression_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type DivExpression<'a> = Id>; @@ -10966,10 +12734,15 @@ impl<'a> ParseFromChunks<'a> for DivExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("DIV_EXPRESSION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DivExpression_<'a> { @@ -10978,7 +12751,8 @@ impl<'a> HasId for DivExpression_<'a> { } } #[derive(Debug)] -pub struct Document_<'a> { // entity +pub struct Document_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -11002,12 +12776,16 @@ impl<'a> ParseFromChunks<'a> for Document_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, kind) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - kind, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + name, + description, + kind, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Document_<'a> { @@ -11020,7 +12798,8 @@ impl<'a> HasId for Document_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct DocumentFile_<'a> { // entity +pub struct DocumentFile_<'a> { + // entity pub id: Identifier<'a>, pub document__name: Label<'a>, pub document__description: Option>, @@ -11046,20 +12825,27 @@ impl<'a> ParseFromChunks<'a> for DocumentFile_<'a> { #[allow(non_snake_case)] let (s, document__name) = param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, document__description) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, document__description) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, kind) = param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, characterized_object__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, characterized_object__name) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, characterized_object__description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - document__name, - document__description, - kind, - characterized_object__name, - characterized_object__description, - _marker: std::marker::PhantomData})) + let (s, characterized_object__description) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + document__name, + document__description, + kind, + characterized_object__name, + characterized_object__description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DocumentFile_<'a> { @@ -11073,7 +12859,8 @@ impl<'a> HasId for DocumentFile_<'a> { } } #[derive(Debug)] -pub struct DocumentProductAssociation_<'a> { // entity +pub struct DocumentProductAssociation_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_document: Document<'a>, @@ -11096,13 +12883,18 @@ impl<'a> ParseFromChunks<'a> for DocumentProductAssociation_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, relating_document) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_document, - related_product, - _marker: std::marker::PhantomData})) + let (s, related_product) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_document, + related_product, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DocumentProductAssociation_<'a> { @@ -11114,7 +12906,8 @@ impl<'a> HasId for DocumentProductAssociation_<'a> { } } #[derive(Debug)] -pub struct DocumentProductEquivalence_<'a> { // entity +pub struct DocumentProductEquivalence_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_document: Document<'a>, @@ -11137,13 +12930,18 @@ impl<'a> ParseFromChunks<'a> for DocumentProductEquivalence_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, relating_document) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_document, - related_product, - _marker: std::marker::PhantomData})) + let (s, related_product) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_document, + related_product, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DocumentProductEquivalence_<'a> { @@ -11155,7 +12953,8 @@ impl<'a> HasId for DocumentProductEquivalence_<'a> { } } #[derive(Debug)] -pub struct DocumentReference_<'a> { // entity +pub struct DocumentReference_<'a> { + // entity pub assigned_document: Document<'a>, pub source: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -11175,10 +12974,14 @@ impl<'a> ParseFromChunks<'a> for DocumentReference_<'a> { let (s, _) = tag("DOCUMENT_REFERENCE(")(strs[0])?; let (s, assigned_document) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_document, - source, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_document, + source, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DocumentReference_<'a> { @@ -11192,7 +12995,8 @@ pub struct DocumentReferenceItem_<'a>(std::marker::PhantomData<&'a ()>); // ambi pub type DocumentReferenceItem<'a> = Id>; #[derive(Debug)] -pub struct DocumentRelationship_<'a> { // entity +pub struct DocumentRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_document: Document<'a>, @@ -11216,12 +13020,16 @@ impl<'a> ParseFromChunks<'a> for DocumentRelationship_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, relating_document) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, related_document) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_document, - related_document, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + relating_document, + related_document, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DocumentRelationship_<'a> { @@ -11233,7 +13041,8 @@ impl<'a> HasId for DocumentRelationship_<'a> { } } #[derive(Debug)] -pub struct DocumentRepresentationType_<'a> { // entity +pub struct DocumentRepresentationType_<'a> { + // entity pub name: Label<'a>, pub represented_document: Document<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -11253,10 +13062,14 @@ impl<'a> ParseFromChunks<'a> for DocumentRepresentationType_<'a> { let (s, _) = tag("DOCUMENT_REPRESENTATION_TYPE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, represented_document) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - represented_document, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + represented_document, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DocumentRepresentationType_<'a> { @@ -11266,7 +13079,8 @@ impl<'a> HasId for DocumentRepresentationType_<'a> { } } #[derive(Debug)] -pub struct DocumentType_<'a> { // entity +pub struct DocumentType_<'a> { + // entity pub product_data_type: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -11284,9 +13098,13 @@ impl<'a> ParseFromChunks<'a> for DocumentType_<'a> { let mut i = 0; let (s, _) = tag("DOCUMENT_TYPE(")(strs[0])?; let (s, product_data_type) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - product_data_type, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + product_data_type, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DocumentType_<'a> { @@ -11295,7 +13113,8 @@ impl<'a> HasId for DocumentType_<'a> { } } #[derive(Debug)] -pub struct DocumentUsageConstraint_<'a> { // entity +pub struct DocumentUsageConstraint_<'a> { + // entity pub source: Document<'a>, pub subject_element: Label<'a>, pub subject_element_value: Text<'a>, @@ -11317,11 +13136,15 @@ impl<'a> ParseFromChunks<'a> for DocumentUsageConstraint_<'a> { let (s, source) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, subject_element) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, subject_element_value) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - source, - subject_element, - subject_element_value, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + source, + subject_element, + subject_element_value, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DocumentUsageConstraint_<'a> { @@ -11332,7 +13155,8 @@ impl<'a> HasId for DocumentUsageConstraint_<'a> { } } #[derive(Debug)] -pub struct DocumentUsageConstraintAssignment_<'a> { // entity +pub struct DocumentUsageConstraintAssignment_<'a> { + // entity pub assigned_document_usage: DocumentUsageConstraint<'a>, pub role: DocumentUsageRole<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -11350,12 +13174,17 @@ impl<'a> ParseFromChunks<'a> for DocumentUsageConstraintAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("DOCUMENT_USAGE_CONSTRAINT_ASSIGNMENT(")(strs[0])?; - let (s, assigned_document_usage) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_document_usage) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_document_usage, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_document_usage, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DocumentUsageConstraintAssignment_<'a> { @@ -11365,7 +13194,8 @@ impl<'a> HasId for DocumentUsageConstraintAssignment_<'a> { } } #[derive(Debug)] -pub struct DocumentUsageRole_<'a> { // entity +pub struct DocumentUsageRole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -11385,10 +13215,14 @@ impl<'a> ParseFromChunks<'a> for DocumentUsageRole_<'a> { let (s, _) = tag("DOCUMENT_USAGE_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DocumentUsageRole_<'a> { @@ -11398,7 +13232,8 @@ impl<'a> HasId for DocumentUsageRole_<'a> { } } #[derive(Debug)] -pub struct DraughtingAnnotationOccurrence_<'a> { // entity +pub struct DraughtingAnnotationOccurrence_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -11418,13 +13253,18 @@ impl<'a> ParseFromChunks<'a> for DraughtingAnnotationOccurrence_<'a> { let mut i = 0; let (s, _) = tag("DRAUGHTING_ANNOTATION_OCCURRENCE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + styles, + item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingAnnotationOccurrence_<'a> { @@ -11435,7 +13275,8 @@ impl<'a> HasId for DraughtingAnnotationOccurrence_<'a> { } } #[derive(Debug)] -pub struct DraughtingCallout_<'a> { // entity +pub struct DraughtingCallout_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -11454,11 +13295,16 @@ impl<'a> ParseFromChunks<'a> for DraughtingCallout_<'a> { let mut i = 0; let (s, _) = tag("DRAUGHTING_CALLOUT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingCallout_<'a> { @@ -11472,7 +13318,8 @@ pub struct DraughtingCalloutElement_<'a>(std::marker::PhantomData<&'a ()>); // a pub type DraughtingCalloutElement<'a> = Id>; #[derive(Debug)] -pub struct DraughtingCalloutRelationship_<'a> { // entity +pub struct DraughtingCalloutRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub relating_draughting_callout: DraughtingCallout<'a>, @@ -11494,14 +13341,20 @@ impl<'a> ParseFromChunks<'a> for DraughtingCalloutRelationship_<'a> { let (s, _) = tag("DRAUGHTING_CALLOUT_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, relating_draughting_callout) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_draughting_callout) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_draughting_callout, - related_draughting_callout, - _marker: std::marker::PhantomData})) + let (s, relating_draughting_callout) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_draughting_callout) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_draughting_callout, + related_draughting_callout, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingCalloutRelationship_<'a> { @@ -11513,7 +13366,8 @@ impl<'a> HasId for DraughtingCalloutRelationship_<'a> { } } #[derive(Debug)] -pub struct DraughtingElements_<'a> { // entity +pub struct DraughtingElements_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -11532,11 +13386,16 @@ impl<'a> ParseFromChunks<'a> for DraughtingElements_<'a> { let mut i = 0; let (s, _) = tag("DRAUGHTING_ELEMENTS(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingElements_<'a> { @@ -11546,7 +13405,8 @@ impl<'a> HasId for DraughtingElements_<'a> { } } #[derive(Debug)] -pub struct DraughtingModel_<'a> { // entity +pub struct DraughtingModel_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -11567,12 +13427,17 @@ impl<'a> ParseFromChunks<'a> for DraughtingModel_<'a> { let (s, _) = tag("DRAUGHTING_MODEL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingModel_<'a> { @@ -11583,7 +13448,8 @@ impl<'a> HasId for DraughtingModel_<'a> { } } #[derive(Debug)] -pub struct DraughtingModelItemAssociation_<'a> { // entity +pub struct DraughtingModelItemAssociation_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub definition: RepresentedDefinition<'a>, @@ -11606,16 +13472,23 @@ impl<'a> ParseFromChunks<'a> for DraughtingModelItemAssociation_<'a> { let (s, _) = tag("DRAUGHTING_MODEL_ITEM_ASSOCIATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, used_representation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, identified_item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - definition, - used_representation, - identified_item, - _marker: std::marker::PhantomData})) + let (s, definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, used_representation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, identified_item) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + definition, + used_representation, + identified_item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingModelItemAssociation_<'a> { @@ -11632,7 +13505,8 @@ pub struct DraughtingModelItemAssociationSelect_<'a>(std::marker::PhantomData<&' pub type DraughtingModelItemAssociationSelect<'a> = Id>; #[derive(Debug)] -pub struct DraughtingPreDefinedColour_<'a> { // entity +pub struct DraughtingPreDefinedColour_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -11650,9 +13524,13 @@ impl<'a> ParseFromChunks<'a> for DraughtingPreDefinedColour_<'a> { let mut i = 0; let (s, _) = tag("DRAUGHTING_PRE_DEFINED_COLOUR(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingPreDefinedColour_<'a> { @@ -11661,7 +13539,8 @@ impl<'a> HasId for DraughtingPreDefinedColour_<'a> { } } #[derive(Debug)] -pub struct DraughtingPreDefinedCurveFont_<'a> { // entity +pub struct DraughtingPreDefinedCurveFont_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -11679,9 +13558,13 @@ impl<'a> ParseFromChunks<'a> for DraughtingPreDefinedCurveFont_<'a> { let mut i = 0; let (s, _) = tag("DRAUGHTING_PRE_DEFINED_CURVE_FONT(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingPreDefinedCurveFont_<'a> { @@ -11690,7 +13573,8 @@ impl<'a> HasId for DraughtingPreDefinedCurveFont_<'a> { } } #[derive(Debug)] -pub struct DraughtingPreDefinedTextFont_<'a> { // entity +pub struct DraughtingPreDefinedTextFont_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -11708,9 +13592,13 @@ impl<'a> ParseFromChunks<'a> for DraughtingPreDefinedTextFont_<'a> { let mut i = 0; let (s, _) = tag("DRAUGHTING_PRE_DEFINED_TEXT_FONT(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingPreDefinedTextFont_<'a> { @@ -11719,7 +13607,8 @@ impl<'a> HasId for DraughtingPreDefinedTextFont_<'a> { } } #[derive(Debug)] -pub struct DraughtingSpecificationReference_<'a> { // entity +pub struct DraughtingSpecificationReference_<'a> { + // entity pub assigned_document: Document<'a>, pub source: Label<'a>, pub specified_items: Vec>, @@ -11740,12 +13629,17 @@ impl<'a> ParseFromChunks<'a> for DraughtingSpecificationReference_<'a> { let (s, _) = tag("DRAUGHTING_SPECIFICATION_REFERENCE(")(strs[0])?; let (s, assigned_document) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, specified_items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_document, - source, - specified_items, - _marker: std::marker::PhantomData})) + let (s, specified_items) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_document, + source, + specified_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingSpecificationReference_<'a> { @@ -11756,7 +13650,8 @@ impl<'a> HasId for DraughtingSpecificationReference_<'a> { } } #[derive(Debug)] -pub struct DraughtingSubfigureRepresentation_<'a> { // entity +pub struct DraughtingSubfigureRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -11777,12 +13672,17 @@ impl<'a> ParseFromChunks<'a> for DraughtingSubfigureRepresentation_<'a> { let (s, _) = tag("DRAUGHTING_SUBFIGURE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingSubfigureRepresentation_<'a> { @@ -11793,7 +13693,8 @@ impl<'a> HasId for DraughtingSubfigureRepresentation_<'a> { } } #[derive(Debug)] -pub struct DraughtingSymbolRepresentation_<'a> { // entity +pub struct DraughtingSymbolRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -11814,12 +13715,17 @@ impl<'a> ParseFromChunks<'a> for DraughtingSymbolRepresentation_<'a> { let (s, _) = tag("DRAUGHTING_SYMBOL_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingSymbolRepresentation_<'a> { @@ -11830,7 +13736,8 @@ impl<'a> HasId for DraughtingSymbolRepresentation_<'a> { } } #[derive(Debug)] -pub struct DraughtingTextLiteralWithDelineation_<'a> { // entity +pub struct DraughtingTextLiteralWithDelineation_<'a> { + // entity pub name: Label<'a>, pub literal: PresentableText<'a>, pub placement: Axis2Placement<'a>, @@ -11860,15 +13767,19 @@ impl<'a> ParseFromChunks<'a> for DraughtingTextLiteralWithDelineation_<'a> { let (s, path) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, font) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, delineation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - literal, - placement, - alignment, - path, - font, - delineation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + literal, + placement, + alignment, + path, + font, + delineation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingTextLiteralWithDelineation_<'a> { @@ -11883,7 +13794,8 @@ impl<'a> HasId for DraughtingTextLiteralWithDelineation_<'a> { } } #[derive(Debug)] -pub struct DraughtingTitle_<'a> { // entity +pub struct DraughtingTitle_<'a> { + // entity pub items: Vec>, pub language: Label<'a>, pub contents: Text<'a>, @@ -11902,14 +13814,19 @@ impl<'a> ParseFromChunks<'a> for DraughtingTitle_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("DRAUGHTING_TITLE(")(strs[0])?; - let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, items) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, language) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, contents) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - items, - language, - contents, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + items, + language, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DraughtingTitle_<'a> { @@ -11924,7 +13841,8 @@ pub struct DraughtingTitledItem_<'a>(std::marker::PhantomData<&'a ()>); // ambig pub type DraughtingTitledItem<'a> = Id>; #[derive(Debug)] -pub struct DrawingDefinition_<'a> { // entity +pub struct DrawingDefinition_<'a> { + // entity pub drawing_number: Identifier<'a>, pub drawing_type: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -11944,10 +13862,14 @@ impl<'a> ParseFromChunks<'a> for DrawingDefinition_<'a> { let (s, _) = tag("DRAWING_DEFINITION(")(strs[0])?; let (s, drawing_number) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, drawing_type) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - drawing_number, - drawing_type, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + drawing_number, + drawing_type, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DrawingDefinition_<'a> { @@ -11957,7 +13879,8 @@ impl<'a> HasId for DrawingDefinition_<'a> { } } #[derive(Debug)] -pub struct DrawingRevision_<'a> { // entity +pub struct DrawingRevision_<'a> { + // entity pub revision_identifier: Identifier<'a>, pub drawing_identifier: DrawingDefinition<'a>, pub intended_scale: Option>, @@ -11977,13 +13900,18 @@ impl<'a> ParseFromChunks<'a> for DrawingRevision_<'a> { let mut i = 0; let (s, _) = tag("DRAWING_REVISION(")(strs[0])?; let (s, revision_identifier) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, drawing_identifier) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, drawing_identifier) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, intended_scale) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - revision_identifier, - drawing_identifier, - intended_scale, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + revision_identifier, + drawing_identifier, + intended_scale, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DrawingRevision_<'a> { @@ -11994,7 +13922,8 @@ impl<'a> HasId for DrawingRevision_<'a> { } } #[derive(Debug)] -pub struct DrawingRevisionSequence_<'a> { // entity +pub struct DrawingRevisionSequence_<'a> { + // entity pub predecessor: DrawingRevision<'a>, pub successor: DrawingRevision<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -12014,10 +13943,14 @@ impl<'a> ParseFromChunks<'a> for DrawingRevisionSequence_<'a> { let (s, _) = tag("DRAWING_REVISION_SEQUENCE(")(strs[0])?; let (s, predecessor) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, successor) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - predecessor, - successor, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + predecessor, + successor, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DrawingRevisionSequence_<'a> { @@ -12027,7 +13960,8 @@ impl<'a> HasId for DrawingRevisionSequence_<'a> { } } #[derive(Debug)] -pub struct DrawingSheetLayout_<'a> { // entity +pub struct DrawingSheetLayout_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -12048,12 +13982,17 @@ impl<'a> ParseFromChunks<'a> for DrawingSheetLayout_<'a> { let (s, _) = tag("DRAWING_SHEET_LAYOUT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DrawingSheetLayout_<'a> { @@ -12064,7 +14003,8 @@ impl<'a> HasId for DrawingSheetLayout_<'a> { } } #[derive(Debug)] -pub struct DrawingSheetRevision_<'a> { // entity +pub struct DrawingSheetRevision_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -12086,14 +14026,19 @@ impl<'a> ParseFromChunks<'a> for DrawingSheetRevision_<'a> { let (s, _) = tag("DRAWING_SHEET_REVISION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, context_of_items) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, revision_identifier) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - revision_identifier, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + items, + context_of_items, + revision_identifier, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DrawingSheetRevision_<'a> { @@ -12105,7 +14050,8 @@ impl<'a> HasId for DrawingSheetRevision_<'a> { } } #[derive(Debug)] -pub struct DrawingSheetRevisionUsage_<'a> { // entity +pub struct DrawingSheetRevisionUsage_<'a> { + // entity pub area: PresentationArea<'a>, pub in_set: PresentationSet<'a>, pub sheet_number: Identifier<'a>, @@ -12127,11 +14073,15 @@ impl<'a> ParseFromChunks<'a> for DrawingSheetRevisionUsage_<'a> { let (s, area) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, in_set) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, sheet_number) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - area, - in_set, - sheet_number, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + area, + in_set, + sheet_number, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for DrawingSheetRevisionUsage_<'a> { @@ -12142,7 +14092,8 @@ impl<'a> HasId for DrawingSheetRevisionUsage_<'a> { } } #[derive(Debug)] -pub struct Edge_<'a> { // entity +pub struct Edge_<'a> { + // entity pub name: Label<'a>, pub edge_start: Vertex<'a>, pub edge_end: Vertex<'a>, @@ -12164,11 +14115,15 @@ impl<'a> ParseFromChunks<'a> for Edge_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, edge_start) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, edge_end) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - edge_start, - edge_end, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + edge_start, + edge_end, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Edge_<'a> { @@ -12179,7 +14134,8 @@ impl<'a> HasId for Edge_<'a> { } } #[derive(Debug)] -pub struct EdgeBasedWireframeModel_<'a> { // entity +pub struct EdgeBasedWireframeModel_<'a> { + // entity pub name: Label<'a>, pub ebwm_boundary: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -12198,11 +14154,16 @@ impl<'a> ParseFromChunks<'a> for EdgeBasedWireframeModel_<'a> { let mut i = 0; let (s, _) = tag("EDGE_BASED_WIREFRAME_MODEL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, ebwm_boundary) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - ebwm_boundary, - _marker: std::marker::PhantomData})) + let (s, ebwm_boundary) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + ebwm_boundary, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EdgeBasedWireframeModel_<'a> { @@ -12212,7 +14173,8 @@ impl<'a> HasId for EdgeBasedWireframeModel_<'a> { } } #[derive(Debug)] -pub struct EdgeBasedWireframeShapeRepresentation_<'a> { // entity +pub struct EdgeBasedWireframeShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -12233,12 +14195,17 @@ impl<'a> ParseFromChunks<'a> for EdgeBasedWireframeShapeRepresentation_<'a> { let (s, _) = tag("EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EdgeBasedWireframeShapeRepresentation_<'a> { @@ -12250,7 +14217,8 @@ impl<'a> HasId for EdgeBasedWireframeShapeRepresentation_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct EdgeCurve_<'a> { // entity +pub struct EdgeCurve_<'a> { + // entity pub representation_item__name: Label<'a>, pub edge_start: Vertex<'a>, pub edge_end: Vertex<'a>, @@ -12272,18 +14240,23 @@ impl<'a> ParseFromChunks<'a> for EdgeCurve_<'a> { let mut i = 0; let (s, _) = tag("EDGE_CURVE(")(strs[0])?; #[allow(non_snake_case)] - let (s, representation_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, representation_item__name) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, edge_start) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, edge_end) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, edge_geometry) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, same_sense) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - representation_item__name, - edge_start, - edge_end, - edge_geometry, - same_sense, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + representation_item__name, + edge_start, + edge_end, + edge_geometry, + same_sense, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EdgeCurve_<'a> { @@ -12297,7 +14270,8 @@ impl<'a> HasId for EdgeCurve_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct EdgeLoop_<'a> { // entity +pub struct EdgeLoop_<'a> { + // entity pub representation_item__name: Label<'a>, pub edge_list: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -12316,12 +14290,17 @@ impl<'a> ParseFromChunks<'a> for EdgeLoop_<'a> { let mut i = 0; let (s, _) = tag("EDGE_LOOP(")(strs[0])?; #[allow(non_snake_case)] - let (s, representation_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, representation_item__name) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, edge_list) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - representation_item__name, - edge_list, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + representation_item__name, + edge_list, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EdgeLoop_<'a> { @@ -12331,7 +14310,8 @@ impl<'a> HasId for EdgeLoop_<'a> { } } #[derive(Debug)] -pub struct EdgeRound_<'a> { // entity +pub struct EdgeRound_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -12353,14 +14333,19 @@ impl<'a> ParseFromChunks<'a> for EdgeRound_<'a> { let (s, _) = tag("EDGE_ROUND(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EdgeRound_<'a> { @@ -12372,7 +14357,8 @@ impl<'a> HasId for EdgeRound_<'a> { } } #[derive(Debug)] -pub struct Effectivity_<'a> { // entity +pub struct Effectivity_<'a> { + // entity pub id: Identifier<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -12390,9 +14376,13 @@ impl<'a> ParseFromChunks<'a> for Effectivity_<'a> { let mut i = 0; let (s, _) = tag("EFFECTIVITY(")(strs[0])?; let (s, id) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Effectivity_<'a> { @@ -12401,7 +14391,8 @@ impl<'a> HasId for Effectivity_<'a> { } } #[derive(Debug)] -pub struct EffectivityAssignment_<'a> { // entity +pub struct EffectivityAssignment_<'a> { + // entity pub assigned_effectivity: Effectivity<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -12418,10 +14409,15 @@ impl<'a> ParseFromChunks<'a> for EffectivityAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("EFFECTIVITY_ASSIGNMENT(")(strs[0])?; - let (s, assigned_effectivity) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_effectivity, - _marker: std::marker::PhantomData})) + let (s, assigned_effectivity) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_effectivity, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EffectivityAssignment_<'a> { @@ -12430,7 +14426,8 @@ impl<'a> HasId for EffectivityAssignment_<'a> { } } #[derive(Debug)] -pub struct EffectivityContextAssignment_<'a> { // entity +pub struct EffectivityContextAssignment_<'a> { + // entity pub assigned_effectivity_assignment: EffectivityAssignment<'a>, pub role: EffectivityContextRole<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -12448,12 +14445,17 @@ impl<'a> ParseFromChunks<'a> for EffectivityContextAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("EFFECTIVITY_CONTEXT_ASSIGNMENT(")(strs[0])?; - let (s, assigned_effectivity_assignment) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_effectivity_assignment) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_effectivity_assignment, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_effectivity_assignment, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EffectivityContextAssignment_<'a> { @@ -12463,7 +14465,8 @@ impl<'a> HasId for EffectivityContextAssignment_<'a> { } } #[derive(Debug)] -pub struct EffectivityContextRole_<'a> { // entity +pub struct EffectivityContextRole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -12483,10 +14486,14 @@ impl<'a> ParseFromChunks<'a> for EffectivityContextRole_<'a> { let (s, _) = tag("EFFECTIVITY_CONTEXT_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EffectivityContextRole_<'a> { @@ -12500,7 +14507,8 @@ pub struct EffectivityItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous pub type EffectivityItem<'a> = Id>; #[derive(Debug)] -pub struct EffectivityRelationship_<'a> { // entity +pub struct EffectivityRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub related_effectivity: Effectivity<'a>, @@ -12522,14 +14530,20 @@ impl<'a> ParseFromChunks<'a> for EffectivityRelationship_<'a> { let (s, _) = tag("EFFECTIVITY_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, related_effectivity) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, relating_effectivity) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - related_effectivity, - relating_effectivity, - _marker: std::marker::PhantomData})) + let (s, related_effectivity) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, relating_effectivity) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + related_effectivity, + relating_effectivity, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EffectivityRelationship_<'a> { @@ -12548,11 +14562,13 @@ impl<'a> Parse<'a> for ElectricCurrentMeasure<'a> { } } impl<'a> HasId for ElectricCurrentMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct ElectricCurrentMeasureWithUnit_<'a> { // entity +pub struct ElectricCurrentMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -12572,10 +14588,14 @@ impl<'a> ParseFromChunks<'a> for ElectricCurrentMeasureWithUnit_<'a> { let (s, _) = tag("ELECTRIC_CURRENT_MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ElectricCurrentMeasureWithUnit_<'a> { @@ -12585,7 +14605,8 @@ impl<'a> HasId for ElectricCurrentMeasureWithUnit_<'a> { } } #[derive(Debug)] -pub struct ElectricCurrentUnit_<'a> { // entity +pub struct ElectricCurrentUnit_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -12603,9 +14624,13 @@ impl<'a> ParseFromChunks<'a> for ElectricCurrentUnit_<'a> { let mut i = 0; let (s, _) = tag("ELECTRIC_CURRENT_UNIT(")(strs[0])?; let (s, dimensions) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ElectricCurrentUnit_<'a> { @@ -12614,7 +14639,8 @@ impl<'a> HasId for ElectricCurrentUnit_<'a> { } } #[derive(Debug)] -pub struct ElementDelivery_<'a> { // entity +pub struct ElementDelivery_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub chosen_method: ActionMethod<'a>, @@ -12636,11 +14662,15 @@ impl<'a> ParseFromChunks<'a> for ElementDelivery_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, chosen_method) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - chosen_method, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + chosen_method, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ElementDelivery_<'a> { @@ -12651,7 +14681,8 @@ impl<'a> HasId for ElementDelivery_<'a> { } } #[derive(Debug)] -pub struct ElementarySurface_<'a> { // entity +pub struct ElementarySurface_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement3d<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -12671,10 +14702,14 @@ impl<'a> ParseFromChunks<'a> for ElementarySurface_<'a> { let (s, _) = tag("ELEMENTARY_SURFACE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, position) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + position, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ElementarySurface_<'a> { @@ -12684,7 +14719,8 @@ impl<'a> HasId for ElementarySurface_<'a> { } } #[derive(Debug)] -pub struct Ellipse_<'a> { // entity +pub struct Ellipse_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement<'a>, pub semi_axis_1: PositiveLengthMeasure<'a>, @@ -12706,14 +14742,20 @@ impl<'a> ParseFromChunks<'a> for Ellipse_<'a> { let (s, _) = tag("ELLIPSE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, position) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, semi_axis_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, semi_axis_2) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - semi_axis_1, - semi_axis_2, - _marker: std::marker::PhantomData})) + let (s, semi_axis_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, semi_axis_2) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + position, + semi_axis_1, + semi_axis_2, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Ellipse_<'a> { @@ -12725,7 +14767,8 @@ impl<'a> HasId for Ellipse_<'a> { } } #[derive(Debug)] -pub struct Environment_<'a> { // entity +pub struct Environment_<'a> { + // entity pub syntactic_representation: GenericVariable<'a>, pub semantics: VariableSemantics<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -12743,12 +14786,17 @@ impl<'a> ParseFromChunks<'a> for Environment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("ENVIRONMENT(")(strs[0])?; - let (s, syntactic_representation) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, syntactic_representation) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, semantics) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - syntactic_representation, - semantics, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + syntactic_representation, + semantics, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Environment_<'a> { @@ -12758,8 +14806,9 @@ impl<'a> HasId for Environment_<'a> { } } #[derive(Debug)] -pub struct EqualsExpression_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct EqualsExpression_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type EqualsExpression<'a> = Id>; @@ -12775,10 +14824,15 @@ impl<'a> ParseFromChunks<'a> for EqualsExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("EQUALS_EXPRESSION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EqualsExpression_<'a> { @@ -12787,7 +14841,8 @@ impl<'a> HasId for EqualsExpression_<'a> { } } #[derive(Debug)] -pub struct EvaluatedDegeneratePcurve_<'a> { // entity +pub struct EvaluatedDegeneratePcurve_<'a> { + // entity pub name: Label<'a>, pub basis_surface: Surface<'a>, pub reference_to_curve: DefinitionalRepresentation<'a>, @@ -12809,14 +14864,19 @@ impl<'a> ParseFromChunks<'a> for EvaluatedDegeneratePcurve_<'a> { let (s, _) = tag("EVALUATED_DEGENERATE_PCURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, basis_surface) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, reference_to_curve) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, reference_to_curve) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, equivalent_point) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - basis_surface, - reference_to_curve, - equivalent_point, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + basis_surface, + reference_to_curve, + equivalent_point, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EvaluatedDegeneratePcurve_<'a> { @@ -12828,7 +14888,8 @@ impl<'a> HasId for EvaluatedDegeneratePcurve_<'a> { } } #[derive(Debug)] -pub struct EventOccurrence_<'a> { // entity +pub struct EventOccurrence_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -12850,11 +14911,15 @@ impl<'a> ParseFromChunks<'a> for EventOccurrence_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EventOccurrence_<'a> { @@ -12865,7 +14930,8 @@ impl<'a> HasId for EventOccurrence_<'a> { } } #[derive(Debug)] -pub struct EventOccurrenceAssignment_<'a> { // entity +pub struct EventOccurrenceAssignment_<'a> { + // entity pub assigned_event_occurrence: EventOccurrence<'a>, pub role: EventOccurrenceRole<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -12883,12 +14949,17 @@ impl<'a> ParseFromChunks<'a> for EventOccurrenceAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("EVENT_OCCURRENCE_ASSIGNMENT(")(strs[0])?; - let (s, assigned_event_occurrence) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_event_occurrence) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_event_occurrence, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_event_occurrence, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EventOccurrenceAssignment_<'a> { @@ -12898,7 +14969,8 @@ impl<'a> HasId for EventOccurrenceAssignment_<'a> { } } #[derive(Debug)] -pub struct EventOccurrenceContextAssignment_<'a> { // entity +pub struct EventOccurrenceContextAssignment_<'a> { + // entity pub assigned_event_occurrence_assignment: EventOccurrenceAssignment<'a>, pub role: EventOccurrenceContextRole<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -12916,12 +14988,17 @@ impl<'a> ParseFromChunks<'a> for EventOccurrenceContextAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("EVENT_OCCURRENCE_CONTEXT_ASSIGNMENT(")(strs[0])?; - let (s, assigned_event_occurrence_assignment) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_event_occurrence_assignment) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_event_occurrence_assignment, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_event_occurrence_assignment, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EventOccurrenceContextAssignment_<'a> { @@ -12931,7 +15008,8 @@ impl<'a> HasId for EventOccurrenceContextAssignment_<'a> { } } #[derive(Debug)] -pub struct EventOccurrenceContextRole_<'a> { // entity +pub struct EventOccurrenceContextRole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -12951,10 +15029,14 @@ impl<'a> ParseFromChunks<'a> for EventOccurrenceContextRole_<'a> { let (s, _) = tag("EVENT_OCCURRENCE_CONTEXT_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EventOccurrenceContextRole_<'a> { @@ -12968,7 +15050,8 @@ pub struct EventOccurrenceItem_<'a>(std::marker::PhantomData<&'a ()>); // ambigu pub type EventOccurrenceItem<'a> = Id>; #[derive(Debug)] -pub struct EventOccurrenceRole_<'a> { // entity +pub struct EventOccurrenceRole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -12988,10 +15071,14 @@ impl<'a> ParseFromChunks<'a> for EventOccurrenceRole_<'a> { let (s, _) = tag("EVENT_OCCURRENCE_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for EventOccurrenceRole_<'a> { @@ -13001,12 +15088,14 @@ impl<'a> HasId for EventOccurrenceRole_<'a> { } } #[derive(Debug)] -pub struct ExclusiveProductConceptFeatureCategory_<'a> { // entity +pub struct ExclusiveProductConceptFeatureCategory_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, } -pub type ExclusiveProductConceptFeatureCategory<'a> = Id>; +pub type ExclusiveProductConceptFeatureCategory<'a> = + Id>; impl<'a> FromEntity<'a> for ExclusiveProductConceptFeatureCategory_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -13021,10 +15110,14 @@ impl<'a> ParseFromChunks<'a> for ExclusiveProductConceptFeatureCategory_<'a> { let (s, _) = tag("EXCLUSIVE_PRODUCT_CONCEPT_FEATURE_CATEGORY(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExclusiveProductConceptFeatureCategory_<'a> { @@ -13034,7 +15127,8 @@ impl<'a> HasId for ExclusiveProductConceptFeatureCategory_<'a> { } } #[derive(Debug)] -pub struct ExecutedAction_<'a> { // entity +pub struct ExecutedAction_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub chosen_method: ActionMethod<'a>, @@ -13056,11 +15150,15 @@ impl<'a> ParseFromChunks<'a> for ExecutedAction_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, chosen_method) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - chosen_method, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + chosen_method, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExecutedAction_<'a> { @@ -13071,7 +15169,8 @@ impl<'a> HasId for ExecutedAction_<'a> { } } #[derive(Debug)] -pub struct ExpFunction_<'a> { // entity +pub struct ExpFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -13089,9 +15188,13 @@ impl<'a> ParseFromChunks<'a> for ExpFunction_<'a> { let mut i = 0; let (s, _) = tag("EXP_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExpFunction_<'a> { @@ -13100,7 +15203,8 @@ impl<'a> HasId for ExpFunction_<'a> { } } #[derive(Debug)] -pub struct Expression_<'a> { // entity +pub struct Expression_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type Expression<'a> = Id>; @@ -13115,16 +15219,20 @@ impl<'a> FromEntity<'a> for Expression_<'a> { impl<'a> ParseFromChunks<'a> for Expression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("EXPRESSION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Expression_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct ExpressionConversionBasedUnit_<'a> { // entity +pub struct ExpressionConversionBasedUnit_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -13142,12 +15250,17 @@ impl<'a> ParseFromChunks<'a> for ExpressionConversionBasedUnit_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("EXPRESSION_CONVERSION_BASED_UNIT(")(strs[0])?; - let (s, dimensions) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, dimensions) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExpressionConversionBasedUnit_<'a> { @@ -13157,7 +15270,8 @@ impl<'a> HasId for ExpressionConversionBasedUnit_<'a> { } } #[derive(Debug)] -pub struct Extension_<'a> { // entity +pub struct Extension_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -13179,14 +15293,19 @@ impl<'a> ParseFromChunks<'a> for Extension_<'a> { let (s, _) = tag("EXTENSION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Extension_<'a> { @@ -13198,7 +15317,8 @@ impl<'a> HasId for Extension_<'a> { } } #[derive(Debug)] -pub struct ExternalIdentificationAssignment_<'a> { // entity +pub struct ExternalIdentificationAssignment_<'a> { + // entity pub assigned_id: Identifier<'a>, pub role: IdentificationRole<'a>, pub source: ExternalSource<'a>, @@ -13220,11 +15340,15 @@ impl<'a> ParseFromChunks<'a> for ExternalIdentificationAssignment_<'a> { let (s, assigned_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_id, - role, - source, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_id, + role, + source, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternalIdentificationAssignment_<'a> { @@ -13239,7 +15363,8 @@ pub struct ExternalIdentificationItem_<'a>(std::marker::PhantomData<&'a ()>); // pub type ExternalIdentificationItem<'a> = Id>; #[derive(Debug)] -pub struct ExternalSource_<'a> { // entity +pub struct ExternalSource_<'a> { + // entity pub source_id: SourceItem<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -13257,9 +15382,13 @@ impl<'a> ParseFromChunks<'a> for ExternalSource_<'a> { let mut i = 0; let (s, _) = tag("EXTERNAL_SOURCE(")(strs[0])?; let (s, source_id) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - source_id, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + source_id, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternalSource_<'a> { @@ -13268,7 +15397,8 @@ impl<'a> HasId for ExternalSource_<'a> { } } #[derive(Debug)] -pub struct ExternallyDefinedCharacterGlyph_<'a> { // entity +pub struct ExternallyDefinedCharacterGlyph_<'a> { + // entity pub item_id: SourceItem<'a>, pub source: ExternalSource<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -13288,10 +15418,14 @@ impl<'a> ParseFromChunks<'a> for ExternallyDefinedCharacterGlyph_<'a> { let (s, _) = tag("EXTERNALLY_DEFINED_CHARACTER_GLYPH(")(strs[0])?; let (s, item_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - item_id, - source, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + item_id, + source, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternallyDefinedCharacterGlyph_<'a> { @@ -13301,7 +15435,8 @@ impl<'a> HasId for ExternallyDefinedCharacterGlyph_<'a> { } } #[derive(Debug)] -pub struct ExternallyDefinedClass_<'a> { // entity +pub struct ExternallyDefinedClass_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub item_id: SourceItem<'a>, @@ -13325,12 +15460,16 @@ impl<'a> ParseFromChunks<'a> for ExternallyDefinedClass_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - item_id, - source, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + item_id, + source, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternallyDefinedClass_<'a> { @@ -13342,7 +15481,8 @@ impl<'a> HasId for ExternallyDefinedClass_<'a> { } } #[derive(Debug)] -pub struct ExternallyDefinedCurveFont_<'a> { // entity +pub struct ExternallyDefinedCurveFont_<'a> { + // entity pub item_id: SourceItem<'a>, pub source: ExternalSource<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -13362,10 +15502,14 @@ impl<'a> ParseFromChunks<'a> for ExternallyDefinedCurveFont_<'a> { let (s, _) = tag("EXTERNALLY_DEFINED_CURVE_FONT(")(strs[0])?; let (s, item_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - item_id, - source, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + item_id, + source, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternallyDefinedCurveFont_<'a> { @@ -13375,7 +15519,8 @@ impl<'a> HasId for ExternallyDefinedCurveFont_<'a> { } } #[derive(Debug)] -pub struct ExternallyDefinedDimensionDefinition_<'a> { // entity +pub struct ExternallyDefinedDimensionDefinition_<'a> { + // entity pub applies_to: ShapeAspect<'a>, pub name: Label<'a>, pub item_id: SourceItem<'a>, @@ -13399,12 +15544,16 @@ impl<'a> ParseFromChunks<'a> for ExternallyDefinedDimensionDefinition_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, item_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to, - name, - item_id, - source, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + applies_to, + name, + item_id, + source, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternallyDefinedDimensionDefinition_<'a> { @@ -13416,7 +15565,8 @@ impl<'a> HasId for ExternallyDefinedDimensionDefinition_<'a> { } } #[derive(Debug)] -pub struct ExternallyDefinedFeatureDefinition_<'a> { // entity +pub struct ExternallyDefinedFeatureDefinition_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub item_id: SourceItem<'a>, @@ -13440,12 +15590,16 @@ impl<'a> ParseFromChunks<'a> for ExternallyDefinedFeatureDefinition_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - item_id, - source, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + item_id, + source, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternallyDefinedFeatureDefinition_<'a> { @@ -13457,7 +15611,8 @@ impl<'a> HasId for ExternallyDefinedFeatureDefinition_<'a> { } } #[derive(Debug)] -pub struct ExternallyDefinedGeneralProperty_<'a> { // entity +pub struct ExternallyDefinedGeneralProperty_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -13483,13 +15638,17 @@ impl<'a> ParseFromChunks<'a> for ExternallyDefinedGeneralProperty_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - item_id, - source, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + name, + description, + item_id, + source, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternallyDefinedGeneralProperty_<'a> { @@ -13502,7 +15661,8 @@ impl<'a> HasId for ExternallyDefinedGeneralProperty_<'a> { } } #[derive(Debug)] -pub struct ExternallyDefinedHatchStyle_<'a> { // entity +pub struct ExternallyDefinedHatchStyle_<'a> { + // entity pub item_id: SourceItem<'a>, pub source: ExternalSource<'a>, pub name: Label<'a>, @@ -13524,11 +15684,15 @@ impl<'a> ParseFromChunks<'a> for ExternallyDefinedHatchStyle_<'a> { let (s, item_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - item_id, - source, - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + item_id, + source, + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternallyDefinedHatchStyle_<'a> { @@ -13539,7 +15703,8 @@ impl<'a> HasId for ExternallyDefinedHatchStyle_<'a> { } } #[derive(Debug)] -pub struct ExternallyDefinedItem_<'a> { // entity +pub struct ExternallyDefinedItem_<'a> { + // entity pub item_id: SourceItem<'a>, pub source: ExternalSource<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -13559,10 +15724,14 @@ impl<'a> ParseFromChunks<'a> for ExternallyDefinedItem_<'a> { let (s, _) = tag("EXTERNALLY_DEFINED_ITEM(")(strs[0])?; let (s, item_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - item_id, - source, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + item_id, + source, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternallyDefinedItem_<'a> { @@ -13572,7 +15741,8 @@ impl<'a> HasId for ExternallyDefinedItem_<'a> { } } #[derive(Debug)] -pub struct ExternallyDefinedItemRelationship_<'a> { // entity +pub struct ExternallyDefinedItemRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_item: ExternallyDefinedItem<'a>, @@ -13594,14 +15764,20 @@ impl<'a> ParseFromChunks<'a> for ExternallyDefinedItemRelationship_<'a> { let (s, _) = tag("EXTERNALLY_DEFINED_ITEM_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_item) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_item, - related_item, - _marker: std::marker::PhantomData})) + let (s, relating_item) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_item) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_item, + related_item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternallyDefinedItemRelationship_<'a> { @@ -13613,7 +15789,8 @@ impl<'a> HasId for ExternallyDefinedItemRelationship_<'a> { } } #[derive(Debug)] -pub struct ExternallyDefinedStyle_<'a> { // entity +pub struct ExternallyDefinedStyle_<'a> { + // entity pub item_id: SourceItem<'a>, pub source: ExternalSource<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -13633,10 +15810,14 @@ impl<'a> ParseFromChunks<'a> for ExternallyDefinedStyle_<'a> { let (s, _) = tag("EXTERNALLY_DEFINED_STYLE(")(strs[0])?; let (s, item_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - item_id, - source, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + item_id, + source, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternallyDefinedStyle_<'a> { @@ -13646,7 +15827,8 @@ impl<'a> HasId for ExternallyDefinedStyle_<'a> { } } #[derive(Debug)] -pub struct ExternallyDefinedSymbol_<'a> { // entity +pub struct ExternallyDefinedSymbol_<'a> { + // entity pub item_id: SourceItem<'a>, pub source: ExternalSource<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -13666,10 +15848,14 @@ impl<'a> ParseFromChunks<'a> for ExternallyDefinedSymbol_<'a> { let (s, _) = tag("EXTERNALLY_DEFINED_SYMBOL(")(strs[0])?; let (s, item_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - item_id, - source, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + item_id, + source, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternallyDefinedSymbol_<'a> { @@ -13679,7 +15865,8 @@ impl<'a> HasId for ExternallyDefinedSymbol_<'a> { } } #[derive(Debug)] -pub struct ExternallyDefinedTextFont_<'a> { // entity +pub struct ExternallyDefinedTextFont_<'a> { + // entity pub item_id: SourceItem<'a>, pub source: ExternalSource<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -13699,10 +15886,14 @@ impl<'a> ParseFromChunks<'a> for ExternallyDefinedTextFont_<'a> { let (s, _) = tag("EXTERNALLY_DEFINED_TEXT_FONT(")(strs[0])?; let (s, item_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - item_id, - source, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + item_id, + source, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternallyDefinedTextFont_<'a> { @@ -13712,7 +15903,8 @@ impl<'a> HasId for ExternallyDefinedTextFont_<'a> { } } #[derive(Debug)] -pub struct ExternallyDefinedTileStyle_<'a> { // entity +pub struct ExternallyDefinedTileStyle_<'a> { + // entity pub item_id: SourceItem<'a>, pub source: ExternalSource<'a>, pub name: Label<'a>, @@ -13734,11 +15926,15 @@ impl<'a> ParseFromChunks<'a> for ExternallyDefinedTileStyle_<'a> { let (s, item_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - item_id, - source, - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + item_id, + source, + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExternallyDefinedTileStyle_<'a> { @@ -13749,7 +15945,8 @@ impl<'a> HasId for ExternallyDefinedTileStyle_<'a> { } } #[derive(Debug)] -pub struct ExtrudedAreaSolid_<'a> { // entity +pub struct ExtrudedAreaSolid_<'a> { + // entity pub name: Label<'a>, pub swept_area: CurveBoundedSurface<'a>, pub extruded_direction: Direction<'a>, @@ -13773,12 +15970,16 @@ impl<'a> ParseFromChunks<'a> for ExtrudedAreaSolid_<'a> { let (s, swept_area) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, extruded_direction) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, depth) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - swept_area, - extruded_direction, - depth, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + swept_area, + extruded_direction, + depth, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExtrudedAreaSolid_<'a> { @@ -13790,7 +15991,8 @@ impl<'a> HasId for ExtrudedAreaSolid_<'a> { } } #[derive(Debug)] -pub struct ExtrudedFaceSolid_<'a> { // entity +pub struct ExtrudedFaceSolid_<'a> { + // entity pub name: Label<'a>, pub swept_face: FaceSurface<'a>, pub extruded_direction: Direction<'a>, @@ -13814,12 +16016,16 @@ impl<'a> ParseFromChunks<'a> for ExtrudedFaceSolid_<'a> { let (s, swept_face) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, extruded_direction) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, depth) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - swept_face, - extruded_direction, - depth, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + swept_face, + extruded_direction, + depth, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ExtrudedFaceSolid_<'a> { @@ -13831,7 +16037,8 @@ impl<'a> HasId for ExtrudedFaceSolid_<'a> { } } #[derive(Debug)] -pub struct Face_<'a> { // entity +pub struct Face_<'a> { + // entity pub name: Label<'a>, pub bounds: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -13851,10 +16058,14 @@ impl<'a> ParseFromChunks<'a> for Face_<'a> { let (s, _) = tag("FACE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, bounds) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - bounds, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + bounds, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Face_<'a> { @@ -13864,7 +16075,8 @@ impl<'a> HasId for Face_<'a> { } } #[derive(Debug)] -pub struct FaceBasedSurfaceModel_<'a> { // entity +pub struct FaceBasedSurfaceModel_<'a> { + // entity pub name: Label<'a>, pub fbsm_faces: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -13883,11 +16095,16 @@ impl<'a> ParseFromChunks<'a> for FaceBasedSurfaceModel_<'a> { let mut i = 0; let (s, _) = tag("FACE_BASED_SURFACE_MODEL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, fbsm_faces) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - fbsm_faces, - _marker: std::marker::PhantomData})) + let (s, fbsm_faces) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + fbsm_faces, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FaceBasedSurfaceModel_<'a> { @@ -13897,7 +16114,8 @@ impl<'a> HasId for FaceBasedSurfaceModel_<'a> { } } #[derive(Debug)] -pub struct FaceBound_<'a> { // entity +pub struct FaceBound_<'a> { + // entity pub name: Label<'a>, pub bound: Loop<'a>, pub orientation: bool, @@ -13919,11 +16137,15 @@ impl<'a> ParseFromChunks<'a> for FaceBound_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, bound) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - bound, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + bound, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FaceBound_<'a> { @@ -13934,7 +16156,8 @@ impl<'a> HasId for FaceBound_<'a> { } } #[derive(Debug)] -pub struct FaceOuterBound_<'a> { // entity +pub struct FaceOuterBound_<'a> { + // entity pub name: Label<'a>, pub bound: Loop<'a>, pub orientation: bool, @@ -13956,11 +16179,15 @@ impl<'a> ParseFromChunks<'a> for FaceOuterBound_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, bound) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - bound, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + bound, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FaceOuterBound_<'a> { @@ -13971,7 +16198,8 @@ impl<'a> HasId for FaceOuterBound_<'a> { } } #[derive(Debug)] -pub struct FaceShapeRepresentation_<'a> { // entity +pub struct FaceShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -13992,12 +16220,17 @@ impl<'a> ParseFromChunks<'a> for FaceShapeRepresentation_<'a> { let (s, _) = tag("FACE_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FaceShapeRepresentation_<'a> { @@ -14009,7 +16242,8 @@ impl<'a> HasId for FaceShapeRepresentation_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct FaceSurface_<'a> { // entity +pub struct FaceSurface_<'a> { + // entity pub representation_item__name: Label<'a>, pub bounds: Vec>, pub face_geometry: Surface<'a>, @@ -14030,16 +16264,21 @@ impl<'a> ParseFromChunks<'a> for FaceSurface_<'a> { let mut i = 0; let (s, _) = tag("FACE_SURFACE(")(strs[0])?; #[allow(non_snake_case)] - let (s, representation_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, representation_item__name) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, bounds) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, face_geometry) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, same_sense) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - representation_item__name, - bounds, - face_geometry, - same_sense, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + representation_item__name, + bounds, + face_geometry, + same_sense, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FaceSurface_<'a> { @@ -14051,7 +16290,8 @@ impl<'a> HasId for FaceSurface_<'a> { } } #[derive(Debug)] -pub struct FacetedBrep_<'a> { // entity +pub struct FacetedBrep_<'a> { + // entity pub name: Label<'a>, pub outer: ClosedShell<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -14071,10 +16311,14 @@ impl<'a> ParseFromChunks<'a> for FacetedBrep_<'a> { let (s, _) = tag("FACETED_BREP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, outer) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - outer, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + outer, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FacetedBrep_<'a> { @@ -14084,7 +16328,8 @@ impl<'a> HasId for FacetedBrep_<'a> { } } #[derive(Debug)] -pub struct FacetedBrepShapeRepresentation_<'a> { // entity +pub struct FacetedBrepShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -14105,12 +16350,17 @@ impl<'a> ParseFromChunks<'a> for FacetedBrepShapeRepresentation_<'a> { let (s, _) = tag("FACETED_BREP_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FacetedBrepShapeRepresentation_<'a> { @@ -14121,7 +16371,8 @@ impl<'a> HasId for FacetedBrepShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct FeatureComponentDefinition_<'a> { // entity +pub struct FeatureComponentDefinition_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -14141,10 +16392,14 @@ impl<'a> ParseFromChunks<'a> for FeatureComponentDefinition_<'a> { let (s, _) = tag("FEATURE_COMPONENT_DEFINITION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FeatureComponentDefinition_<'a> { @@ -14154,7 +16409,8 @@ impl<'a> HasId for FeatureComponentDefinition_<'a> { } } #[derive(Debug)] -pub struct FeatureComponentRelationship_<'a> { // entity +pub struct FeatureComponentRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_shape_aspect: ShapeAspect<'a>, @@ -14176,14 +16432,20 @@ impl<'a> ParseFromChunks<'a> for FeatureComponentRelationship_<'a> { let (s, _) = tag("FEATURE_COMPONENT_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_shape_aspect, - related_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, relating_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_shape_aspect, + related_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FeatureComponentRelationship_<'a> { @@ -14195,7 +16457,8 @@ impl<'a> HasId for FeatureComponentRelationship_<'a> { } } #[derive(Debug)] -pub struct FeatureDefinition_<'a> { // entity +pub struct FeatureDefinition_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -14215,10 +16478,14 @@ impl<'a> ParseFromChunks<'a> for FeatureDefinition_<'a> { let (s, _) = tag("FEATURE_DEFINITION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FeatureDefinition_<'a> { @@ -14228,7 +16495,8 @@ impl<'a> HasId for FeatureDefinition_<'a> { } } #[derive(Debug)] -pub struct FeatureInPanel_<'a> { // entity +pub struct FeatureInPanel_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -14248,10 +16516,14 @@ impl<'a> ParseFromChunks<'a> for FeatureInPanel_<'a> { let (s, _) = tag("FEATURE_IN_PANEL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FeatureInPanel_<'a> { @@ -14261,7 +16533,8 @@ impl<'a> HasId for FeatureInPanel_<'a> { } } #[derive(Debug)] -pub struct FeaturePattern_<'a> { // entity +pub struct FeaturePattern_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -14281,10 +16554,14 @@ impl<'a> ParseFromChunks<'a> for FeaturePattern_<'a> { let (s, _) = tag("FEATURE_PATTERN(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FeaturePattern_<'a> { @@ -14294,7 +16571,8 @@ impl<'a> HasId for FeaturePattern_<'a> { } } #[derive(Debug)] -pub struct FeaturedShape_<'a> { // entity +pub struct FeaturedShape_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub definition: CharacterizedDefinition<'a>, @@ -14315,12 +16593,17 @@ impl<'a> ParseFromChunks<'a> for FeaturedShape_<'a> { let (s, _) = tag("FEATURED_SHAPE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, definition) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - definition, - _marker: std::marker::PhantomData})) + let (s, definition) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + definition, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FeaturedShape_<'a> { @@ -14331,7 +16614,8 @@ impl<'a> HasId for FeaturedShape_<'a> { } } #[derive(Debug)] -pub struct FillAreaStyle_<'a> { // entity +pub struct FillAreaStyle_<'a> { + // entity pub name: Label<'a>, pub fill_styles: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -14350,11 +16634,16 @@ impl<'a> ParseFromChunks<'a> for FillAreaStyle_<'a> { let mut i = 0; let (s, _) = tag("FILL_AREA_STYLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, fill_styles) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - fill_styles, - _marker: std::marker::PhantomData})) + let (s, fill_styles) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + fill_styles, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FillAreaStyle_<'a> { @@ -14364,7 +16653,8 @@ impl<'a> HasId for FillAreaStyle_<'a> { } } #[derive(Debug)] -pub struct FillAreaStyleColour_<'a> { // entity +pub struct FillAreaStyleColour_<'a> { + // entity pub name: Label<'a>, pub fill_colour: Colour<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -14384,10 +16674,14 @@ impl<'a> ParseFromChunks<'a> for FillAreaStyleColour_<'a> { let (s, _) = tag("FILL_AREA_STYLE_COLOUR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, fill_colour) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - fill_colour, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + fill_colour, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FillAreaStyleColour_<'a> { @@ -14397,7 +16691,8 @@ impl<'a> HasId for FillAreaStyleColour_<'a> { } } #[derive(Debug)] -pub struct FillAreaStyleHatching_<'a> { // entity +pub struct FillAreaStyleHatching_<'a> { + // entity pub name: Label<'a>, pub hatch_line_appearance: CurveStyle<'a>, pub start_of_next_hatch_line: OneDirectionRepeatFactor<'a>, @@ -14420,19 +16715,27 @@ impl<'a> ParseFromChunks<'a> for FillAreaStyleHatching_<'a> { let mut i = 0; let (s, _) = tag("FILL_AREA_STYLE_HATCHING(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, hatch_line_appearance) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, start_of_next_hatch_line) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, point_of_reference_hatch_line) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, hatch_line_appearance) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, start_of_next_hatch_line) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, point_of_reference_hatch_line) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, pattern_start) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, hatch_line_angle) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - hatch_line_appearance, - start_of_next_hatch_line, - point_of_reference_hatch_line, - pattern_start, - hatch_line_angle, - _marker: std::marker::PhantomData})) + let (s, hatch_line_angle) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + hatch_line_appearance, + start_of_next_hatch_line, + point_of_reference_hatch_line, + pattern_start, + hatch_line_angle, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FillAreaStyleHatching_<'a> { @@ -14450,7 +16753,8 @@ pub struct FillAreaStyleTileShapeSelect_<'a>(std::marker::PhantomData<&'a ()>); pub type FillAreaStyleTileShapeSelect<'a> = Id>; #[derive(Debug)] -pub struct FillAreaStyleTileSymbolWithStyle_<'a> { // entity +pub struct FillAreaStyleTileSymbolWithStyle_<'a> { + // entity pub name: Label<'a>, pub symbol: AnnotationSymbolOccurrence<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -14469,11 +16773,16 @@ impl<'a> ParseFromChunks<'a> for FillAreaStyleTileSymbolWithStyle_<'a> { let mut i = 0; let (s, _) = tag("FILL_AREA_STYLE_TILE_SYMBOL_WITH_STYLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, symbol) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - symbol, - _marker: std::marker::PhantomData})) + let (s, symbol) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + symbol, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FillAreaStyleTileSymbolWithStyle_<'a> { @@ -14483,7 +16792,8 @@ impl<'a> HasId for FillAreaStyleTileSymbolWithStyle_<'a> { } } #[derive(Debug)] -pub struct FillAreaStyleTiles_<'a> { // entity +pub struct FillAreaStyleTiles_<'a> { + // entity pub name: Label<'a>, pub tiling_pattern: TwoDirectionRepeatFactor<'a>, pub tiles: Vec>, @@ -14504,15 +16814,22 @@ impl<'a> ParseFromChunks<'a> for FillAreaStyleTiles_<'a> { let mut i = 0; let (s, _) = tag("FILL_AREA_STYLE_TILES(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, tiling_pattern) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, tiles) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, tiling_scale) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - tiling_pattern, - tiles, - tiling_scale, - _marker: std::marker::PhantomData})) + let (s, tiling_pattern) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, tiles) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, tiling_scale) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + tiling_pattern, + tiles, + tiling_scale, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FillAreaStyleTiles_<'a> { @@ -14528,7 +16845,8 @@ pub struct FillStyleSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous pub type FillStyleSelect<'a> = Id>; #[derive(Debug)] -pub struct Fillet_<'a> { // entity +pub struct Fillet_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -14550,14 +16868,19 @@ impl<'a> ParseFromChunks<'a> for Fillet_<'a> { let (s, _) = tag("FILLET(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Fillet_<'a> { @@ -14569,7 +16892,8 @@ impl<'a> HasId for Fillet_<'a> { } } #[derive(Debug)] -pub struct FlatnessTolerance_<'a> { // entity +pub struct FlatnessTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -14592,13 +16916,18 @@ impl<'a> ParseFromChunks<'a> for FlatnessTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FlatnessTolerance_<'a> { @@ -14614,8 +16943,9 @@ pub struct FontSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous selec pub type FontSelect<'a> = Id>; #[derive(Debug)] -pub struct FormatFunction_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct FormatFunction_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type FormatFunction<'a> = Id>; @@ -14631,10 +16961,15 @@ impl<'a> ParseFromChunks<'a> for FormatFunction_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("FORMAT_FUNCTION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FormatFunction_<'a> { @@ -14643,7 +16978,8 @@ impl<'a> HasId for FormatFunction_<'a> { } } #[derive(Debug)] -pub struct FoundedItem_<'a> { // entity +pub struct FoundedItem_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type FoundedItem<'a> = Id>; @@ -14658,20 +16994,24 @@ impl<'a> FromEntity<'a> for FoundedItem_<'a> { impl<'a> ParseFromChunks<'a> for FoundedItem_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("FOUNDED_ITEM(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FoundedItem_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] pub struct FoundedItemSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous select pub type FoundedItemSelect<'a> = Id>; #[derive(Debug)] -pub struct FoundedKinematicPath_<'a> { // entity +pub struct FoundedKinematicPath_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -14692,12 +17032,17 @@ impl<'a> ParseFromChunks<'a> for FoundedKinematicPath_<'a> { let (s, _) = tag("FOUNDED_KINEMATIC_PATH(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FoundedKinematicPath_<'a> { @@ -14708,7 +17053,8 @@ impl<'a> HasId for FoundedKinematicPath_<'a> { } } #[derive(Debug)] -pub struct FullyConstrainedPair_<'a> { // entity +pub struct FullyConstrainedPair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -14731,16 +17077,22 @@ impl<'a> ParseFromChunks<'a> for FullyConstrainedPair_<'a> { let (s, _) = tag("FULLY_CONSTRAINED_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FullyConstrainedPair_<'a> { @@ -14753,7 +17105,8 @@ impl<'a> HasId for FullyConstrainedPair_<'a> { } } #[derive(Debug)] -pub struct FunctionallyDefinedTransformation_<'a> { // entity +pub struct FunctionallyDefinedTransformation_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -14773,10 +17126,14 @@ impl<'a> ParseFromChunks<'a> for FunctionallyDefinedTransformation_<'a> { let (s, _) = tag("FUNCTIONALLY_DEFINED_TRANSFORMATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for FunctionallyDefinedTransformation_<'a> { @@ -14786,7 +17143,8 @@ impl<'a> HasId for FunctionallyDefinedTransformation_<'a> { } } #[derive(Debug)] -pub struct GearPair_<'a> { // entity +pub struct GearPair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -14814,26 +17172,35 @@ impl<'a> ParseFromChunks<'a> for GearPair_<'a> { let (s, _) = tag("GEAR_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, radius_first_link) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, radius_second_link) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, radius_first_link) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, radius_second_link) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, bevel) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, helical_angle) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, helical_angle) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, gear_ratio) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - radius_first_link, - radius_second_link, - bevel, - helical_angle, - gear_ratio, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + radius_first_link, + radius_second_link, + bevel, + helical_angle, + gear_ratio, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GearPair_<'a> { @@ -14851,7 +17218,8 @@ impl<'a> HasId for GearPair_<'a> { } } #[derive(Debug)] -pub struct GearPairRange_<'a> { // entity +pub struct GearPairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub lower_limit_actual_rotation_1: RotationalRangeMeasure<'a>, pub upper_limit_actual_rotation_1: RotationalRangeMeasure<'a>, @@ -14871,13 +17239,19 @@ impl<'a> ParseFromChunks<'a> for GearPairRange_<'a> { let mut i = 0; let (s, _) = tag("GEAR_PAIR_RANGE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_actual_rotation_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_actual_rotation_1) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - lower_limit_actual_rotation_1, - upper_limit_actual_rotation_1, - _marker: std::marker::PhantomData})) + let (s, lower_limit_actual_rotation_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_actual_rotation_1) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + lower_limit_actual_rotation_1, + upper_limit_actual_rotation_1, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GearPairRange_<'a> { @@ -14888,7 +17262,8 @@ impl<'a> HasId for GearPairRange_<'a> { } } #[derive(Debug)] -pub struct GearPairValue_<'a> { // entity +pub struct GearPairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_rotation_1: PlaneAngleMeasure<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -14907,11 +17282,16 @@ impl<'a> ParseFromChunks<'a> for GearPairValue_<'a> { let mut i = 0; let (s, _) = tag("GEAR_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_rotation_1) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_rotation_1, - _marker: std::marker::PhantomData})) + let (s, actual_rotation_1) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_rotation_1, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GearPairValue_<'a> { @@ -14921,7 +17301,8 @@ impl<'a> HasId for GearPairValue_<'a> { } } #[derive(Debug)] -pub struct GeneralFeature_<'a> { // entity +pub struct GeneralFeature_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -14941,10 +17322,14 @@ impl<'a> ParseFromChunks<'a> for GeneralFeature_<'a> { let (s, _) = tag("GENERAL_FEATURE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeneralFeature_<'a> { @@ -14954,7 +17339,8 @@ impl<'a> HasId for GeneralFeature_<'a> { } } #[derive(Debug)] -pub struct GeneralMaterialProperty_<'a> { // entity +pub struct GeneralMaterialProperty_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -14976,11 +17362,15 @@ impl<'a> ParseFromChunks<'a> for GeneralMaterialProperty_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeneralMaterialProperty_<'a> { @@ -14991,7 +17381,8 @@ impl<'a> HasId for GeneralMaterialProperty_<'a> { } } #[derive(Debug)] -pub struct GeneralProperty_<'a> { // entity +pub struct GeneralProperty_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -15013,11 +17404,15 @@ impl<'a> ParseFromChunks<'a> for GeneralProperty_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeneralProperty_<'a> { @@ -15028,7 +17423,8 @@ impl<'a> HasId for GeneralProperty_<'a> { } } #[derive(Debug)] -pub struct GeneralPropertyAssociation_<'a> { // entity +pub struct GeneralPropertyAssociation_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub base_definition: GeneralProperty<'a>, @@ -15050,14 +17446,20 @@ impl<'a> ParseFromChunks<'a> for GeneralPropertyAssociation_<'a> { let (s, _) = tag("GENERAL_PROPERTY_ASSOCIATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, base_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, derived_definition) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - base_definition, - derived_definition, - _marker: std::marker::PhantomData})) + let (s, base_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, derived_definition) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + base_definition, + derived_definition, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeneralPropertyAssociation_<'a> { @@ -15069,7 +17471,8 @@ impl<'a> HasId for GeneralPropertyAssociation_<'a> { } } #[derive(Debug)] -pub struct GeneralPropertyRelationship_<'a> { // entity +pub struct GeneralPropertyRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_property: GeneralProperty<'a>, @@ -15091,14 +17494,20 @@ impl<'a> ParseFromChunks<'a> for GeneralPropertyRelationship_<'a> { let (s, _) = tag("GENERAL_PROPERTY_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_property) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_property) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_property, - related_property, - _marker: std::marker::PhantomData})) + let (s, relating_property) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_property) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_property, + related_property, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeneralPropertyRelationship_<'a> { @@ -15110,7 +17519,8 @@ impl<'a> HasId for GeneralPropertyRelationship_<'a> { } } #[derive(Debug)] -pub struct GenericCharacterGlyphSymbol_<'a> { // entity +pub struct GenericCharacterGlyphSymbol_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -15131,12 +17541,17 @@ impl<'a> ParseFromChunks<'a> for GenericCharacterGlyphSymbol_<'a> { let (s, _) = tag("GENERIC_CHARACTER_GLYPH_SYMBOL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GenericCharacterGlyphSymbol_<'a> { @@ -15147,7 +17562,8 @@ impl<'a> HasId for GenericCharacterGlyphSymbol_<'a> { } } #[derive(Debug)] -pub struct GenericExpression_<'a> { // entity +pub struct GenericExpression_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type GenericExpression<'a> = Id>; @@ -15162,16 +17578,20 @@ impl<'a> FromEntity<'a> for GenericExpression_<'a> { impl<'a> ParseFromChunks<'a> for GenericExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("GENERIC_EXPRESSION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GenericExpression_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct GenericLiteral_<'a> { // entity +pub struct GenericLiteral_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type GenericLiteral<'a> = Id>; @@ -15186,16 +17606,20 @@ impl<'a> FromEntity<'a> for GenericLiteral_<'a> { impl<'a> ParseFromChunks<'a> for GenericLiteral_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("GENERIC_LITERAL(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GenericLiteral_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct GenericVariable_<'a> { // entity +pub struct GenericVariable_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type GenericVariable<'a> = Id>; @@ -15210,16 +17634,20 @@ impl<'a> FromEntity<'a> for GenericVariable_<'a> { impl<'a> ParseFromChunks<'a> for GenericVariable_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("GENERIC_VARIABLE(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GenericVariable_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct GeometricAlignment_<'a> { // entity +pub struct GeometricAlignment_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -15241,14 +17669,19 @@ impl<'a> ParseFromChunks<'a> for GeometricAlignment_<'a> { let (s, _) = tag("GEOMETRIC_ALIGNMENT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricAlignment_<'a> { @@ -15260,7 +17693,8 @@ impl<'a> HasId for GeometricAlignment_<'a> { } } #[derive(Debug)] -pub struct GeometricCurveSet_<'a> { // entity +pub struct GeometricCurveSet_<'a> { + // entity pub name: Label<'a>, pub elements: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -15279,11 +17713,16 @@ impl<'a> ParseFromChunks<'a> for GeometricCurveSet_<'a> { let mut i = 0; let (s, _) = tag("GEOMETRIC_CURVE_SET(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, elements) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - elements, - _marker: std::marker::PhantomData})) + let (s, elements) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + elements, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricCurveSet_<'a> { @@ -15293,7 +17732,8 @@ impl<'a> HasId for GeometricCurveSet_<'a> { } } #[derive(Debug)] -pub struct GeometricIntersection_<'a> { // entity +pub struct GeometricIntersection_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -15315,14 +17755,19 @@ impl<'a> ParseFromChunks<'a> for GeometricIntersection_<'a> { let (s, _) = tag("GEOMETRIC_INTERSECTION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricIntersection_<'a> { @@ -15334,7 +17779,8 @@ impl<'a> HasId for GeometricIntersection_<'a> { } } #[derive(Debug)] -pub struct GeometricItemSpecificUsage_<'a> { // entity +pub struct GeometricItemSpecificUsage_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub definition: RepresentedDefinition<'a>, @@ -15357,16 +17803,23 @@ impl<'a> ParseFromChunks<'a> for GeometricItemSpecificUsage_<'a> { let (s, _) = tag("GEOMETRIC_ITEM_SPECIFIC_USAGE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, used_representation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, identified_item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - definition, - used_representation, - identified_item, - _marker: std::marker::PhantomData})) + let (s, definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, used_representation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, identified_item) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + definition, + used_representation, + identified_item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricItemSpecificUsage_<'a> { @@ -15379,7 +17832,8 @@ impl<'a> HasId for GeometricItemSpecificUsage_<'a> { } } #[derive(Debug)] -pub struct GeometricRepresentationContext_<'a> { // entity +pub struct GeometricRepresentationContext_<'a> { + // entity pub context_identifier: Identifier<'a>, pub context_type: Text<'a>, pub coordinate_space_dimension: DimensionCount<'a>, @@ -15400,12 +17854,17 @@ impl<'a> ParseFromChunks<'a> for GeometricRepresentationContext_<'a> { let (s, _) = tag("GEOMETRIC_REPRESENTATION_CONTEXT(")(strs[0])?; let (s, context_identifier) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, context_type) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, coordinate_space_dimension) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - context_identifier, - context_type, - coordinate_space_dimension, - _marker: std::marker::PhantomData})) + let (s, coordinate_space_dimension) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + context_identifier, + context_type, + coordinate_space_dimension, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricRepresentationContext_<'a> { @@ -15416,7 +17875,8 @@ impl<'a> HasId for GeometricRepresentationContext_<'a> { } } #[derive(Debug)] -pub struct GeometricRepresentationItem_<'a> { // entity +pub struct GeometricRepresentationItem_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -15434,9 +17894,13 @@ impl<'a> ParseFromChunks<'a> for GeometricRepresentationItem_<'a> { let mut i = 0; let (s, _) = tag("GEOMETRIC_REPRESENTATION_ITEM(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricRepresentationItem_<'a> { @@ -15445,7 +17909,8 @@ impl<'a> HasId for GeometricRepresentationItem_<'a> { } } #[derive(Debug)] -pub struct GeometricSet_<'a> { // entity +pub struct GeometricSet_<'a> { + // entity pub name: Label<'a>, pub elements: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -15464,11 +17929,16 @@ impl<'a> ParseFromChunks<'a> for GeometricSet_<'a> { let mut i = 0; let (s, _) = tag("GEOMETRIC_SET(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, elements) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - elements, - _marker: std::marker::PhantomData})) + let (s, elements) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + elements, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricSet_<'a> { @@ -15482,7 +17952,8 @@ pub struct GeometricSetSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambiguo pub type GeometricSetSelect<'a> = Id>; #[derive(Debug)] -pub struct GeometricTolerance_<'a> { // entity +pub struct GeometricTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -15505,13 +17976,18 @@ impl<'a> ParseFromChunks<'a> for GeometricTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricTolerance_<'a> { @@ -15523,7 +17999,8 @@ impl<'a> HasId for GeometricTolerance_<'a> { } } #[derive(Debug)] -pub struct GeometricToleranceRelationship_<'a> { // entity +pub struct GeometricToleranceRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub relating_geometric_tolerance: GeometricTolerance<'a>, @@ -15545,14 +18022,20 @@ impl<'a> ParseFromChunks<'a> for GeometricToleranceRelationship_<'a> { let (s, _) = tag("GEOMETRIC_TOLERANCE_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, relating_geometric_tolerance) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_geometric_tolerance) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_geometric_tolerance, - related_geometric_tolerance, - _marker: std::marker::PhantomData})) + let (s, relating_geometric_tolerance) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_geometric_tolerance) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_geometric_tolerance, + related_geometric_tolerance, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricToleranceRelationship_<'a> { @@ -15564,7 +18047,8 @@ impl<'a> HasId for GeometricToleranceRelationship_<'a> { } } #[derive(Debug)] -pub struct GeometricToleranceWithDatumReference_<'a> { // entity +pub struct GeometricToleranceWithDatumReference_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -15588,15 +18072,21 @@ impl<'a> ParseFromChunks<'a> for GeometricToleranceWithDatumReference_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, datum_system) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - datum_system, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, datum_system) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + datum_system, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricToleranceWithDatumReference_<'a> { @@ -15609,7 +18099,8 @@ impl<'a> HasId for GeometricToleranceWithDatumReference_<'a> { } } #[derive(Debug)] -pub struct GeometricToleranceWithDefinedUnit_<'a> { // entity +pub struct GeometricToleranceWithDefinedUnit_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -15633,15 +18124,20 @@ impl<'a> ParseFromChunks<'a> for GeometricToleranceWithDefinedUnit_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, toleranced_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_size) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - unit_size, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + unit_size, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricToleranceWithDefinedUnit_<'a> { @@ -15654,7 +18150,8 @@ impl<'a> HasId for GeometricToleranceWithDefinedUnit_<'a> { } } #[derive(Debug)] -pub struct GeometricalToleranceCallout_<'a> { // entity +pub struct GeometricalToleranceCallout_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -15673,11 +18170,16 @@ impl<'a> ParseFromChunks<'a> for GeometricalToleranceCallout_<'a> { let mut i = 0; let (s, _) = tag("GEOMETRICAL_TOLERANCE_CALLOUT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricalToleranceCallout_<'a> { @@ -15687,13 +18189,15 @@ impl<'a> HasId for GeometricalToleranceCallout_<'a> { } } #[derive(Debug)] -pub struct GeometricallyBounded2dWireframeRepresentation_<'a> { // entity +pub struct GeometricallyBounded2dWireframeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type GeometricallyBounded2dWireframeRepresentation<'a> = Id>; +pub type GeometricallyBounded2dWireframeRepresentation<'a> = + Id>; impl<'a> FromEntity<'a> for GeometricallyBounded2dWireframeRepresentation_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -15708,12 +18212,17 @@ impl<'a> ParseFromChunks<'a> for GeometricallyBounded2dWireframeRepresentation_< let (s, _) = tag("GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricallyBounded2dWireframeRepresentation_<'a> { @@ -15724,13 +18233,15 @@ impl<'a> HasId for GeometricallyBounded2dWireframeRepresentation_<'a> { } } #[derive(Debug)] -pub struct GeometricallyBoundedSurfaceShapeRepresentation_<'a> { // entity +pub struct GeometricallyBoundedSurfaceShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type GeometricallyBoundedSurfaceShapeRepresentation<'a> = Id>; +pub type GeometricallyBoundedSurfaceShapeRepresentation<'a> = + Id>; impl<'a> FromEntity<'a> for GeometricallyBoundedSurfaceShapeRepresentation_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -15745,12 +18256,17 @@ impl<'a> ParseFromChunks<'a> for GeometricallyBoundedSurfaceShapeRepresentation_ let (s, _) = tag("GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricallyBoundedSurfaceShapeRepresentation_<'a> { @@ -15761,13 +18277,15 @@ impl<'a> HasId for GeometricallyBoundedSurfaceShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct GeometricallyBoundedWireframeShapeRepresentation_<'a> { // entity +pub struct GeometricallyBoundedWireframeShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type GeometricallyBoundedWireframeShapeRepresentation<'a> = Id>; +pub type GeometricallyBoundedWireframeShapeRepresentation<'a> = + Id>; impl<'a> FromEntity<'a> for GeometricallyBoundedWireframeShapeRepresentation_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -15782,12 +18300,17 @@ impl<'a> ParseFromChunks<'a> for GeometricallyBoundedWireframeShapeRepresentatio let (s, _) = tag("GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GeometricallyBoundedWireframeShapeRepresentation_<'a> { @@ -15798,7 +18321,8 @@ impl<'a> HasId for GeometricallyBoundedWireframeShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct GlobalUncertaintyAssignedContext_<'a> { // entity +pub struct GlobalUncertaintyAssignedContext_<'a> { + // entity pub context_identifier: Identifier<'a>, pub context_type: Text<'a>, pub uncertainty: Vec>, @@ -15819,12 +18343,17 @@ impl<'a> ParseFromChunks<'a> for GlobalUncertaintyAssignedContext_<'a> { let (s, _) = tag("GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT(")(strs[0])?; let (s, context_identifier) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, context_type) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, uncertainty) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - context_identifier, - context_type, - uncertainty, - _marker: std::marker::PhantomData})) + let (s, uncertainty) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + context_identifier, + context_type, + uncertainty, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GlobalUncertaintyAssignedContext_<'a> { @@ -15835,7 +18364,8 @@ impl<'a> HasId for GlobalUncertaintyAssignedContext_<'a> { } } #[derive(Debug)] -pub struct GlobalUnitAssignedContext_<'a> { // entity +pub struct GlobalUnitAssignedContext_<'a> { + // entity pub context_identifier: Identifier<'a>, pub context_type: Text<'a>, pub units: Vec>, @@ -15857,11 +18387,15 @@ impl<'a> ParseFromChunks<'a> for GlobalUnitAssignedContext_<'a> { let (s, context_identifier) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, context_type) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, units) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - context_identifier, - context_type, - units, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + context_identifier, + context_type, + units, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GlobalUnitAssignedContext_<'a> { @@ -15872,7 +18406,8 @@ impl<'a> HasId for GlobalUnitAssignedContext_<'a> { } } #[derive(Debug)] -pub struct Group_<'a> { // entity +pub struct Group_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -15892,10 +18427,14 @@ impl<'a> ParseFromChunks<'a> for Group_<'a> { let (s, _) = tag("GROUP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Group_<'a> { @@ -15905,7 +18444,8 @@ impl<'a> HasId for Group_<'a> { } } #[derive(Debug)] -pub struct GroupAssignment_<'a> { // entity +pub struct GroupAssignment_<'a> { + // entity pub assigned_group: Group<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -15923,9 +18463,13 @@ impl<'a> ParseFromChunks<'a> for GroupAssignment_<'a> { let mut i = 0; let (s, _) = tag("GROUP_ASSIGNMENT(")(strs[0])?; let (s, assigned_group) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_group, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_group, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GroupAssignment_<'a> { @@ -15938,7 +18482,8 @@ pub struct GroupItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous select pub type GroupItem<'a> = Id>; #[derive(Debug)] -pub struct GroupRelationship_<'a> { // entity +pub struct GroupRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_group: Group<'a>, @@ -15962,12 +18507,16 @@ impl<'a> ParseFromChunks<'a> for GroupRelationship_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, relating_group) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, related_group) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_group, - related_group, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + relating_group, + related_group, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for GroupRelationship_<'a> { @@ -15979,7 +18528,8 @@ impl<'a> HasId for GroupRelationship_<'a> { } } #[derive(Debug)] -pub struct HalfSpaceSolid_<'a> { // entity +pub struct HalfSpaceSolid_<'a> { + // entity pub name: Label<'a>, pub base_surface: Surface<'a>, pub agreement_flag: bool, @@ -16001,11 +18551,15 @@ impl<'a> ParseFromChunks<'a> for HalfSpaceSolid_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, base_surface) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, agreement_flag) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - base_surface, - agreement_flag, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + base_surface, + agreement_flag, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for HalfSpaceSolid_<'a> { @@ -16016,7 +18570,8 @@ impl<'a> HasId for HalfSpaceSolid_<'a> { } } #[derive(Debug)] -pub struct HardnessRepresentation_<'a> { // entity +pub struct HardnessRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -16037,12 +18592,17 @@ impl<'a> ParseFromChunks<'a> for HardnessRepresentation_<'a> { let (s, _) = tag("HARDNESS_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for HardnessRepresentation_<'a> { @@ -16053,7 +18613,8 @@ impl<'a> HasId for HardnessRepresentation_<'a> { } } #[derive(Debug)] -pub struct HiddenElementOverRidingStyledItem_<'a> { // entity +pub struct HiddenElementOverRidingStyledItem_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -16075,17 +18636,23 @@ impl<'a> ParseFromChunks<'a> for HiddenElementOverRidingStyledItem_<'a> { let mut i = 0; let (s, _) = tag("HIDDEN_ELEMENT_OVER_RIDING_STYLED_ITEM(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, over_ridden_style) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, style_context) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - over_ridden_style, - style_context, - _marker: std::marker::PhantomData})) + let (s, style_context) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + styles, + item, + over_ridden_style, + style_context, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for HiddenElementOverRidingStyledItem_<'a> { @@ -16098,7 +18665,8 @@ impl<'a> HasId for HiddenElementOverRidingStyledItem_<'a> { } } #[derive(Debug)] -pub struct HoleBottom_<'a> { // entity +pub struct HoleBottom_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -16120,14 +18688,19 @@ impl<'a> ParseFromChunks<'a> for HoleBottom_<'a> { let (s, _) = tag("HOLE_BOTTOM(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for HoleBottom_<'a> { @@ -16139,7 +18712,8 @@ impl<'a> HasId for HoleBottom_<'a> { } } #[derive(Debug)] -pub struct HoleInPanel_<'a> { // entity +pub struct HoleInPanel_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -16159,10 +18733,14 @@ impl<'a> ParseFromChunks<'a> for HoleInPanel_<'a> { let (s, _) = tag("HOLE_IN_PANEL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for HoleInPanel_<'a> { @@ -16172,7 +18750,8 @@ impl<'a> HasId for HoleInPanel_<'a> { } } #[derive(Debug)] -pub struct HomokineticPair_<'a> { // entity +pub struct HomokineticPair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -16196,18 +18775,25 @@ impl<'a> ParseFromChunks<'a> for HomokineticPair_<'a> { let (s, _) = tag("HOMOKINETIC_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, input_skew_angle) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - input_skew_angle, - _marker: std::marker::PhantomData})) + let (s, input_skew_angle) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + input_skew_angle, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for HomokineticPair_<'a> { @@ -16228,11 +18814,13 @@ impl<'a> Parse<'a> for HourInDay<'a> { } } impl<'a> HasId for HourInDay<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct Hyperbola_<'a> { // entity +pub struct Hyperbola_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement<'a>, pub semi_axis: PositiveLengthMeasure<'a>, @@ -16254,14 +18842,20 @@ impl<'a> ParseFromChunks<'a> for Hyperbola_<'a> { let (s, _) = tag("HYPERBOLA(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, position) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, semi_axis) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, semi_imag_axis) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - semi_axis, - semi_imag_axis, - _marker: std::marker::PhantomData})) + let (s, semi_axis) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, semi_imag_axis) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + position, + semi_axis, + semi_imag_axis, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Hyperbola_<'a> { @@ -16273,7 +18867,8 @@ impl<'a> HasId for Hyperbola_<'a> { } } #[derive(Debug)] -pub struct IdAttribute_<'a> { // entity +pub struct IdAttribute_<'a> { + // entity pub attribute_value: Identifier<'a>, pub identified_item: IdAttributeSelect<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -16292,11 +18887,16 @@ impl<'a> ParseFromChunks<'a> for IdAttribute_<'a> { let mut i = 0; let (s, _) = tag("ID_ATTRIBUTE(")(strs[0])?; let (s, attribute_value) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, identified_item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - attribute_value, - identified_item, - _marker: std::marker::PhantomData})) + let (s, identified_item) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + attribute_value, + identified_item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for IdAttribute_<'a> { @@ -16310,7 +18910,8 @@ pub struct IdAttributeSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambiguou pub type IdAttributeSelect<'a> = Id>; #[derive(Debug)] -pub struct IdentificationAssignment_<'a> { // entity +pub struct IdentificationAssignment_<'a> { + // entity pub assigned_id: Identifier<'a>, pub role: IdentificationRole<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -16330,10 +18931,14 @@ impl<'a> ParseFromChunks<'a> for IdentificationAssignment_<'a> { let (s, _) = tag("IDENTIFICATION_ASSIGNMENT(")(strs[0])?; let (s, assigned_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_id, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_id, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for IdentificationAssignment_<'a> { @@ -16347,7 +18952,8 @@ pub struct IdentificationItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguo pub type IdentificationItem<'a> = Id>; #[derive(Debug)] -pub struct IdentificationRole_<'a> { // entity +pub struct IdentificationRole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -16367,10 +18973,14 @@ impl<'a> ParseFromChunks<'a> for IdentificationRole_<'a> { let (s, _) = tag("IDENTIFICATION_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for IdentificationRole_<'a> { @@ -16387,11 +18997,13 @@ impl<'a> Parse<'a> for Identifier<'a> { } } impl<'a> HasId for Identifier<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct InclusionProductConceptFeature_<'a> { // entity +pub struct InclusionProductConceptFeature_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -16414,13 +19026,19 @@ impl<'a> ParseFromChunks<'a> for InclusionProductConceptFeature_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, condition) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - condition, - _marker: std::marker::PhantomData})) + let (s, condition) = param_from_chunks::>( + true, s, &mut i, strs, + )?; + Ok(( + s, + Self { + id, + name, + description, + condition, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for InclusionProductConceptFeature_<'a> { @@ -16432,8 +19050,9 @@ impl<'a> HasId for InclusionProductConceptFeature_<'a> { } } #[derive(Debug)] -pub struct IndexExpression_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct IndexExpression_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type IndexExpression<'a> = Id>; @@ -16449,10 +19068,15 @@ impl<'a> ParseFromChunks<'a> for IndexExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("INDEX_EXPRESSION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for IndexExpression_<'a> { @@ -16461,7 +19085,8 @@ impl<'a> HasId for IndexExpression_<'a> { } } #[derive(Debug)] -pub struct InitialState_<'a> { // entity +pub struct InitialState_<'a> { + // entity pub applies_to_mechanism: Mechanism<'a>, pub pair_values: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -16481,10 +19106,14 @@ impl<'a> ParseFromChunks<'a> for InitialState_<'a> { let (s, _) = tag("INITIAL_STATE(")(strs[0])?; let (s, applies_to_mechanism) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, pair_values) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_mechanism, - pair_values, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + applies_to_mechanism, + pair_values, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for InitialState_<'a> { @@ -16495,7 +19124,8 @@ impl<'a> HasId for InitialState_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct InstancedFeature_<'a> { // entity +pub struct InstancedFeature_<'a> { + // entity pub shape_aspect__name: Label<'a>, pub shape_aspect__description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -16520,21 +19150,29 @@ impl<'a> ParseFromChunks<'a> for InstancedFeature_<'a> { #[allow(non_snake_case)] let (s, shape_aspect__name) = param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, shape_aspect__description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, shape_aspect__description) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, characterized_object__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, characterized_object__name) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, characterized_object__description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - shape_aspect__name, - shape_aspect__description, - of_shape, - product_definitional, - characterized_object__name, - characterized_object__description, - _marker: std::marker::PhantomData})) + let (s, characterized_object__description) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + shape_aspect__name, + shape_aspect__description, + of_shape, + product_definitional, + characterized_object__name, + characterized_object__description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for InstancedFeature_<'a> { @@ -16548,7 +19186,8 @@ impl<'a> HasId for InstancedFeature_<'a> { } } #[derive(Debug)] -pub struct IntLiteral_<'a> { // entity +pub struct IntLiteral_<'a> { + // entity pub the_value: f64, _marker: std::marker::PhantomData<&'a ()>, } @@ -16566,9 +19205,13 @@ impl<'a> ParseFromChunks<'a> for IntLiteral_<'a> { let mut i = 0; let (s, _) = tag("INT_LITERAL(")(strs[0])?; let (s, the_value) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - the_value, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + the_value, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for IntLiteral_<'a> { @@ -16577,7 +19220,8 @@ impl<'a> HasId for IntLiteral_<'a> { } } #[derive(Debug)] -pub struct IntNumericVariable_<'a> { // entity +pub struct IntNumericVariable_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type IntNumericVariable<'a> = Id>; @@ -16592,16 +19236,20 @@ impl<'a> FromEntity<'a> for IntNumericVariable_<'a> { impl<'a> ParseFromChunks<'a> for IntNumericVariable_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("INT_NUMERIC_VARIABLE(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for IntNumericVariable_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct IntValueFunction_<'a> { // entity +pub struct IntValueFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -16619,9 +19267,13 @@ impl<'a> ParseFromChunks<'a> for IntValueFunction_<'a> { let mut i = 0; let (s, _) = tag("INT_VALUE_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for IntValueFunction_<'a> { @@ -16630,7 +19282,8 @@ impl<'a> HasId for IntValueFunction_<'a> { } } #[derive(Debug)] -pub struct IntegerDefinedFunction_<'a> { // entity +pub struct IntegerDefinedFunction_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type IntegerDefinedFunction<'a> = Id>; @@ -16645,16 +19298,20 @@ impl<'a> FromEntity<'a> for IntegerDefinedFunction_<'a> { impl<'a> ParseFromChunks<'a> for IntegerDefinedFunction_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("INTEGER_DEFINED_FUNCTION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for IntegerDefinedFunction_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct InterpolatedConfigurationSequence_<'a> { // entity +pub struct InterpolatedConfigurationSequence_<'a> { + // entity pub interpolation: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -16671,10 +19328,15 @@ impl<'a> ParseFromChunks<'a> for InterpolatedConfigurationSequence_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("INTERPOLATED_CONFIGURATION_SEQUENCE(")(strs[0])?; - let (s, interpolation) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - interpolation, - _marker: std::marker::PhantomData})) + let (s, interpolation) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + interpolation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for InterpolatedConfigurationSequence_<'a> { @@ -16683,7 +19345,8 @@ impl<'a> HasId for InterpolatedConfigurationSequence_<'a> { } } #[derive(Debug)] -pub enum InterpolationType<'a> { // enum +pub enum InterpolationType<'a> { + // enum Undefined, Synchronous, Linear, @@ -16703,14 +19366,16 @@ impl<'a> Parse<'a> for InterpolationType<'a> { } } impl<'a> HasId for InterpolationType<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct IntersectionCurve_<'a> { // entity +pub struct IntersectionCurve_<'a> { + // entity pub name: Label<'a>, pub curve_3d: Curve<'a>, - pub associated_geometry: ArrayVec::, 2>, + pub associated_geometry: ArrayVec, 2>, pub master_representation: PreferredSurfaceCurveRepresentation<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -16729,14 +19394,20 @@ impl<'a> ParseFromChunks<'a> for IntersectionCurve_<'a> { let (s, _) = tag("INTERSECTION_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_3d) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, associated_geometry) = param_from_chunks::, 2>>(false, s, &mut i, strs)?; - let (s, master_representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - curve_3d, - associated_geometry, - master_representation, - _marker: std::marker::PhantomData})) + let (s, associated_geometry) = + param_from_chunks::, 2>>(false, s, &mut i, strs)?; + let (s, master_representation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + curve_3d, + associated_geometry, + master_representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for IntersectionCurve_<'a> { @@ -16748,7 +19419,8 @@ impl<'a> HasId for IntersectionCurve_<'a> { } } #[derive(Debug)] -pub struct IntervalExpression_<'a> { // entity +pub struct IntervalExpression_<'a> { + // entity pub operands: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -16766,9 +19438,13 @@ impl<'a> ParseFromChunks<'a> for IntervalExpression_<'a> { let mut i = 0; let (s, _) = tag("INTERVAL_EXPRESSION(")(strs[0])?; let (s, operands) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for IntervalExpression_<'a> { @@ -16777,7 +19453,8 @@ impl<'a> HasId for IntervalExpression_<'a> { } } #[derive(Debug)] -pub struct Invisibility_<'a> { // entity +pub struct Invisibility_<'a> { + // entity pub invisible_items: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -16794,10 +19471,15 @@ impl<'a> ParseFromChunks<'a> for Invisibility_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("INVISIBILITY(")(strs[0])?; - let (s, invisible_items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - invisible_items, - _marker: std::marker::PhantomData})) + let (s, invisible_items) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + invisible_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Invisibility_<'a> { @@ -16814,7 +19496,8 @@ pub struct InvisibleItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous se pub type InvisibleItem<'a> = Id>; #[derive(Debug)] -pub struct ItemDefinedTransformation_<'a> { // entity +pub struct ItemDefinedTransformation_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -16836,14 +19519,20 @@ impl<'a> ParseFromChunks<'a> for ItemDefinedTransformation_<'a> { let (s, _) = tag("ITEM_DEFINED_TRANSFORMATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - _marker: std::marker::PhantomData})) + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ItemDefinedTransformation_<'a> { @@ -16855,7 +19544,8 @@ impl<'a> HasId for ItemDefinedTransformation_<'a> { } } #[derive(Debug)] -pub struct ItemIdentifiedRepresentationUsage_<'a> { // entity +pub struct ItemIdentifiedRepresentationUsage_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub definition: RepresentedDefinition<'a>, @@ -16878,16 +19568,23 @@ impl<'a> ParseFromChunks<'a> for ItemIdentifiedRepresentationUsage_<'a> { let (s, _) = tag("ITEM_IDENTIFIED_REPRESENTATION_USAGE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, used_representation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, identified_item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - definition, - used_representation, - identified_item, - _marker: std::marker::PhantomData})) + let (s, definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, used_representation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, identified_item) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + definition, + used_representation, + identified_item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ItemIdentifiedRepresentationUsage_<'a> { @@ -16900,7 +19597,8 @@ impl<'a> HasId for ItemIdentifiedRepresentationUsage_<'a> { } } #[derive(Debug)] -pub struct Joggle_<'a> { // entity +pub struct Joggle_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -16920,10 +19618,14 @@ impl<'a> ParseFromChunks<'a> for Joggle_<'a> { let (s, _) = tag("JOGGLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Joggle_<'a> { @@ -16933,7 +19635,8 @@ impl<'a> HasId for Joggle_<'a> { } } #[derive(Debug)] -pub struct JoggleTermination_<'a> { // entity +pub struct JoggleTermination_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -16955,14 +19658,19 @@ impl<'a> ParseFromChunks<'a> for JoggleTermination_<'a> { let (s, _) = tag("JOGGLE_TERMINATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for JoggleTermination_<'a> { @@ -16974,7 +19682,8 @@ impl<'a> HasId for JoggleTermination_<'a> { } } #[derive(Debug)] -pub struct KinematicAnalysisConsistency_<'a> { // entity +pub struct KinematicAnalysisConsistency_<'a> { + // entity pub control: KinematicControl<'a>, pub result: KinematicAnalysisResult<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -16994,10 +19703,14 @@ impl<'a> ParseFromChunks<'a> for KinematicAnalysisConsistency_<'a> { let (s, _) = tag("KINEMATIC_ANALYSIS_CONSISTENCY(")(strs[0])?; let (s, control) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, result) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - control, - result, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + control, + result, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicAnalysisConsistency_<'a> { @@ -17011,7 +19724,8 @@ pub struct KinematicAnalysisDefinition_<'a>(std::marker::PhantomData<&'a ()>); / pub type KinematicAnalysisDefinition<'a> = Id>; #[derive(Debug)] -pub struct KinematicAnalysisResult_<'a> { // entity +pub struct KinematicAnalysisResult_<'a> { + // entity pub analysed_mechanism: Mechanism<'a>, pub contained_kinematic_results: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -17030,11 +19744,16 @@ impl<'a> ParseFromChunks<'a> for KinematicAnalysisResult_<'a> { let mut i = 0; let (s, _) = tag("KINEMATIC_ANALYSIS_RESULT(")(strs[0])?; let (s, analysed_mechanism) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contained_kinematic_results) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - analysed_mechanism, - contained_kinematic_results, - _marker: std::marker::PhantomData})) + let (s, contained_kinematic_results) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + analysed_mechanism, + contained_kinematic_results, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicAnalysisResult_<'a> { @@ -17044,7 +19763,8 @@ impl<'a> HasId for KinematicAnalysisResult_<'a> { } } #[derive(Debug)] -pub struct KinematicControl_<'a> { // entity +pub struct KinematicControl_<'a> { + // entity pub controlled_mechanism: Mechanism<'a>, pub contained_kinematic_programs: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -17063,11 +19783,16 @@ impl<'a> ParseFromChunks<'a> for KinematicControl_<'a> { let mut i = 0; let (s, _) = tag("KINEMATIC_CONTROL(")(strs[0])?; let (s, controlled_mechanism) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contained_kinematic_programs) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - controlled_mechanism, - contained_kinematic_programs, - _marker: std::marker::PhantomData})) + let (s, contained_kinematic_programs) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + controlled_mechanism, + contained_kinematic_programs, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicControl_<'a> { @@ -17081,13 +19806,15 @@ pub struct KinematicFrameBackground_<'a>(std::marker::PhantomData<&'a ()>); // a pub type KinematicFrameBackground<'a> = Id>; #[derive(Debug)] -pub struct KinematicFrameBackgroundRepresentation_<'a> { // entity +pub struct KinematicFrameBackgroundRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type KinematicFrameBackgroundRepresentation<'a> = Id>; +pub type KinematicFrameBackgroundRepresentation<'a> = + Id>; impl<'a> FromEntity<'a> for KinematicFrameBackgroundRepresentation_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -17102,12 +19829,17 @@ impl<'a> ParseFromChunks<'a> for KinematicFrameBackgroundRepresentation_<'a> { let (s, _) = tag("KINEMATIC_FRAME_BACKGROUND_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicFrameBackgroundRepresentation_<'a> { @@ -17118,7 +19850,8 @@ impl<'a> HasId for KinematicFrameBackgroundRepresentation_<'a> { } } #[derive(Debug)] -pub struct KinematicFrameBackgroundRepresentationAssociation_<'a> { // entity +pub struct KinematicFrameBackgroundRepresentationAssociation_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub rep_1: Representation<'a>, @@ -17126,7 +19859,8 @@ pub struct KinematicFrameBackgroundRepresentationAssociation_<'a> { // entity pub transformation_operator: Transformation<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type KinematicFrameBackgroundRepresentationAssociation<'a> = Id>; +pub type KinematicFrameBackgroundRepresentationAssociation<'a> = + Id>; impl<'a> FromEntity<'a> for KinematicFrameBackgroundRepresentationAssociation_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -17143,14 +19877,19 @@ impl<'a> ParseFromChunks<'a> for KinematicFrameBackgroundRepresentationAssociati let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, rep_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, rep_2) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transformation_operator) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - rep_1, - rep_2, - transformation_operator, - _marker: std::marker::PhantomData})) + let (s, transformation_operator) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + rep_1, + rep_2, + transformation_operator, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicFrameBackgroundRepresentationAssociation_<'a> { @@ -17164,7 +19903,8 @@ impl<'a> HasId for KinematicFrameBackgroundRepresentationAssociation_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct KinematicFrameBasedTransformation_<'a> { // entity +pub struct KinematicFrameBasedTransformation_<'a> { + // entity pub representation_item__name: Label<'a>, pub functionally_defined_transformation__name: Label<'a>, pub description: Option>, @@ -17185,29 +19925,37 @@ impl<'a> ParseFromChunks<'a> for KinematicFrameBasedTransformation_<'a> { let mut i = 0; let (s, _) = tag("KINEMATIC_FRAME_BASED_TRANSFORMATION(")(strs[0])?; #[allow(non_snake_case)] - let (s, representation_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, representation_item__name) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, functionally_defined_transformation__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, functionally_defined_transformation__name) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, transformator) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - representation_item__name, - functionally_defined_transformation__name, - description, - transformator, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + representation_item__name, + functionally_defined_transformation__name, + description, + transformator, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicFrameBasedTransformation_<'a> { fn append_ids(&self, _v: &mut Vec) { self.representation_item__name.append_ids(_v); - self.functionally_defined_transformation__name.append_ids(_v); + self.functionally_defined_transformation__name + .append_ids(_v); self.description.append_ids(_v); self.transformator.append_ids(_v); } } #[derive(Debug)] -pub struct KinematicGroundRepresentation_<'a> { // entity +pub struct KinematicGroundRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -17228,12 +19976,17 @@ impl<'a> ParseFromChunks<'a> for KinematicGroundRepresentation_<'a> { let (s, _) = tag("KINEMATIC_GROUND_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicGroundRepresentation_<'a> { @@ -17244,7 +19997,8 @@ impl<'a> HasId for KinematicGroundRepresentation_<'a> { } } #[derive(Debug)] -pub struct KinematicJoint_<'a> { // entity +pub struct KinematicJoint_<'a> { + // entity pub first_link: KinematicLink<'a>, pub second_link: KinematicLink<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -17264,10 +20018,14 @@ impl<'a> ParseFromChunks<'a> for KinematicJoint_<'a> { let (s, _) = tag("KINEMATIC_JOINT(")(strs[0])?; let (s, first_link) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, second_link) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - first_link, - second_link, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + first_link, + second_link, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicJoint_<'a> { @@ -17277,7 +20035,8 @@ impl<'a> HasId for KinematicJoint_<'a> { } } #[derive(Debug)] -pub struct KinematicLink_<'a> { // entity +pub struct KinematicLink_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type KinematicLink<'a> = Id>; @@ -17292,16 +20051,20 @@ impl<'a> FromEntity<'a> for KinematicLink_<'a> { impl<'a> ParseFromChunks<'a> for KinematicLink_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("KINEMATIC_LINK(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicLink_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct KinematicLinkRepresentation_<'a> { // entity +pub struct KinematicLinkRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -17322,12 +20085,17 @@ impl<'a> ParseFromChunks<'a> for KinematicLinkRepresentation_<'a> { let (s, _) = tag("KINEMATIC_LINK_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicLinkRepresentation_<'a> { @@ -17338,14 +20106,16 @@ impl<'a> HasId for KinematicLinkRepresentation_<'a> { } } #[derive(Debug)] -pub struct KinematicLinkRepresentationAssociation_<'a> { // entity +pub struct KinematicLinkRepresentationAssociation_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub rep_1: Representation<'a>, pub rep_2: Representation<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type KinematicLinkRepresentationAssociation<'a> = Id>; +pub type KinematicLinkRepresentationAssociation<'a> = + Id>; impl<'a> FromEntity<'a> for KinematicLinkRepresentationAssociation_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -17362,12 +20132,16 @@ impl<'a> ParseFromChunks<'a> for KinematicLinkRepresentationAssociation_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, rep_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, rep_2) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - rep_1, - rep_2, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + rep_1, + rep_2, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicLinkRepresentationAssociation_<'a> { @@ -17379,7 +20153,8 @@ impl<'a> HasId for KinematicLinkRepresentationAssociation_<'a> { } } #[derive(Debug)] -pub struct KinematicLinkRepresentationRelation_<'a> { // entity +pub struct KinematicLinkRepresentationRelation_<'a> { + // entity pub topological_aspects: KinematicLink<'a>, pub geometric_aspects: KinematicLinkRepresentation<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -17397,12 +20172,18 @@ impl<'a> ParseFromChunks<'a> for KinematicLinkRepresentationRelation_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("KINEMATIC_LINK_REPRESENTATION_RELATION(")(strs[0])?; - let (s, topological_aspects) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, geometric_aspects) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - topological_aspects, - geometric_aspects, - _marker: std::marker::PhantomData})) + let (s, topological_aspects) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, geometric_aspects) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + topological_aspects, + geometric_aspects, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicLinkRepresentationRelation_<'a> { @@ -17412,7 +20193,8 @@ impl<'a> HasId for KinematicLinkRepresentationRelation_<'a> { } } #[derive(Debug)] -pub struct KinematicPair_<'a> { // entity +pub struct KinematicPair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -17435,16 +20217,22 @@ impl<'a> ParseFromChunks<'a> for KinematicPair_<'a> { let (s, _) = tag("KINEMATIC_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicPair_<'a> { @@ -17457,7 +20245,8 @@ impl<'a> HasId for KinematicPair_<'a> { } } #[derive(Debug)] -pub struct KinematicPath_<'a> { // entity +pub struct KinematicPath_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -17475,9 +20264,13 @@ impl<'a> ParseFromChunks<'a> for KinematicPath_<'a> { let mut i = 0; let (s, _) = tag("KINEMATIC_PATH(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicPath_<'a> { @@ -17486,7 +20279,8 @@ impl<'a> HasId for KinematicPath_<'a> { } } #[derive(Debug)] -pub struct KinematicPropertyDefinition_<'a> { // entity +pub struct KinematicPropertyDefinition_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub definition: CharacterizedDefinition<'a>, @@ -17508,14 +20302,20 @@ impl<'a> ParseFromChunks<'a> for KinematicPropertyDefinition_<'a> { let (s, _) = tag("KINEMATIC_PROPERTY_DEFINITION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, ground_definition) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - definition, - ground_definition, - _marker: std::marker::PhantomData})) + let (s, definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, ground_definition) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + definition, + ground_definition, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicPropertyDefinition_<'a> { @@ -17527,12 +20327,14 @@ impl<'a> HasId for KinematicPropertyDefinition_<'a> { } } #[derive(Debug)] -pub struct KinematicPropertyRepresentationRelation_<'a> { // entity +pub struct KinematicPropertyRepresentationRelation_<'a> { + // entity pub definition: RepresentedDefinition<'a>, pub used_representation: Representation<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type KinematicPropertyRepresentationRelation<'a> = Id>; +pub type KinematicPropertyRepresentationRelation<'a> = + Id>; impl<'a> FromEntity<'a> for KinematicPropertyRepresentationRelation_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -17545,12 +20347,18 @@ impl<'a> ParseFromChunks<'a> for KinematicPropertyRepresentationRelation_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("KINEMATIC_PROPERTY_REPRESENTATION_RELATION(")(strs[0])?; - let (s, definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, used_representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - definition, - used_representation, - _marker: std::marker::PhantomData})) + let (s, definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, used_representation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + definition, + used_representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicPropertyRepresentationRelation_<'a> { @@ -17564,7 +20372,8 @@ pub struct KinematicResult_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous pub type KinematicResult<'a> = Id>; #[derive(Debug)] -pub struct KinematicStructure_<'a> { // entity +pub struct KinematicStructure_<'a> { + // entity pub joints: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -17582,9 +20391,13 @@ impl<'a> ParseFromChunks<'a> for KinematicStructure_<'a> { let mut i = 0; let (s, _) = tag("KINEMATIC_STRUCTURE(")(strs[0])?; let (s, joints) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - joints, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + joints, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KinematicStructure_<'a> { @@ -17593,7 +20406,8 @@ impl<'a> HasId for KinematicStructure_<'a> { } } #[derive(Debug)] -pub enum KnotType<'a> { // enum +pub enum KnotType<'a> { + // enum UniformKnots, QuasiUniformKnots, PiecewiseBezierKnots, @@ -17615,11 +20429,13 @@ impl<'a> Parse<'a> for KnotType<'a> { } } impl<'a> HasId for KnotType<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct KnownSource_<'a> { // entity +pub struct KnownSource_<'a> { + // entity pub source_id: SourceItem<'a>, pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -17639,10 +20455,14 @@ impl<'a> ParseFromChunks<'a> for KnownSource_<'a> { let (s, _) = tag("KNOWN_SOURCE(")(strs[0])?; let (s, source_id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - source_id, - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + source_id, + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for KnownSource_<'a> { @@ -17659,11 +20479,13 @@ impl<'a> Parse<'a> for Label<'a> { } } impl<'a> HasId for Label<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct Language_<'a> { // entity +pub struct Language_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -17683,10 +20505,14 @@ impl<'a> ParseFromChunks<'a> for Language_<'a> { let (s, _) = tag("LANGUAGE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Language_<'a> { @@ -17696,7 +20522,8 @@ impl<'a> HasId for Language_<'a> { } } #[derive(Debug)] -pub struct LanguageAssignment_<'a> { // entity +pub struct LanguageAssignment_<'a> { + // entity pub assigned_class: Group<'a>, pub role: ClassificationRole<'a>, pub items: Vec>, @@ -17718,11 +20545,15 @@ impl<'a> ParseFromChunks<'a> for LanguageAssignment_<'a> { let (s, assigned_class) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_class, - role, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_class, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LanguageAssignment_<'a> { @@ -17741,7 +20572,8 @@ pub struct LayeredItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous sele pub type LayeredItem<'a> = Id>; #[derive(Debug)] -pub struct LeaderCurve_<'a> { // entity +pub struct LeaderCurve_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -17761,13 +20593,18 @@ impl<'a> ParseFromChunks<'a> for LeaderCurve_<'a> { let mut i = 0; let (s, _) = tag("LEADER_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + styles, + item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LeaderCurve_<'a> { @@ -17778,7 +20615,8 @@ impl<'a> HasId for LeaderCurve_<'a> { } } #[derive(Debug)] -pub struct LeaderDirectedCallout_<'a> { // entity +pub struct LeaderDirectedCallout_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -17797,11 +20635,16 @@ impl<'a> ParseFromChunks<'a> for LeaderDirectedCallout_<'a> { let mut i = 0; let (s, _) = tag("LEADER_DIRECTED_CALLOUT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LeaderDirectedCallout_<'a> { @@ -17811,7 +20654,8 @@ impl<'a> HasId for LeaderDirectedCallout_<'a> { } } #[derive(Debug)] -pub struct LeaderDirectedDimension_<'a> { // entity +pub struct LeaderDirectedDimension_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -17830,11 +20674,16 @@ impl<'a> ParseFromChunks<'a> for LeaderDirectedDimension_<'a> { let mut i = 0; let (s, _) = tag("LEADER_DIRECTED_DIMENSION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LeaderDirectedDimension_<'a> { @@ -17844,7 +20693,8 @@ impl<'a> HasId for LeaderDirectedDimension_<'a> { } } #[derive(Debug)] -pub struct LeaderTerminator_<'a> { // entity +pub struct LeaderTerminator_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -17865,15 +20715,21 @@ impl<'a> ParseFromChunks<'a> for LeaderTerminator_<'a> { let mut i = 0; let (s, _) = tag("LEADER_TERMINATOR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, annotated_curve) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - annotated_curve, - _marker: std::marker::PhantomData})) + let (s, annotated_curve) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + styles, + item, + annotated_curve, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LeaderTerminator_<'a> { @@ -17885,7 +20741,8 @@ impl<'a> HasId for LeaderTerminator_<'a> { } } #[derive(Debug)] -pub struct LengthFunction_<'a> { // entity +pub struct LengthFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -17903,9 +20760,13 @@ impl<'a> ParseFromChunks<'a> for LengthFunction_<'a> { let mut i = 0; let (s, _) = tag("LENGTH_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LengthFunction_<'a> { @@ -17921,11 +20782,13 @@ impl<'a> Parse<'a> for LengthMeasure<'a> { } } impl<'a> HasId for LengthMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct LengthMeasureWithUnit_<'a> { // entity +pub struct LengthMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -17945,10 +20808,14 @@ impl<'a> ParseFromChunks<'a> for LengthMeasureWithUnit_<'a> { let (s, _) = tag("LENGTH_MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LengthMeasureWithUnit_<'a> { @@ -17958,7 +20825,8 @@ impl<'a> HasId for LengthMeasureWithUnit_<'a> { } } #[derive(Debug)] -pub struct LengthUnit_<'a> { // entity +pub struct LengthUnit_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -17976,9 +20844,13 @@ impl<'a> ParseFromChunks<'a> for LengthUnit_<'a> { let mut i = 0; let (s, _) = tag("LENGTH_UNIT(")(strs[0])?; let (s, dimensions) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LengthUnit_<'a> { @@ -17987,7 +20859,8 @@ impl<'a> HasId for LengthUnit_<'a> { } } #[derive(Debug)] -pub struct LightSource_<'a> { // entity +pub struct LightSource_<'a> { + // entity pub name: Label<'a>, pub light_colour: Colour<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -18007,10 +20880,14 @@ impl<'a> ParseFromChunks<'a> for LightSource_<'a> { let (s, _) = tag("LIGHT_SOURCE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, light_colour) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - light_colour, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + light_colour, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LightSource_<'a> { @@ -18020,7 +20897,8 @@ impl<'a> HasId for LightSource_<'a> { } } #[derive(Debug)] -pub struct LightSourceAmbient_<'a> { // entity +pub struct LightSourceAmbient_<'a> { + // entity pub name: Label<'a>, pub light_colour: Colour<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -18040,10 +20918,14 @@ impl<'a> ParseFromChunks<'a> for LightSourceAmbient_<'a> { let (s, _) = tag("LIGHT_SOURCE_AMBIENT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, light_colour) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - light_colour, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + light_colour, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LightSourceAmbient_<'a> { @@ -18053,7 +20935,8 @@ impl<'a> HasId for LightSourceAmbient_<'a> { } } #[derive(Debug)] -pub struct LightSourceDirectional_<'a> { // entity +pub struct LightSourceDirectional_<'a> { + // entity pub name: Label<'a>, pub light_colour: Colour<'a>, pub orientation: Direction<'a>, @@ -18075,11 +20958,15 @@ impl<'a> ParseFromChunks<'a> for LightSourceDirectional_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, light_colour) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - light_colour, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + light_colour, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LightSourceDirectional_<'a> { @@ -18090,7 +20977,8 @@ impl<'a> HasId for LightSourceDirectional_<'a> { } } #[derive(Debug)] -pub struct LightSourcePositional_<'a> { // entity +pub struct LightSourcePositional_<'a> { + // entity pub name: Label<'a>, pub light_colour: Colour<'a>, pub position: CartesianPoint<'a>, @@ -18116,13 +21004,17 @@ impl<'a> ParseFromChunks<'a> for LightSourcePositional_<'a> { let (s, position) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, constant_attenuation) = param_from_chunks::(false, s, &mut i, strs)?; let (s, distance_attenuation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - light_colour, - position, - constant_attenuation, - distance_attenuation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + light_colour, + position, + constant_attenuation, + distance_attenuation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LightSourcePositional_<'a> { @@ -18135,7 +21027,8 @@ impl<'a> HasId for LightSourcePositional_<'a> { } } #[derive(Debug)] -pub struct LightSourceSpot_<'a> { // entity +pub struct LightSourceSpot_<'a> { + // entity pub name: Label<'a>, pub light_colour: Colour<'a>, pub position: CartesianPoint<'a>, @@ -18166,17 +21059,22 @@ impl<'a> ParseFromChunks<'a> for LightSourceSpot_<'a> { let (s, concentration_exponent) = param_from_chunks::(false, s, &mut i, strs)?; let (s, constant_attenuation) = param_from_chunks::(false, s, &mut i, strs)?; let (s, distance_attenuation) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, spread_angle) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - light_colour, - position, - orientation, - concentration_exponent, - constant_attenuation, - distance_attenuation, - spread_angle, - _marker: std::marker::PhantomData})) + let (s, spread_angle) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + light_colour, + position, + orientation, + concentration_exponent, + constant_attenuation, + distance_attenuation, + spread_angle, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LightSourceSpot_<'a> { @@ -18192,8 +21090,9 @@ impl<'a> HasId for LightSourceSpot_<'a> { } } #[derive(Debug)] -pub struct LikeExpression_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct LikeExpression_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type LikeExpression<'a> = Id>; @@ -18209,10 +21108,15 @@ impl<'a> ParseFromChunks<'a> for LikeExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("LIKE_EXPRESSION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LikeExpression_<'a> { @@ -18221,7 +21125,8 @@ impl<'a> HasId for LikeExpression_<'a> { } } #[derive(Debug)] -pub enum LimitCondition<'a> { // enum +pub enum LimitCondition<'a> { + // enum MaximumMaterialCondition, LeastMaterialCondition, RegardlessOfFeatureSize, @@ -18241,11 +21146,13 @@ impl<'a> Parse<'a> for LimitCondition<'a> { } } impl<'a> HasId for LimitCondition<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct LimitsAndFits_<'a> { // entity +pub struct LimitsAndFits_<'a> { + // entity pub form_variance: Label<'a>, pub zone_variance: Label<'a>, pub grade: Label<'a>, @@ -18269,12 +21176,16 @@ impl<'a> ParseFromChunks<'a> for LimitsAndFits_<'a> { let (s, zone_variance) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, grade) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, source) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - form_variance, - zone_variance, - grade, - source, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + form_variance, + zone_variance, + grade, + source, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LimitsAndFits_<'a> { @@ -18286,7 +21197,8 @@ impl<'a> HasId for LimitsAndFits_<'a> { } } #[derive(Debug)] -pub struct Line_<'a> { // entity +pub struct Line_<'a> { + // entity pub name: Label<'a>, pub pnt: CartesianPoint<'a>, pub dir: Vector<'a>, @@ -18308,11 +21220,15 @@ impl<'a> ParseFromChunks<'a> for Line_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, pnt) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, dir) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - pnt, - dir, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + pnt, + dir, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Line_<'a> { @@ -18323,7 +21239,8 @@ impl<'a> HasId for Line_<'a> { } } #[derive(Debug)] -pub struct LineProfileTolerance_<'a> { // entity +pub struct LineProfileTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -18346,13 +21263,18 @@ impl<'a> ParseFromChunks<'a> for LineProfileTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LineProfileTolerance_<'a> { @@ -18364,7 +21286,8 @@ impl<'a> HasId for LineProfileTolerance_<'a> { } } #[derive(Debug)] -pub struct LinearDimension_<'a> { // entity +pub struct LinearDimension_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -18383,11 +21306,16 @@ impl<'a> ParseFromChunks<'a> for LinearDimension_<'a> { let mut i = 0; let (s, _) = tag("LINEAR_DIMENSION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LinearDimension_<'a> { @@ -18397,10 +21325,15 @@ impl<'a> HasId for LinearDimension_<'a> { } } #[derive(Debug)] -pub struct ListOfReversibleTopologyItem<'a>(pub Vec>, std::marker::PhantomData<&'a ()>); // aggregation +pub struct ListOfReversibleTopologyItem<'a>( + pub Vec>, + std::marker::PhantomData<&'a ()>, +); // aggregation impl<'a> Parse<'a> for ListOfReversibleTopologyItem<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(many0(>::parse), |r| Self(r, std::marker::PhantomData))(s) + map(many0(>::parse), |r| { + Self(r, std::marker::PhantomData) + })(s) } } impl<'a> HasId for ListOfReversibleTopologyItem<'a> { @@ -18412,10 +21345,15 @@ impl<'a> HasId for ListOfReversibleTopologyItem<'a> { } #[derive(Debug)] -pub struct ListRepresentationItem<'a>(pub Vec>, std::marker::PhantomData<&'a ()>); // aggregation +pub struct ListRepresentationItem<'a>( + pub Vec>, + std::marker::PhantomData<&'a ()>, +); // aggregation impl<'a> Parse<'a> for ListRepresentationItem<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(many0(>::parse), |r| Self(r, std::marker::PhantomData))(s) + map(many0(>::parse), |r| { + Self(r, std::marker::PhantomData) + })(s) } } impl<'a> HasId for ListRepresentationItem<'a> { @@ -18427,7 +21365,8 @@ impl<'a> HasId for ListRepresentationItem<'a> { } #[derive(Debug)] -pub struct LiteralNumber_<'a> { // entity +pub struct LiteralNumber_<'a> { + // entity pub the_value: f64, _marker: std::marker::PhantomData<&'a ()>, } @@ -18445,9 +21384,13 @@ impl<'a> ParseFromChunks<'a> for LiteralNumber_<'a> { let mut i = 0; let (s, _) = tag("LITERAL_NUMBER(")(strs[0])?; let (s, the_value) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - the_value, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + the_value, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LiteralNumber_<'a> { @@ -18456,7 +21399,8 @@ impl<'a> HasId for LiteralNumber_<'a> { } } #[derive(Debug)] -pub struct LocalTime_<'a> { // entity +pub struct LocalTime_<'a> { + // entity pub hour_component: HourInDay<'a>, pub minute_component: Option>, pub second_component: Option>, @@ -18477,15 +21421,22 @@ impl<'a> ParseFromChunks<'a> for LocalTime_<'a> { let mut i = 0; let (s, _) = tag("LOCAL_TIME(")(strs[0])?; let (s, hour_component) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, minute_component) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, second_component) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, zone) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - hour_component, - minute_component, - second_component, - zone, - _marker: std::marker::PhantomData})) + let (s, minute_component) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, second_component) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, zone) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + hour_component, + minute_component, + second_component, + zone, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LocalTime_<'a> { @@ -18497,7 +21448,8 @@ impl<'a> HasId for LocalTime_<'a> { } } #[derive(Debug)] -pub struct LocationShapeRepresentation_<'a> { // entity +pub struct LocationShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -18518,12 +21470,17 @@ impl<'a> ParseFromChunks<'a> for LocationShapeRepresentation_<'a> { let (s, _) = tag("LOCATION_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LocationShapeRepresentation_<'a> { @@ -18534,7 +21491,8 @@ impl<'a> HasId for LocationShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct Locator_<'a> { // entity +pub struct Locator_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -18554,10 +21512,14 @@ impl<'a> ParseFromChunks<'a> for Locator_<'a> { let (s, _) = tag("LOCATOR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Locator_<'a> { @@ -18567,7 +21529,8 @@ impl<'a> HasId for Locator_<'a> { } } #[derive(Debug)] -pub struct Log10Function_<'a> { // entity +pub struct Log10Function_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -18585,9 +21548,13 @@ impl<'a> ParseFromChunks<'a> for Log10Function_<'a> { let mut i = 0; let (s, _) = tag("LOG10_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Log10Function_<'a> { @@ -18596,7 +21563,8 @@ impl<'a> HasId for Log10Function_<'a> { } } #[derive(Debug)] -pub struct Log2Function_<'a> { // entity +pub struct Log2Function_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -18614,9 +21582,13 @@ impl<'a> ParseFromChunks<'a> for Log2Function_<'a> { let mut i = 0; let (s, _) = tag("LOG2_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Log2Function_<'a> { @@ -18625,7 +21597,8 @@ impl<'a> HasId for Log2Function_<'a> { } } #[derive(Debug)] -pub struct LogFunction_<'a> { // entity +pub struct LogFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -18643,9 +21616,13 @@ impl<'a> ParseFromChunks<'a> for LogFunction_<'a> { let mut i = 0; let (s, _) = tag("LOG_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LogFunction_<'a> { @@ -18654,7 +21631,8 @@ impl<'a> HasId for LogFunction_<'a> { } } #[derive(Debug)] -pub struct Loop_<'a> { // entity +pub struct Loop_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -18672,9 +21650,13 @@ impl<'a> ParseFromChunks<'a> for Loop_<'a> { let mut i = 0; let (s, _) = tag("LOOP(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Loop_<'a> { @@ -18683,7 +21665,8 @@ impl<'a> HasId for Loop_<'a> { } } #[derive(Debug)] -pub struct LotEffectivity_<'a> { // entity +pub struct LotEffectivity_<'a> { + // entity pub id: Identifier<'a>, pub effectivity_lot_id: Identifier<'a>, pub effectivity_lot_size: MeasureWithUnit<'a>, @@ -18704,12 +21687,17 @@ impl<'a> ParseFromChunks<'a> for LotEffectivity_<'a> { let (s, _) = tag("LOT_EFFECTIVITY(")(strs[0])?; let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, effectivity_lot_id) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, effectivity_lot_size) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - effectivity_lot_id, - effectivity_lot_size, - _marker: std::marker::PhantomData})) + let (s, effectivity_lot_size) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + effectivity_lot_id, + effectivity_lot_size, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LotEffectivity_<'a> { @@ -18727,11 +21715,13 @@ impl<'a> Parse<'a> for LuminousIntensityMeasure<'a> { } } impl<'a> HasId for LuminousIntensityMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct LuminousIntensityMeasureWithUnit_<'a> { // entity +pub struct LuminousIntensityMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -18751,10 +21741,14 @@ impl<'a> ParseFromChunks<'a> for LuminousIntensityMeasureWithUnit_<'a> { let (s, _) = tag("LUMINOUS_INTENSITY_MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LuminousIntensityMeasureWithUnit_<'a> { @@ -18764,7 +21758,8 @@ impl<'a> HasId for LuminousIntensityMeasureWithUnit_<'a> { } } #[derive(Debug)] -pub struct LuminousIntensityUnit_<'a> { // entity +pub struct LuminousIntensityUnit_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -18782,9 +21777,13 @@ impl<'a> ParseFromChunks<'a> for LuminousIntensityUnit_<'a> { let mut i = 0; let (s, _) = tag("LUMINOUS_INTENSITY_UNIT(")(strs[0])?; let (s, dimensions) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for LuminousIntensityUnit_<'a> { @@ -18793,7 +21792,8 @@ impl<'a> HasId for LuminousIntensityUnit_<'a> { } } #[derive(Debug)] -pub struct MakeFromUsageOption_<'a> { // entity +pub struct MakeFromUsageOption_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -18820,21 +21820,27 @@ impl<'a> ParseFromChunks<'a> for MakeFromUsageOption_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, relating_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, ranking) = param_from_chunks::(false, s, &mut i, strs)?; let (s, ranking_rationale) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, quantity) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - relating_product_definition, - related_product_definition, - ranking, - ranking_rationale, - quantity, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + name, + description, + relating_product_definition, + related_product_definition, + ranking, + ranking_rationale, + quantity, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MakeFromUsageOption_<'a> { @@ -18850,7 +21856,8 @@ impl<'a> HasId for MakeFromUsageOption_<'a> { } } #[derive(Debug)] -pub struct ManifoldSolidBrep_<'a> { // entity +pub struct ManifoldSolidBrep_<'a> { + // entity pub name: Label<'a>, pub outer: ClosedShell<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -18870,10 +21877,14 @@ impl<'a> ParseFromChunks<'a> for ManifoldSolidBrep_<'a> { let (s, _) = tag("MANIFOLD_SOLID_BREP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, outer) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - outer, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + outer, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ManifoldSolidBrep_<'a> { @@ -18883,7 +21894,8 @@ impl<'a> HasId for ManifoldSolidBrep_<'a> { } } #[derive(Debug)] -pub struct ManifoldSubsurfaceShapeRepresentation_<'a> { // entity +pub struct ManifoldSubsurfaceShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -18904,12 +21916,17 @@ impl<'a> ParseFromChunks<'a> for ManifoldSubsurfaceShapeRepresentation_<'a> { let (s, _) = tag("MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ManifoldSubsurfaceShapeRepresentation_<'a> { @@ -18920,7 +21937,8 @@ impl<'a> HasId for ManifoldSubsurfaceShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct ManifoldSurfaceShapeRepresentation_<'a> { // entity +pub struct ManifoldSurfaceShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -18941,12 +21959,17 @@ impl<'a> ParseFromChunks<'a> for ManifoldSurfaceShapeRepresentation_<'a> { let (s, _) = tag("MANIFOLD_SURFACE_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ManifoldSurfaceShapeRepresentation_<'a> { @@ -18957,7 +21980,8 @@ impl<'a> HasId for ManifoldSurfaceShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct MappedItem_<'a> { // entity +pub struct MappedItem_<'a> { + // entity pub name: Label<'a>, pub mapping_source: RepresentationMap<'a>, pub mapping_target: RepresentationItem<'a>, @@ -18977,13 +22001,19 @@ impl<'a> ParseFromChunks<'a> for MappedItem_<'a> { let mut i = 0; let (s, _) = tag("MAPPED_ITEM(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_source) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapping_target) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - mapping_source, - mapping_target, - _marker: std::marker::PhantomData})) + let (s, mapping_source) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, mapping_target) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + mapping_source, + mapping_target, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MappedItem_<'a> { @@ -18994,16 +22024,23 @@ impl<'a> HasId for MappedItem_<'a> { } } #[derive(Debug)] -pub enum MarkerSelect<'a> { // select +pub enum MarkerSelect<'a> { + // select MarkerType(MarkerType<'a>), PreDefinedMarker(PreDefinedMarker<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for MarkerSelect<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("MARKER_TYPE("), >::parse, char(')')), MarkerSelect::MarkerType), - map(>::parse, MarkerSelect::PreDefinedMarker), + map( + delimited(tag("MARKER_TYPE("), >::parse, char(')')), + MarkerSelect::MarkerType, + ), + map( + >::parse, + MarkerSelect::PreDefinedMarker, + ), ))(s) } } @@ -19017,7 +22054,8 @@ impl<'a> HasId for MarkerSelect<'a> { } } #[derive(Debug)] -pub enum MarkerType<'a> { // enum +pub enum MarkerType<'a> { + // enum Dot, X, Plus, @@ -19045,7 +22083,8 @@ impl<'a> Parse<'a> for MarkerType<'a> { } } impl<'a> HasId for MarkerType<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] @@ -19056,11 +22095,13 @@ impl<'a> Parse<'a> for MassMeasure<'a> { } } impl<'a> HasId for MassMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct MassMeasureWithUnit_<'a> { // entity +pub struct MassMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -19080,10 +22121,14 @@ impl<'a> ParseFromChunks<'a> for MassMeasureWithUnit_<'a> { let (s, _) = tag("MASS_MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MassMeasureWithUnit_<'a> { @@ -19093,7 +22138,8 @@ impl<'a> HasId for MassMeasureWithUnit_<'a> { } } #[derive(Debug)] -pub struct MassUnit_<'a> { // entity +pub struct MassUnit_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -19111,9 +22157,13 @@ impl<'a> ParseFromChunks<'a> for MassUnit_<'a> { let mut i = 0; let (s, _) = tag("MASS_UNIT(")(strs[0])?; let (s, dimensions) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MassUnit_<'a> { @@ -19122,7 +22172,8 @@ impl<'a> HasId for MassUnit_<'a> { } } #[derive(Debug)] -pub struct MaterialDesignation_<'a> { // entity +pub struct MaterialDesignation_<'a> { + // entity pub name: Label<'a>, pub definitions: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -19141,11 +22192,16 @@ impl<'a> ParseFromChunks<'a> for MaterialDesignation_<'a> { let mut i = 0; let (s, _) = tag("MATERIAL_DESIGNATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, definitions) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - definitions, - _marker: std::marker::PhantomData})) + let (s, definitions) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + definitions, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MaterialDesignation_<'a> { @@ -19155,7 +22211,8 @@ impl<'a> HasId for MaterialDesignation_<'a> { } } #[derive(Debug)] -pub struct MaterialDesignationCharacterization_<'a> { // entity +pub struct MaterialDesignationCharacterization_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub designation: MaterialDesignation<'a>, @@ -19177,14 +22234,20 @@ impl<'a> ParseFromChunks<'a> for MaterialDesignationCharacterization_<'a> { let (s, _) = tag("MATERIAL_DESIGNATION_CHARACTERIZATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, designation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, property) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - designation, - property, - _marker: std::marker::PhantomData})) + let (s, designation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, property) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + designation, + property, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MaterialDesignationCharacterization_<'a> { @@ -19196,7 +22259,8 @@ impl<'a> HasId for MaterialDesignationCharacterization_<'a> { } } #[derive(Debug)] -pub struct MaterialProperty_<'a> { // entity +pub struct MaterialProperty_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub definition: CharacterizedDefinition<'a>, @@ -19217,12 +22281,17 @@ impl<'a> ParseFromChunks<'a> for MaterialProperty_<'a> { let (s, _) = tag("MATERIAL_PROPERTY(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, definition) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - definition, - _marker: std::marker::PhantomData})) + let (s, definition) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + definition, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MaterialProperty_<'a> { @@ -19233,7 +22302,8 @@ impl<'a> HasId for MaterialProperty_<'a> { } } #[derive(Debug)] -pub struct MaterialPropertyRepresentation_<'a> { // entity +pub struct MaterialPropertyRepresentation_<'a> { + // entity pub definition: RepresentedDefinition<'a>, pub used_representation: Representation<'a>, pub dependent_environment: DataEnvironment<'a>, @@ -19252,14 +22322,21 @@ impl<'a> ParseFromChunks<'a> for MaterialPropertyRepresentation_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("MATERIAL_PROPERTY_REPRESENTATION(")(strs[0])?; - let (s, definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, used_representation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, dependent_environment) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - definition, - used_representation, - dependent_environment, - _marker: std::marker::PhantomData})) + let (s, definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, used_representation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, dependent_environment) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + definition, + used_representation, + dependent_environment, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MaterialPropertyRepresentation_<'a> { @@ -19270,7 +22347,8 @@ impl<'a> HasId for MaterialPropertyRepresentation_<'a> { } } #[derive(Debug)] -pub struct MaximumFunction_<'a> { // entity +pub struct MaximumFunction_<'a> { + // entity pub operands: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -19288,9 +22366,13 @@ impl<'a> ParseFromChunks<'a> for MaximumFunction_<'a> { let mut i = 0; let (s, _) = tag("MAXIMUM_FUNCTION(")(strs[0])?; let (s, operands) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MaximumFunction_<'a> { @@ -19299,7 +22381,8 @@ impl<'a> HasId for MaximumFunction_<'a> { } } #[derive(Debug)] -pub struct MeasureQualification_<'a> { // entity +pub struct MeasureQualification_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub qualified_measure: MeasureWithUnit<'a>, @@ -19321,14 +22404,19 @@ impl<'a> ParseFromChunks<'a> for MeasureQualification_<'a> { let (s, _) = tag("MEASURE_QUALIFICATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, qualified_measure) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, qualified_measure) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, qualifiers) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - qualified_measure, - qualifiers, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + qualified_measure, + qualifiers, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MeasureQualification_<'a> { @@ -19340,7 +22428,8 @@ impl<'a> HasId for MeasureQualification_<'a> { } } #[derive(Debug)] -pub struct MeasureRepresentationItem_<'a> { // entity +pub struct MeasureRepresentationItem_<'a> { + // entity pub name: Label<'a>, pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, @@ -19362,11 +22451,15 @@ impl<'a> ParseFromChunks<'a> for MeasureRepresentationItem_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MeasureRepresentationItem_<'a> { @@ -19377,7 +22470,8 @@ impl<'a> HasId for MeasureRepresentationItem_<'a> { } } #[derive(Debug)] -pub enum MeasureValue<'a> { // select +pub enum MeasureValue<'a> { + // select AmountOfSubstanceMeasure(AmountOfSubstanceMeasure<'a>), AreaMeasure(AreaMeasure<'a>), CelsiusTemperatureMeasure(CelsiusTemperatureMeasure<'a>), @@ -19400,35 +22494,170 @@ pub enum MeasureValue<'a> { // select ThermodynamicTemperatureMeasure(ThermodynamicTemperatureMeasure<'a>), TimeMeasure(TimeMeasure<'a>), VolumeMeasure(VolumeMeasure<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for MeasureValue<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("AMOUNT_OF_SUBSTANCE_MEASURE("), >::parse, char(')')), MeasureValue::AmountOfSubstanceMeasure), - map(delimited(tag("AREA_MEASURE("), >::parse, char(')')), MeasureValue::AreaMeasure), - map(delimited(tag("CELSIUS_TEMPERATURE_MEASURE("), >::parse, char(')')), MeasureValue::CelsiusTemperatureMeasure), - map(delimited(tag("CONTEXT_DEPENDENT_MEASURE("), >::parse, char(')')), MeasureValue::ContextDependentMeasure), - map(delimited(tag("COUNT_MEASURE("), >::parse, char(')')), MeasureValue::CountMeasure), - map(delimited(tag("DESCRIPTIVE_MEASURE("), >::parse, char(')')), MeasureValue::DescriptiveMeasure), - map(delimited(tag("ELECTRIC_CURRENT_MEASURE("), >::parse, char(')')), MeasureValue::ElectricCurrentMeasure), - map(delimited(tag("LENGTH_MEASURE("), >::parse, char(')')), MeasureValue::LengthMeasure), - map(delimited(tag("LUMINOUS_INTENSITY_MEASURE("), >::parse, char(')')), MeasureValue::LuminousIntensityMeasure), - map(delimited(tag("MASS_MEASURE("), >::parse, char(')')), MeasureValue::MassMeasure), - map(delimited(tag("NUMERIC_MEASURE("), >::parse, char(')')), MeasureValue::NumericMeasure), - map(delimited(tag("NON_NEGATIVE_LENGTH_MEASURE("), >::parse, char(')')), MeasureValue::NonNegativeLengthMeasure), - map(delimited(tag("PARAMETER_VALUE("), >::parse, char(')')), MeasureValue::ParameterValue), - map(delimited(tag("PLANE_ANGLE_MEASURE("), >::parse, char(')')), MeasureValue::PlaneAngleMeasure), - map(delimited(tag("POSITIVE_LENGTH_MEASURE("), >::parse, char(')')), MeasureValue::PositiveLengthMeasure), - map(delimited(tag("POSITIVE_PLANE_ANGLE_MEASURE("), >::parse, char(')')), MeasureValue::PositivePlaneAngleMeasure), - map(delimited(tag("POSITIVE_RATIO_MEASURE("), >::parse, char(')')), MeasureValue::PositiveRatioMeasure), - map(delimited(tag("RATIO_MEASURE("), >::parse, char(')')), MeasureValue::RatioMeasure), - map(delimited(tag("SOLID_ANGLE_MEASURE("), >::parse, char(')')), MeasureValue::SolidAngleMeasure), - alt(( - map(delimited(tag("THERMODYNAMIC_TEMPERATURE_MEASURE("), >::parse, char(')')), MeasureValue::ThermodynamicTemperatureMeasure), - map(delimited(tag("TIME_MEASURE("), >::parse, char(')')), MeasureValue::TimeMeasure), - map(delimited(tag("VOLUME_MEASURE("), >::parse, char(')')), MeasureValue::VolumeMeasure), - ))))(s) + map( + delimited( + tag("AMOUNT_OF_SUBSTANCE_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::AmountOfSubstanceMeasure, + ), + map( + delimited(tag("AREA_MEASURE("), >::parse, char(')')), + MeasureValue::AreaMeasure, + ), + map( + delimited( + tag("CELSIUS_TEMPERATURE_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::CelsiusTemperatureMeasure, + ), + map( + delimited( + tag("CONTEXT_DEPENDENT_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::ContextDependentMeasure, + ), + map( + delimited(tag("COUNT_MEASURE("), >::parse, char(')')), + MeasureValue::CountMeasure, + ), + map( + delimited( + tag("DESCRIPTIVE_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::DescriptiveMeasure, + ), + map( + delimited( + tag("ELECTRIC_CURRENT_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::ElectricCurrentMeasure, + ), + map( + delimited( + tag("LENGTH_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::LengthMeasure, + ), + map( + delimited( + tag("LUMINOUS_INTENSITY_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::LuminousIntensityMeasure, + ), + map( + delimited(tag("MASS_MEASURE("), >::parse, char(')')), + MeasureValue::MassMeasure, + ), + map( + delimited( + tag("NUMERIC_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::NumericMeasure, + ), + map( + delimited( + tag("NON_NEGATIVE_LENGTH_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::NonNegativeLengthMeasure, + ), + map( + delimited( + tag("PARAMETER_VALUE("), + >::parse, + char(')'), + ), + MeasureValue::ParameterValue, + ), + map( + delimited( + tag("PLANE_ANGLE_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::PlaneAngleMeasure, + ), + map( + delimited( + tag("POSITIVE_LENGTH_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::PositiveLengthMeasure, + ), + map( + delimited( + tag("POSITIVE_PLANE_ANGLE_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::PositivePlaneAngleMeasure, + ), + map( + delimited( + tag("POSITIVE_RATIO_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::PositiveRatioMeasure, + ), + map( + delimited(tag("RATIO_MEASURE("), >::parse, char(')')), + MeasureValue::RatioMeasure, + ), + map( + delimited( + tag("SOLID_ANGLE_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::SolidAngleMeasure, + ), + alt(( + map( + delimited( + tag("THERMODYNAMIC_TEMPERATURE_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::ThermodynamicTemperatureMeasure, + ), + map( + delimited(tag("TIME_MEASURE("), >::parse, char(')')), + MeasureValue::TimeMeasure, + ), + map( + delimited( + tag("VOLUME_MEASURE("), + >::parse, + char(')'), + ), + MeasureValue::VolumeMeasure, + ), + )), + ))(s) } } impl<'a> HasId for MeasureValue<'a> { @@ -19461,7 +22690,8 @@ impl<'a> HasId for MeasureValue<'a> { } } #[derive(Debug)] -pub struct MeasureWithUnit_<'a> { // entity +pub struct MeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -19481,10 +22711,14 @@ impl<'a> ParseFromChunks<'a> for MeasureWithUnit_<'a> { let (s, _) = tag("MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MeasureWithUnit_<'a> { @@ -19494,13 +22728,15 @@ impl<'a> HasId for MeasureWithUnit_<'a> { } } #[derive(Debug)] -pub struct MechanicalDesignGeometricPresentationArea_<'a> { // entity +pub struct MechanicalDesignGeometricPresentationArea_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type MechanicalDesignGeometricPresentationArea<'a> = Id>; +pub type MechanicalDesignGeometricPresentationArea<'a> = + Id>; impl<'a> FromEntity<'a> for MechanicalDesignGeometricPresentationArea_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -19515,12 +22751,17 @@ impl<'a> ParseFromChunks<'a> for MechanicalDesignGeometricPresentationArea_<'a> let (s, _) = tag("MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_AREA(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MechanicalDesignGeometricPresentationArea_<'a> { @@ -19531,13 +22772,15 @@ impl<'a> HasId for MechanicalDesignGeometricPresentationArea_<'a> { } } #[derive(Debug)] -pub struct MechanicalDesignGeometricPresentationRepresentation_<'a> { // entity +pub struct MechanicalDesignGeometricPresentationRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type MechanicalDesignGeometricPresentationRepresentation<'a> = Id>; +pub type MechanicalDesignGeometricPresentationRepresentation<'a> = + Id>; impl<'a> FromEntity<'a> for MechanicalDesignGeometricPresentationRepresentation_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -19552,12 +22795,17 @@ impl<'a> ParseFromChunks<'a> for MechanicalDesignGeometricPresentationRepresenta let (s, _) = tag("MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MechanicalDesignGeometricPresentationRepresentation_<'a> { @@ -19568,7 +22816,8 @@ impl<'a> HasId for MechanicalDesignGeometricPresentationRepresentation_<'a> { } } #[derive(Debug)] -pub struct Mechanism_<'a> { // entity +pub struct Mechanism_<'a> { + // entity pub structure_definition: KinematicStructure<'a>, pub base: KinematicLink<'a>, pub containing_property: KinematicPropertyDefinition<'a>, @@ -19587,14 +22836,20 @@ impl<'a> ParseFromChunks<'a> for Mechanism_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("MECHANISM(")(strs[0])?; - let (s, structure_definition) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, structure_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, base) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, containing_property) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - structure_definition, - base, - containing_property, - _marker: std::marker::PhantomData})) + let (s, containing_property) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + structure_definition, + base, + containing_property, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Mechanism_<'a> { @@ -19605,7 +22860,8 @@ impl<'a> HasId for Mechanism_<'a> { } } #[derive(Debug)] -pub struct MechanismBasePlacement_<'a> { // entity +pub struct MechanismBasePlacement_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub rep_1: Representation<'a>, @@ -19630,15 +22886,20 @@ impl<'a> ParseFromChunks<'a> for MechanismBasePlacement_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, rep_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, _) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, transformation_operator) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transformation_operator) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, base_of_mechanism) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - rep_1, - transformation_operator, - base_of_mechanism, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + rep_1, + transformation_operator, + base_of_mechanism, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MechanismBasePlacement_<'a> { @@ -19651,7 +22912,8 @@ impl<'a> HasId for MechanismBasePlacement_<'a> { } } #[derive(Debug)] -pub struct MinimumFunction_<'a> { // entity +pub struct MinimumFunction_<'a> { + // entity pub operands: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -19669,9 +22931,13 @@ impl<'a> ParseFromChunks<'a> for MinimumFunction_<'a> { let mut i = 0; let (s, _) = tag("MINIMUM_FUNCTION(")(strs[0])?; let (s, operands) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MinimumFunction_<'a> { @@ -19680,8 +22946,9 @@ impl<'a> HasId for MinimumFunction_<'a> { } } #[derive(Debug)] -pub struct MinusExpression_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct MinusExpression_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type MinusExpression<'a> = Id>; @@ -19697,10 +22964,15 @@ impl<'a> ParseFromChunks<'a> for MinusExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("MINUS_EXPRESSION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MinusExpression_<'a> { @@ -19709,7 +22981,8 @@ impl<'a> HasId for MinusExpression_<'a> { } } #[derive(Debug)] -pub struct MinusFunction_<'a> { // entity +pub struct MinusFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -19727,9 +23000,13 @@ impl<'a> ParseFromChunks<'a> for MinusFunction_<'a> { let mut i = 0; let (s, _) = tag("MINUS_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MinusFunction_<'a> { @@ -19745,12 +23022,14 @@ impl<'a> Parse<'a> for MinuteInHour<'a> { } } impl<'a> HasId for MinuteInHour<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct ModExpression_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct ModExpression_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type ModExpression<'a> = Id>; @@ -19766,10 +23045,15 @@ impl<'a> ParseFromChunks<'a> for ModExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("MOD_EXPRESSION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ModExpression_<'a> { @@ -19778,7 +23062,8 @@ impl<'a> HasId for ModExpression_<'a> { } } #[derive(Debug)] -pub struct ModifiedGeometricTolerance_<'a> { // entity +pub struct ModifiedGeometricTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -19802,15 +23087,20 @@ impl<'a> ParseFromChunks<'a> for ModifiedGeometricTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, toleranced_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, modifier) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - modifier, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + modifier, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ModifiedGeometricTolerance_<'a> { @@ -19823,7 +23113,8 @@ impl<'a> HasId for ModifiedGeometricTolerance_<'a> { } } #[derive(Debug)] -pub struct ModifiedPattern_<'a> { // entity +pub struct ModifiedPattern_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -19843,10 +23134,14 @@ impl<'a> ParseFromChunks<'a> for ModifiedPattern_<'a> { let (s, _) = tag("MODIFIED_PATTERN(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ModifiedPattern_<'a> { @@ -19856,7 +23151,8 @@ impl<'a> HasId for ModifiedPattern_<'a> { } } #[derive(Debug)] -pub struct MomentsOfInertiaRepresentation_<'a> { // entity +pub struct MomentsOfInertiaRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -19877,12 +23173,17 @@ impl<'a> ParseFromChunks<'a> for MomentsOfInertiaRepresentation_<'a> { let (s, _) = tag("MOMENTS_OF_INERTIA_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MomentsOfInertiaRepresentation_<'a> { @@ -19900,11 +23201,13 @@ impl<'a> Parse<'a> for MonthInYearNumber<'a> { } } impl<'a> HasId for MonthInYearNumber<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct MotionLinkRelationship_<'a> { // entity +pub struct MotionLinkRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub rep_1: Representation<'a>, @@ -19930,13 +23233,17 @@ impl<'a> ParseFromChunks<'a> for MotionLinkRelationship_<'a> { let (s, rep_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, rep_2) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, related_frame) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - rep_1, - rep_2, - related_frame, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + rep_1, + rep_2, + related_frame, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MotionLinkRelationship_<'a> { @@ -19949,16 +23256,27 @@ impl<'a> HasId for MotionLinkRelationship_<'a> { } } #[derive(Debug)] -pub enum MotionParameterMeasure<'a> { // select +pub enum MotionParameterMeasure<'a> { + // select ParameterValue(ParameterValue<'a>), MeasureWithUnit(MeasureWithUnit<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for MotionParameterMeasure<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("PARAMETER_VALUE("), >::parse, char(')')), MotionParameterMeasure::ParameterValue), - map(>::parse, MotionParameterMeasure::MeasureWithUnit), + map( + delimited( + tag("PARAMETER_VALUE("), + >::parse, + char(')'), + ), + MotionParameterMeasure::ParameterValue, + ), + map( + >::parse, + MotionParameterMeasure::MeasureWithUnit, + ), ))(s) } } @@ -19972,7 +23290,8 @@ impl<'a> HasId for MotionParameterMeasure<'a> { } } #[derive(Debug)] -pub struct MultExpression_<'a> { // entity +pub struct MultExpression_<'a> { + // entity pub operands: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -19990,9 +23309,13 @@ impl<'a> ParseFromChunks<'a> for MultExpression_<'a> { let mut i = 0; let (s, _) = tag("MULT_EXPRESSION(")(strs[0])?; let (s, operands) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MultExpression_<'a> { @@ -20001,7 +23324,8 @@ impl<'a> HasId for MultExpression_<'a> { } } #[derive(Debug)] -pub struct MultiLanguageAttributeAssignment_<'a> { // entity +pub struct MultiLanguageAttributeAssignment_<'a> { + // entity pub attribute_name: Label<'a>, pub attribute_value: AttributeType<'a>, pub role: AttributeValueRole<'a>, @@ -20024,13 +23348,18 @@ impl<'a> ParseFromChunks<'a> for MultiLanguageAttributeAssignment_<'a> { let (s, attribute_name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, attribute_value) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - attribute_name, - attribute_value, - role, - items, - _marker: std::marker::PhantomData})) + let (s, items) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + attribute_name, + attribute_value, + role, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MultiLanguageAttributeAssignment_<'a> { @@ -20046,7 +23375,8 @@ pub struct MultiLanguageAttributeItem_<'a>(std::marker::PhantomData<&'a ()>); // pub type MultiLanguageAttributeItem<'a> = Id>; #[derive(Debug)] -pub struct MultipleArityBooleanExpression_<'a> { // entity +pub struct MultipleArityBooleanExpression_<'a> { + // entity pub operands: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -20064,9 +23394,13 @@ impl<'a> ParseFromChunks<'a> for MultipleArityBooleanExpression_<'a> { let mut i = 0; let (s, _) = tag("MULTIPLE_ARITY_BOOLEAN_EXPRESSION(")(strs[0])?; let (s, operands) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MultipleArityBooleanExpression_<'a> { @@ -20075,7 +23409,8 @@ impl<'a> HasId for MultipleArityBooleanExpression_<'a> { } } #[derive(Debug)] -pub struct MultipleArityFunctionCall_<'a> { // entity +pub struct MultipleArityFunctionCall_<'a> { + // entity pub operands: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -20093,9 +23428,13 @@ impl<'a> ParseFromChunks<'a> for MultipleArityFunctionCall_<'a> { let mut i = 0; let (s, _) = tag("MULTIPLE_ARITY_FUNCTION_CALL(")(strs[0])?; let (s, operands) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MultipleArityFunctionCall_<'a> { @@ -20104,7 +23443,8 @@ impl<'a> HasId for MultipleArityFunctionCall_<'a> { } } #[derive(Debug)] -pub struct MultipleArityGenericExpression_<'a> { // entity +pub struct MultipleArityGenericExpression_<'a> { + // entity pub operands: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -20122,9 +23462,13 @@ impl<'a> ParseFromChunks<'a> for MultipleArityGenericExpression_<'a> { let mut i = 0; let (s, _) = tag("MULTIPLE_ARITY_GENERIC_EXPRESSION(")(strs[0])?; let (s, operands) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MultipleArityGenericExpression_<'a> { @@ -20133,7 +23477,8 @@ impl<'a> HasId for MultipleArityGenericExpression_<'a> { } } #[derive(Debug)] -pub struct MultipleArityNumericExpression_<'a> { // entity +pub struct MultipleArityNumericExpression_<'a> { + // entity pub operands: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -20151,9 +23496,13 @@ impl<'a> ParseFromChunks<'a> for MultipleArityNumericExpression_<'a> { let mut i = 0; let (s, _) = tag("MULTIPLE_ARITY_NUMERIC_EXPRESSION(")(strs[0])?; let (s, operands) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for MultipleArityNumericExpression_<'a> { @@ -20162,7 +23511,8 @@ impl<'a> HasId for MultipleArityNumericExpression_<'a> { } } #[derive(Debug)] -pub struct NameAssignment_<'a> { // entity +pub struct NameAssignment_<'a> { + // entity pub assigned_name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -20180,9 +23530,13 @@ impl<'a> ParseFromChunks<'a> for NameAssignment_<'a> { let mut i = 0; let (s, _) = tag("NAME_ASSIGNMENT(")(strs[0])?; let (s, assigned_name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for NameAssignment_<'a> { @@ -20191,7 +23545,8 @@ impl<'a> HasId for NameAssignment_<'a> { } } #[derive(Debug)] -pub struct NameAttribute_<'a> { // entity +pub struct NameAttribute_<'a> { + // entity pub attribute_value: Label<'a>, pub named_item: NameAttributeSelect<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -20211,10 +23566,14 @@ impl<'a> ParseFromChunks<'a> for NameAttribute_<'a> { let (s, _) = tag("NAME_ATTRIBUTE(")(strs[0])?; let (s, attribute_value) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, named_item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - attribute_value, - named_item, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + attribute_value, + named_item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for NameAttribute_<'a> { @@ -20232,7 +23591,8 @@ pub struct NameItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous select pub type NameItem<'a> = Id>; #[derive(Debug)] -pub struct NamedUnit_<'a> { // entity +pub struct NamedUnit_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -20250,9 +23610,13 @@ impl<'a> ParseFromChunks<'a> for NamedUnit_<'a> { let mut i = 0; let (s, _) = tag("NAMED_UNIT(")(strs[0])?; let (s, dimensions) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for NamedUnit_<'a> { @@ -20261,7 +23625,8 @@ impl<'a> HasId for NamedUnit_<'a> { } } #[derive(Debug)] -pub struct NamedUnitVariable_<'a> { // entity +pub struct NamedUnitVariable_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -20279,9 +23644,13 @@ impl<'a> ParseFromChunks<'a> for NamedUnitVariable_<'a> { let mut i = 0; let (s, _) = tag("NAMED_UNIT_VARIABLE(")(strs[0])?; let (s, dimensions) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for NamedUnitVariable_<'a> { @@ -20290,7 +23659,8 @@ impl<'a> HasId for NamedUnitVariable_<'a> { } } #[derive(Debug)] -pub struct NextAssemblyUsageOccurrence_<'a> { // entity +pub struct NextAssemblyUsageOccurrence_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -20315,17 +23685,24 @@ impl<'a> ParseFromChunks<'a> for NextAssemblyUsageOccurrence_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, reference_designator) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - relating_product_definition, - related_product_definition, - reference_designator, - _marker: std::marker::PhantomData})) + let (s, relating_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, reference_designator) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + name, + description, + relating_product_definition, + related_product_definition, + reference_designator, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for NextAssemblyUsageOccurrence_<'a> { @@ -20339,7 +23716,8 @@ impl<'a> HasId for NextAssemblyUsageOccurrence_<'a> { } } #[derive(Debug)] -pub struct NgonClosedProfile_<'a> { // entity +pub struct NgonClosedProfile_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -20361,14 +23739,19 @@ impl<'a> ParseFromChunks<'a> for NgonClosedProfile_<'a> { let (s, _) = tag("NGON_CLOSED_PROFILE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for NgonClosedProfile_<'a> { @@ -20380,7 +23763,8 @@ impl<'a> HasId for NgonClosedProfile_<'a> { } } #[derive(Debug)] -pub struct NonManifoldSurfaceShapeRepresentation_<'a> { // entity +pub struct NonManifoldSurfaceShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -20401,12 +23785,17 @@ impl<'a> ParseFromChunks<'a> for NonManifoldSurfaceShapeRepresentation_<'a> { let (s, _) = tag("NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for NonManifoldSurfaceShapeRepresentation_<'a> { @@ -20431,7 +23820,8 @@ impl<'a> HasId for NonNegativeLengthMeasure<'a> { } #[derive(Debug)] -pub struct NotExpression_<'a> { // entity +pub struct NotExpression_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -20449,9 +23839,13 @@ impl<'a> ParseFromChunks<'a> for NotExpression_<'a> { let mut i = 0; let (s, _) = tag("NOT_EXPRESSION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for NotExpression_<'a> { @@ -20460,7 +23854,8 @@ impl<'a> HasId for NotExpression_<'a> { } } #[derive(Debug)] -pub enum NullStyle<'a> { // enum +pub enum NullStyle<'a> { + // enum Null, _Unused(std::marker::PhantomData<&'a ()>), } @@ -20476,11 +23871,13 @@ impl<'a> Parse<'a> for NullStyle<'a> { } } impl<'a> HasId for NullStyle<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct NumericDefinedFunction_<'a> { // entity +pub struct NumericDefinedFunction_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type NumericDefinedFunction<'a> = Id>; @@ -20495,16 +23892,20 @@ impl<'a> FromEntity<'a> for NumericDefinedFunction_<'a> { impl<'a> ParseFromChunks<'a> for NumericDefinedFunction_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("NUMERIC_DEFINED_FUNCTION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for NumericDefinedFunction_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct NumericExpression_<'a> { // entity +pub struct NumericExpression_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type NumericExpression<'a> = Id>; @@ -20519,13 +23920,16 @@ impl<'a> FromEntity<'a> for NumericExpression_<'a> { impl<'a> ParseFromChunks<'a> for NumericExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("NUMERIC_EXPRESSION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for NumericExpression_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] pub struct NumericMeasure<'a>(pub f64, std::marker::PhantomData<&'a ()>); // primitive @@ -20535,11 +23939,13 @@ impl<'a> Parse<'a> for NumericMeasure<'a> { } } impl<'a> HasId for NumericMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct NumericVariable_<'a> { // entity +pub struct NumericVariable_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type NumericVariable<'a> = Id>; @@ -20554,16 +23960,20 @@ impl<'a> FromEntity<'a> for NumericVariable_<'a> { impl<'a> ParseFromChunks<'a> for NumericVariable_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("NUMERIC_VARIABLE(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for NumericVariable_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct ObjectRole_<'a> { // entity +pub struct ObjectRole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -20583,10 +23993,14 @@ impl<'a> ParseFromChunks<'a> for ObjectRole_<'a> { let (s, _) = tag("OBJECT_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ObjectRole_<'a> { @@ -20596,7 +24010,8 @@ impl<'a> HasId for ObjectRole_<'a> { } } #[derive(Debug)] -pub struct OddFunction_<'a> { // entity +pub struct OddFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -20614,9 +24029,13 @@ impl<'a> ParseFromChunks<'a> for OddFunction_<'a> { let mut i = 0; let (s, _) = tag("ODD_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OddFunction_<'a> { @@ -20625,7 +24044,8 @@ impl<'a> HasId for OddFunction_<'a> { } } #[derive(Debug)] -pub struct OffsetCurve2d_<'a> { // entity +pub struct OffsetCurve2d_<'a> { + // entity pub name: Label<'a>, pub basis_curve: Curve<'a>, pub distance: LengthMeasure<'a>, @@ -20649,12 +24069,16 @@ impl<'a> ParseFromChunks<'a> for OffsetCurve2d_<'a> { let (s, basis_curve) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, distance) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - basis_curve, - distance, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + basis_curve, + distance, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OffsetCurve2d_<'a> { @@ -20666,7 +24090,8 @@ impl<'a> HasId for OffsetCurve2d_<'a> { } } #[derive(Debug)] -pub struct OffsetCurve3d_<'a> { // entity +pub struct OffsetCurve3d_<'a> { + // entity pub name: Label<'a>, pub basis_curve: Curve<'a>, pub distance: LengthMeasure<'a>, @@ -20692,13 +24117,17 @@ impl<'a> ParseFromChunks<'a> for OffsetCurve3d_<'a> { let (s, distance) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(false, s, &mut i, strs)?; let (s, ref_direction) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - basis_curve, - distance, - self_intersect, - ref_direction, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + basis_curve, + distance, + self_intersect, + ref_direction, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OffsetCurve3d_<'a> { @@ -20711,7 +24140,8 @@ impl<'a> HasId for OffsetCurve3d_<'a> { } } #[derive(Debug)] -pub struct OffsetSurface_<'a> { // entity +pub struct OffsetSurface_<'a> { + // entity pub name: Label<'a>, pub basis_surface: Surface<'a>, pub distance: LengthMeasure<'a>, @@ -20735,12 +24165,16 @@ impl<'a> ParseFromChunks<'a> for OffsetSurface_<'a> { let (s, basis_surface) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, distance) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - basis_surface, - distance, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + basis_surface, + distance, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OffsetSurface_<'a> { @@ -20752,7 +24186,8 @@ impl<'a> HasId for OffsetSurface_<'a> { } } #[derive(Debug)] -pub struct OneDirectionRepeatFactor_<'a> { // entity +pub struct OneDirectionRepeatFactor_<'a> { + // entity pub name: Label<'a>, pub repeat_factor: Vector<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -20772,10 +24207,14 @@ impl<'a> ParseFromChunks<'a> for OneDirectionRepeatFactor_<'a> { let (s, _) = tag("ONE_DIRECTION_REPEAT_FACTOR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, repeat_factor) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - repeat_factor, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + repeat_factor, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OneDirectionRepeatFactor_<'a> { @@ -20785,7 +24224,8 @@ impl<'a> HasId for OneDirectionRepeatFactor_<'a> { } } #[derive(Debug)] -pub struct OpenPathProfile_<'a> { // entity +pub struct OpenPathProfile_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -20807,14 +24247,19 @@ impl<'a> ParseFromChunks<'a> for OpenPathProfile_<'a> { let (s, _) = tag("OPEN_PATH_PROFILE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OpenPathProfile_<'a> { @@ -20826,7 +24271,8 @@ impl<'a> HasId for OpenPathProfile_<'a> { } } #[derive(Debug)] -pub struct OpenShell_<'a> { // entity +pub struct OpenShell_<'a> { + // entity pub name: Label<'a>, pub cfs_faces: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -20846,10 +24292,14 @@ impl<'a> ParseFromChunks<'a> for OpenShell_<'a> { let (s, _) = tag("OPEN_SHELL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, cfs_faces) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - cfs_faces, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + cfs_faces, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OpenShell_<'a> { @@ -20859,7 +24309,8 @@ impl<'a> HasId for OpenShell_<'a> { } } #[derive(Debug)] -pub struct OrExpression_<'a> { // entity +pub struct OrExpression_<'a> { + // entity pub operands: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -20877,9 +24328,13 @@ impl<'a> ParseFromChunks<'a> for OrExpression_<'a> { let mut i = 0; let (s, _) = tag("OR_EXPRESSION(")(strs[0])?; let (s, operands) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrExpression_<'a> { @@ -20888,7 +24343,8 @@ impl<'a> HasId for OrExpression_<'a> { } } #[derive(Debug)] -pub struct OrdinateDimension_<'a> { // entity +pub struct OrdinateDimension_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -20907,11 +24363,16 @@ impl<'a> ParseFromChunks<'a> for OrdinateDimension_<'a> { let mut i = 0; let (s, _) = tag("ORDINATE_DIMENSION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrdinateDimension_<'a> { @@ -20921,7 +24382,8 @@ impl<'a> HasId for OrdinateDimension_<'a> { } } #[derive(Debug)] -pub struct Organization_<'a> { // entity +pub struct Organization_<'a> { + // entity pub id: Option>, pub name: Label<'a>, pub description: Option>, @@ -20943,11 +24405,15 @@ impl<'a> ParseFromChunks<'a> for Organization_<'a> { let (s, id) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Organization_<'a> { @@ -20958,7 +24424,8 @@ impl<'a> HasId for Organization_<'a> { } } #[derive(Debug)] -pub struct OrganizationAssignment_<'a> { // entity +pub struct OrganizationAssignment_<'a> { + // entity pub assigned_organization: Organization<'a>, pub role: OrganizationRole<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -20976,12 +24443,17 @@ impl<'a> ParseFromChunks<'a> for OrganizationAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("ORGANIZATION_ASSIGNMENT(")(strs[0])?; - let (s, assigned_organization) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_organization) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_organization, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_organization, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrganizationAssignment_<'a> { @@ -20995,7 +24467,8 @@ pub struct OrganizationItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous pub type OrganizationItem<'a> = Id>; #[derive(Debug)] -pub struct OrganizationRelationship_<'a> { // entity +pub struct OrganizationRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_organization: Organization<'a>, @@ -21017,14 +24490,20 @@ impl<'a> ParseFromChunks<'a> for OrganizationRelationship_<'a> { let (s, _) = tag("ORGANIZATION_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_organization) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_organization) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_organization, - related_organization, - _marker: std::marker::PhantomData})) + let (s, relating_organization) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_organization) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_organization, + related_organization, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrganizationRelationship_<'a> { @@ -21036,7 +24515,8 @@ impl<'a> HasId for OrganizationRelationship_<'a> { } } #[derive(Debug)] -pub struct OrganizationRole_<'a> { // entity +pub struct OrganizationRole_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -21054,9 +24534,13 @@ impl<'a> ParseFromChunks<'a> for OrganizationRole_<'a> { let mut i = 0; let (s, _) = tag("ORGANIZATION_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrganizationRole_<'a> { @@ -21065,7 +24549,8 @@ impl<'a> HasId for OrganizationRole_<'a> { } } #[derive(Debug)] -pub struct OrganizationalAddress_<'a> { // entity +pub struct OrganizationalAddress_<'a> { + // entity pub internal_location: Option>, pub street_number: Option>, pub street: Option>, @@ -21095,7 +24580,8 @@ impl<'a> ParseFromChunks<'a> for OrganizationalAddress_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("ORGANIZATIONAL_ADDRESS(")(strs[0])?; - let (s, internal_location) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, internal_location) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, street_number) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, street) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, postal_box) = param_from_chunks::>>(false, s, &mut i, strs)?; @@ -21105,26 +24591,32 @@ impl<'a> ParseFromChunks<'a> for OrganizationalAddress_<'a> { let (s, country) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, facsimile_number) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, telephone_number) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, electronic_mail_address) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, electronic_mail_address) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, telex_number) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, organizations) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, organizations) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - internal_location, - street_number, - street, - postal_box, - town, - region, - postal_code, - country, - facsimile_number, - telephone_number, - electronic_mail_address, - telex_number, - organizations, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + internal_location, + street_number, + street, + postal_box, + town, + region, + postal_code, + country, + facsimile_number, + telephone_number, + electronic_mail_address, + telex_number, + organizations, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrganizationalAddress_<'a> { @@ -21146,7 +24638,8 @@ impl<'a> HasId for OrganizationalAddress_<'a> { } } #[derive(Debug)] -pub struct OrganizationalProject_<'a> { // entity +pub struct OrganizationalProject_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub responsible_organizations: Vec>, @@ -21167,12 +24660,17 @@ impl<'a> ParseFromChunks<'a> for OrganizationalProject_<'a> { let (s, _) = tag("ORGANIZATIONAL_PROJECT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, responsible_organizations) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - responsible_organizations, - _marker: std::marker::PhantomData})) + let (s, responsible_organizations) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + responsible_organizations, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrganizationalProject_<'a> { @@ -21183,7 +24681,8 @@ impl<'a> HasId for OrganizationalProject_<'a> { } } #[derive(Debug)] -pub struct OrganizationalProjectAssignment_<'a> { // entity +pub struct OrganizationalProjectAssignment_<'a> { + // entity pub assigned_organizational_project: OrganizationalProject<'a>, pub role: OrganizationalProjectRole<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -21201,12 +24700,17 @@ impl<'a> ParseFromChunks<'a> for OrganizationalProjectAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("ORGANIZATIONAL_PROJECT_ASSIGNMENT(")(strs[0])?; - let (s, assigned_organizational_project) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_organizational_project) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_organizational_project, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_organizational_project, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrganizationalProjectAssignment_<'a> { @@ -21220,7 +24724,8 @@ pub struct OrganizationalProjectItem_<'a>(std::marker::PhantomData<&'a ()>); // pub type OrganizationalProjectItem<'a> = Id>; #[derive(Debug)] -pub struct OrganizationalProjectRelationship_<'a> { // entity +pub struct OrganizationalProjectRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_organizational_project: OrganizationalProject<'a>, @@ -21242,14 +24747,20 @@ impl<'a> ParseFromChunks<'a> for OrganizationalProjectRelationship_<'a> { let (s, _) = tag("ORGANIZATIONAL_PROJECT_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_organizational_project) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_organizational_project) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_organizational_project, - related_organizational_project, - _marker: std::marker::PhantomData})) + let (s, relating_organizational_project) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_organizational_project) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_organizational_project, + related_organizational_project, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrganizationalProjectRelationship_<'a> { @@ -21261,7 +24772,8 @@ impl<'a> HasId for OrganizationalProjectRelationship_<'a> { } } #[derive(Debug)] -pub struct OrganizationalProjectRole_<'a> { // entity +pub struct OrganizationalProjectRole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -21281,10 +24793,14 @@ impl<'a> ParseFromChunks<'a> for OrganizationalProjectRole_<'a> { let (s, _) = tag("ORGANIZATIONAL_PROJECT_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrganizationalProjectRole_<'a> { @@ -21294,7 +24810,8 @@ impl<'a> HasId for OrganizationalProjectRole_<'a> { } } #[derive(Debug)] -pub struct OrientedClosedShell_<'a> { // entity +pub struct OrientedClosedShell_<'a> { + // entity pub name: Label<'a>, pub closed_shell_element: ClosedShell<'a>, pub orientation: bool, @@ -21315,13 +24832,18 @@ impl<'a> ParseFromChunks<'a> for OrientedClosedShell_<'a> { let (s, _) = tag("ORIENTED_CLOSED_SHELL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, _) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, closed_shell_element) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, closed_shell_element) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - closed_shell_element, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + closed_shell_element, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrientedClosedShell_<'a> { @@ -21332,7 +24854,8 @@ impl<'a> HasId for OrientedClosedShell_<'a> { } } #[derive(Debug)] -pub struct OrientedEdge_<'a> { // entity +pub struct OrientedEdge_<'a> { + // entity pub name: Label<'a>, pub edge_element: Edge<'a>, pub orientation: bool, @@ -21356,11 +24879,15 @@ impl<'a> ParseFromChunks<'a> for OrientedEdge_<'a> { let (s, _) = param_from_chunks::(false, s, &mut i, strs)?; let (s, edge_element) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - edge_element, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + edge_element, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrientedEdge_<'a> { @@ -21371,7 +24898,8 @@ impl<'a> HasId for OrientedEdge_<'a> { } } #[derive(Debug)] -pub struct OrientedFace_<'a> { // entity +pub struct OrientedFace_<'a> { + // entity pub name: Label<'a>, pub face_element: Face<'a>, pub orientation: bool, @@ -21394,11 +24922,15 @@ impl<'a> ParseFromChunks<'a> for OrientedFace_<'a> { let (s, _) = param_from_chunks::(false, s, &mut i, strs)?; let (s, face_element) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - face_element, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + face_element, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrientedFace_<'a> { @@ -21409,7 +24941,8 @@ impl<'a> HasId for OrientedFace_<'a> { } } #[derive(Debug)] -pub struct OrientedOpenShell_<'a> { // entity +pub struct OrientedOpenShell_<'a> { + // entity pub name: Label<'a>, pub open_shell_element: OpenShell<'a>, pub orientation: bool, @@ -21432,11 +24965,15 @@ impl<'a> ParseFromChunks<'a> for OrientedOpenShell_<'a> { let (s, _) = param_from_chunks::(false, s, &mut i, strs)?; let (s, open_shell_element) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - open_shell_element, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + open_shell_element, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrientedOpenShell_<'a> { @@ -21447,7 +24984,8 @@ impl<'a> HasId for OrientedOpenShell_<'a> { } } #[derive(Debug)] -pub struct OrientedPath_<'a> { // entity +pub struct OrientedPath_<'a> { + // entity pub name: Label<'a>, pub path_element: Path<'a>, pub orientation: bool, @@ -21470,11 +25008,15 @@ impl<'a> ParseFromChunks<'a> for OrientedPath_<'a> { let (s, _) = param_from_chunks::(false, s, &mut i, strs)?; let (s, path_element) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - path_element, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + path_element, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrientedPath_<'a> { @@ -21485,7 +25027,8 @@ impl<'a> HasId for OrientedPath_<'a> { } } #[derive(Debug)] -pub struct OrientedSurface_<'a> { // entity +pub struct OrientedSurface_<'a> { + // entity pub name: Label<'a>, pub orientation: bool, _marker: std::marker::PhantomData<&'a ()>, @@ -21505,10 +25048,14 @@ impl<'a> ParseFromChunks<'a> for OrientedSurface_<'a> { let (s, _) = tag("ORIENTED_SURFACE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OrientedSurface_<'a> { @@ -21518,7 +25065,8 @@ impl<'a> HasId for OrientedSurface_<'a> { } } #[derive(Debug)] -pub struct OuterBoundaryCurve_<'a> { // entity +pub struct OuterBoundaryCurve_<'a> { + // entity pub name: Label<'a>, pub segments: Vec>, pub self_intersect: Logical, @@ -21538,13 +25086,18 @@ impl<'a> ParseFromChunks<'a> for OuterBoundaryCurve_<'a> { let mut i = 0; let (s, _) = tag("OUTER_BOUNDARY_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, segments) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, segments) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - segments, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + segments, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OuterBoundaryCurve_<'a> { @@ -21555,7 +25108,8 @@ impl<'a> HasId for OuterBoundaryCurve_<'a> { } } #[derive(Debug)] -pub struct OverRidingStyledItem_<'a> { // entity +pub struct OverRidingStyledItem_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -21576,15 +25130,20 @@ impl<'a> ParseFromChunks<'a> for OverRidingStyledItem_<'a> { let mut i = 0; let (s, _) = tag("OVER_RIDING_STYLED_ITEM(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, over_ridden_style) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - over_ridden_style, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + styles, + item, + over_ridden_style, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for OverRidingStyledItem_<'a> { @@ -21596,7 +25155,8 @@ impl<'a> HasId for OverRidingStyledItem_<'a> { } } #[derive(Debug)] -pub struct PackageProductConceptFeature_<'a> { // entity +pub struct PackageProductConceptFeature_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -21618,11 +25178,15 @@ impl<'a> ParseFromChunks<'a> for PackageProductConceptFeature_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PackageProductConceptFeature_<'a> { @@ -21633,7 +25197,8 @@ impl<'a> HasId for PackageProductConceptFeature_<'a> { } } #[derive(Debug)] -pub struct PairActuator_<'a> { // entity +pub struct PairActuator_<'a> { + // entity pub actuated_pair: KinematicPair<'a>, pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -21653,10 +25218,14 @@ impl<'a> ParseFromChunks<'a> for PairActuator_<'a> { let (s, _) = tag("PAIR_ACTUATOR(")(strs[0])?; let (s, actuated_pair) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - actuated_pair, - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + actuated_pair, + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PairActuator_<'a> { @@ -21666,7 +25235,8 @@ impl<'a> HasId for PairActuator_<'a> { } } #[derive(Debug)] -pub struct PairValue_<'a> { // entity +pub struct PairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -21684,9 +25254,13 @@ impl<'a> ParseFromChunks<'a> for PairValue_<'a> { let mut i = 0; let (s, _) = tag("PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + applies_to_pair, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PairValue_<'a> { @@ -21695,7 +25269,8 @@ impl<'a> HasId for PairValue_<'a> { } } #[derive(Debug)] -pub struct Parabola_<'a> { // entity +pub struct Parabola_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement<'a>, pub focal_dist: LengthMeasure<'a>, @@ -21717,11 +25292,15 @@ impl<'a> ParseFromChunks<'a> for Parabola_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, position) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, focal_dist) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - focal_dist, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + position, + focal_dist, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Parabola_<'a> { @@ -21732,7 +25311,8 @@ impl<'a> HasId for Parabola_<'a> { } } #[derive(Debug)] -pub struct ParallelOffset_<'a> { // entity +pub struct ParallelOffset_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -21755,16 +25335,21 @@ impl<'a> ParseFromChunks<'a> for ParallelOffset_<'a> { let (s, _) = tag("PARALLEL_OFFSET(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(false, s, &mut i, strs)?; let (s, offset) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - offset, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + offset, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ParallelOffset_<'a> { @@ -21777,7 +25362,8 @@ impl<'a> HasId for ParallelOffset_<'a> { } } #[derive(Debug)] -pub struct ParallelismTolerance_<'a> { // entity +pub struct ParallelismTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -21801,15 +25387,21 @@ impl<'a> ParseFromChunks<'a> for ParallelismTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, datum_system) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - datum_system, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, datum_system) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + datum_system, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ParallelismTolerance_<'a> { @@ -21829,11 +25421,13 @@ impl<'a> Parse<'a> for ParameterValue<'a> { } } impl<'a> HasId for ParameterValue<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct ParametricRepresentationContext_<'a> { // entity +pub struct ParametricRepresentationContext_<'a> { + // entity pub context_identifier: Identifier<'a>, pub context_type: Text<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -21853,10 +25447,14 @@ impl<'a> ParseFromChunks<'a> for ParametricRepresentationContext_<'a> { let (s, _) = tag("PARAMETRIC_REPRESENTATION_CONTEXT(")(strs[0])?; let (s, context_identifier) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, context_type) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - context_identifier, - context_type, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + context_identifier, + context_type, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ParametricRepresentationContext_<'a> { @@ -21866,7 +25464,8 @@ impl<'a> HasId for ParametricRepresentationContext_<'a> { } } #[derive(Debug)] -pub struct PartialCircularProfile_<'a> { // entity +pub struct PartialCircularProfile_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -21888,14 +25487,19 @@ impl<'a> ParseFromChunks<'a> for PartialCircularProfile_<'a> { let (s, _) = tag("PARTIAL_CIRCULAR_PROFILE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PartialCircularProfile_<'a> { @@ -21907,7 +25511,8 @@ impl<'a> HasId for PartialCircularProfile_<'a> { } } #[derive(Debug)] -pub struct Path_<'a> { // entity +pub struct Path_<'a> { + // entity pub name: Label<'a>, pub edge_list: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -21927,10 +25532,14 @@ impl<'a> ParseFromChunks<'a> for Path_<'a> { let (s, _) = tag("PATH(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, edge_list) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - edge_list, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + edge_list, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Path_<'a> { @@ -21940,7 +25549,8 @@ impl<'a> HasId for Path_<'a> { } } #[derive(Debug)] -pub struct PathFeatureComponent_<'a> { // entity +pub struct PathFeatureComponent_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -21962,14 +25572,19 @@ impl<'a> ParseFromChunks<'a> for PathFeatureComponent_<'a> { let (s, _) = tag("PATH_FEATURE_COMPONENT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PathFeatureComponent_<'a> { @@ -21981,7 +25596,8 @@ impl<'a> HasId for PathFeatureComponent_<'a> { } } #[derive(Debug)] -pub struct PathShapeRepresentation_<'a> { // entity +pub struct PathShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -22002,12 +25618,17 @@ impl<'a> ParseFromChunks<'a> for PathShapeRepresentation_<'a> { let (s, _) = tag("PATH_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PathShapeRepresentation_<'a> { @@ -22018,7 +25639,8 @@ impl<'a> HasId for PathShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct PatternOffsetMembership_<'a> { // entity +pub struct PatternOffsetMembership_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_shape_aspect: ShapeAspect<'a>, @@ -22040,14 +25662,20 @@ impl<'a> ParseFromChunks<'a> for PatternOffsetMembership_<'a> { let (s, _) = tag("PATTERN_OFFSET_MEMBERSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_shape_aspect, - related_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, relating_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_shape_aspect, + related_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PatternOffsetMembership_<'a> { @@ -22059,7 +25687,8 @@ impl<'a> HasId for PatternOffsetMembership_<'a> { } } #[derive(Debug)] -pub struct PatternOmitMembership_<'a> { // entity +pub struct PatternOmitMembership_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_shape_aspect: ShapeAspect<'a>, @@ -22081,14 +25710,20 @@ impl<'a> ParseFromChunks<'a> for PatternOmitMembership_<'a> { let (s, _) = tag("PATTERN_OMIT_MEMBERSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_shape_aspect, - related_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, relating_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_shape_aspect, + related_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PatternOmitMembership_<'a> { @@ -22100,7 +25735,8 @@ impl<'a> HasId for PatternOmitMembership_<'a> { } } #[derive(Debug)] -pub struct Pcurve_<'a> { // entity +pub struct Pcurve_<'a> { + // entity pub name: Label<'a>, pub basis_surface: Surface<'a>, pub reference_to_curve: DefinitionalRepresentation<'a>, @@ -22121,12 +25757,17 @@ impl<'a> ParseFromChunks<'a> for Pcurve_<'a> { let (s, _) = tag("PCURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, basis_surface) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, reference_to_curve) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - basis_surface, - reference_to_curve, - _marker: std::marker::PhantomData})) + let (s, reference_to_curve) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + basis_surface, + reference_to_curve, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Pcurve_<'a> { @@ -22141,7 +25782,8 @@ pub struct PcurveOrSurface_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous pub type PcurveOrSurface<'a> = Id>; #[derive(Debug)] -pub struct PerpendicularTo_<'a> { // entity +pub struct PerpendicularTo_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -22163,14 +25805,19 @@ impl<'a> ParseFromChunks<'a> for PerpendicularTo_<'a> { let (s, _) = tag("PERPENDICULAR_TO(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PerpendicularTo_<'a> { @@ -22182,7 +25829,8 @@ impl<'a> HasId for PerpendicularTo_<'a> { } } #[derive(Debug)] -pub struct PerpendicularityTolerance_<'a> { // entity +pub struct PerpendicularityTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -22206,15 +25854,21 @@ impl<'a> ParseFromChunks<'a> for PerpendicularityTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, datum_system) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - datum_system, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, datum_system) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + datum_system, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PerpendicularityTolerance_<'a> { @@ -22227,7 +25881,8 @@ impl<'a> HasId for PerpendicularityTolerance_<'a> { } } #[derive(Debug)] -pub struct Person_<'a> { // entity +pub struct Person_<'a> { + // entity pub id: Identifier<'a>, pub last_name: Option>, pub first_name: Option>, @@ -22252,17 +25907,24 @@ impl<'a> ParseFromChunks<'a> for Person_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, last_name) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, first_name) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, middle_names) = param_from_chunks::>>>(false, s, &mut i, strs)?; - let (s, prefix_titles) = param_from_chunks::>>>(false, s, &mut i, strs)?; - let (s, suffix_titles) = param_from_chunks::>>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - last_name, - first_name, - middle_names, - prefix_titles, - suffix_titles, - _marker: std::marker::PhantomData})) + let (s, middle_names) = + param_from_chunks::>>>(false, s, &mut i, strs)?; + let (s, prefix_titles) = + param_from_chunks::>>>(false, s, &mut i, strs)?; + let (s, suffix_titles) = + param_from_chunks::>>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + last_name, + first_name, + middle_names, + prefix_titles, + suffix_titles, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Person_<'a> { @@ -22276,7 +25938,8 @@ impl<'a> HasId for Person_<'a> { } } #[derive(Debug)] -pub struct PersonAndOrganization_<'a> { // entity +pub struct PersonAndOrganization_<'a> { + // entity pub the_person: Person<'a>, pub the_organization: Organization<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -22296,10 +25959,14 @@ impl<'a> ParseFromChunks<'a> for PersonAndOrganization_<'a> { let (s, _) = tag("PERSON_AND_ORGANIZATION(")(strs[0])?; let (s, the_person) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, the_organization) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - the_person, - the_organization, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + the_person, + the_organization, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PersonAndOrganization_<'a> { @@ -22310,7 +25977,8 @@ impl<'a> HasId for PersonAndOrganization_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct PersonAndOrganizationAddress_<'a> { // entity +pub struct PersonAndOrganizationAddress_<'a> { + // entity pub address__internal_location: Option>, pub address__street_number: Option>, pub address__street: Option>, @@ -22343,53 +26011,68 @@ impl<'a> ParseFromChunks<'a> for PersonAndOrganizationAddress_<'a> { let mut i = 0; let (s, _) = tag("PERSON_AND_ORGANIZATION_ADDRESS(")(strs[0])?; #[allow(non_snake_case)] - let (s, address__internal_location) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, address__internal_location) = + param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, address__street_number) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, address__street_number) = + param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] let (s, address__street) = param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, address__postal_box) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, address__postal_box) = + param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] let (s, address__town) = param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] let (s, address__region) = param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, address__postal_code) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, address__postal_code) = + param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] let (s, address__country) = param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, address__facsimile_number) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, address__facsimile_number) = + param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, address__telephone_number) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, address__telephone_number) = + param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, address__electronic_mail_address) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, address__electronic_mail_address) = + param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, address__telex_number) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, organizations) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, address__telex_number) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, organizations) = + param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, organizational_address__description) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, organizational_address__description) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, people) = param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, personal_address__description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - address__internal_location, - address__street_number, - address__street, - address__postal_box, - address__town, - address__region, - address__postal_code, - address__country, - address__facsimile_number, - address__telephone_number, - address__electronic_mail_address, - address__telex_number, - organizations, - organizational_address__description, - people, - personal_address__description, - _marker: std::marker::PhantomData})) + let (s, personal_address__description) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + address__internal_location, + address__street_number, + address__street, + address__postal_box, + address__town, + address__region, + address__postal_code, + address__country, + address__facsimile_number, + address__telephone_number, + address__electronic_mail_address, + address__telex_number, + organizations, + organizational_address__description, + people, + personal_address__description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PersonAndOrganizationAddress_<'a> { @@ -22413,7 +26096,8 @@ impl<'a> HasId for PersonAndOrganizationAddress_<'a> { } } #[derive(Debug)] -pub struct PersonAndOrganizationAssignment_<'a> { // entity +pub struct PersonAndOrganizationAssignment_<'a> { + // entity pub assigned_person_and_organization: PersonAndOrganization<'a>, pub role: PersonAndOrganizationRole<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -22431,12 +26115,17 @@ impl<'a> ParseFromChunks<'a> for PersonAndOrganizationAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("PERSON_AND_ORGANIZATION_ASSIGNMENT(")(strs[0])?; - let (s, assigned_person_and_organization) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_person_and_organization) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_person_and_organization, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_person_and_organization, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PersonAndOrganizationAssignment_<'a> { @@ -22450,7 +26139,8 @@ pub struct PersonAndOrganizationItem_<'a>(std::marker::PhantomData<&'a ()>); // pub type PersonAndOrganizationItem<'a> = Id>; #[derive(Debug)] -pub struct PersonAndOrganizationRole_<'a> { // entity +pub struct PersonAndOrganizationRole_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -22468,9 +26158,13 @@ impl<'a> ParseFromChunks<'a> for PersonAndOrganizationRole_<'a> { let mut i = 0; let (s, _) = tag("PERSON_AND_ORGANIZATION_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PersonAndOrganizationRole_<'a> { @@ -22483,7 +26177,8 @@ pub struct PersonOrganizationSelect_<'a>(std::marker::PhantomData<&'a ()>); // a pub type PersonOrganizationSelect<'a> = Id>; #[derive(Debug)] -pub struct PersonalAddress_<'a> { // entity +pub struct PersonalAddress_<'a> { + // entity pub internal_location: Option>, pub street_number: Option>, pub street: Option>, @@ -22513,7 +26208,8 @@ impl<'a> ParseFromChunks<'a> for PersonalAddress_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("PERSONAL_ADDRESS(")(strs[0])?; - let (s, internal_location) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, internal_location) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, street_number) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, street) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, postal_box) = param_from_chunks::>>(false, s, &mut i, strs)?; @@ -22523,26 +26219,31 @@ impl<'a> ParseFromChunks<'a> for PersonalAddress_<'a> { let (s, country) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, facsimile_number) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, telephone_number) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, electronic_mail_address) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, electronic_mail_address) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, telex_number) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, people) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - internal_location, - street_number, - street, - postal_box, - town, - region, - postal_code, - country, - facsimile_number, - telephone_number, - electronic_mail_address, - telex_number, - people, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + internal_location, + street_number, + street, + postal_box, + town, + region, + postal_code, + country, + facsimile_number, + telephone_number, + electronic_mail_address, + telex_number, + people, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PersonalAddress_<'a> { @@ -22564,7 +26265,8 @@ impl<'a> HasId for PersonalAddress_<'a> { } } #[derive(Debug)] -pub struct PhysicallyModelledProductDefinition_<'a> { // entity +pub struct PhysicallyModelledProductDefinition_<'a> { + // entity pub id: Identifier<'a>, pub description: Option>, pub formation: ProductDefinitionFormation<'a>, @@ -22587,16 +26289,22 @@ impl<'a> ParseFromChunks<'a> for PhysicallyModelledProductDefinition_<'a> { let (s, _) = tag("PHYSICALLY_MODELLED_PRODUCT_DEFINITION(")(strs[0])?; let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, formation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, frame_of_reference) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, formation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, frame_of_reference) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, documentation_ids) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - description, - formation, - frame_of_reference, - documentation_ids, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + description, + formation, + frame_of_reference, + documentation_ids, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PhysicallyModelledProductDefinition_<'a> { @@ -22609,7 +26317,8 @@ impl<'a> HasId for PhysicallyModelledProductDefinition_<'a> { } } #[derive(Debug)] -pub struct PlacedDatumTargetFeature_<'a> { // entity +pub struct PlacedDatumTargetFeature_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -22632,16 +26341,21 @@ impl<'a> ParseFromChunks<'a> for PlacedDatumTargetFeature_<'a> { let (s, _) = tag("PLACED_DATUM_TARGET_FEATURE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(false, s, &mut i, strs)?; let (s, target_id) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - target_id, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + target_id, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlacedDatumTargetFeature_<'a> { @@ -22654,7 +26368,8 @@ impl<'a> HasId for PlacedDatumTargetFeature_<'a> { } } #[derive(Debug)] -pub struct PlacedFeature_<'a> { // entity +pub struct PlacedFeature_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -22676,14 +26391,19 @@ impl<'a> ParseFromChunks<'a> for PlacedFeature_<'a> { let (s, _) = tag("PLACED_FEATURE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlacedFeature_<'a> { @@ -22695,7 +26415,8 @@ impl<'a> HasId for PlacedFeature_<'a> { } } #[derive(Debug)] -pub struct Placement_<'a> { // entity +pub struct Placement_<'a> { + // entity pub name: Label<'a>, pub location: CartesianPoint<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -22715,10 +26436,14 @@ impl<'a> ParseFromChunks<'a> for Placement_<'a> { let (s, _) = tag("PLACEMENT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, location) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - location, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + location, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Placement_<'a> { @@ -22728,7 +26453,8 @@ impl<'a> HasId for Placement_<'a> { } } #[derive(Debug)] -pub struct PlanarBox_<'a> { // entity +pub struct PlanarBox_<'a> { + // entity pub name: Label<'a>, pub size_in_x: LengthMeasure<'a>, pub size_in_y: LengthMeasure<'a>, @@ -22752,12 +26478,16 @@ impl<'a> ParseFromChunks<'a> for PlanarBox_<'a> { let (s, size_in_x) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, size_in_y) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, placement) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - size_in_x, - size_in_y, - placement, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + size_in_x, + size_in_y, + placement, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlanarBox_<'a> { @@ -22769,7 +26499,8 @@ impl<'a> HasId for PlanarBox_<'a> { } } #[derive(Debug)] -pub struct PlanarCurvePair_<'a> { // entity +pub struct PlanarCurvePair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -22795,22 +26526,28 @@ impl<'a> ParseFromChunks<'a> for PlanarCurvePair_<'a> { let (s, _) = tag("PLANAR_CURVE_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_2) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - curve_1, - curve_2, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + curve_1, + curve_2, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlanarCurvePair_<'a> { @@ -22826,7 +26563,8 @@ impl<'a> HasId for PlanarCurvePair_<'a> { } } #[derive(Debug)] -pub struct PlanarCurvePairRange_<'a> { // entity +pub struct PlanarCurvePairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub range_on_curve_1: TrimmedCurve<'a>, pub range_on_curve_2: TrimmedCurve<'a>, @@ -22848,11 +26586,15 @@ impl<'a> ParseFromChunks<'a> for PlanarCurvePairRange_<'a> { let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, range_on_curve_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, range_on_curve_2) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - range_on_curve_1, - range_on_curve_2, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + applies_to_pair, + range_on_curve_1, + range_on_curve_2, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlanarCurvePairRange_<'a> { @@ -22863,7 +26605,8 @@ impl<'a> HasId for PlanarCurvePairRange_<'a> { } } #[derive(Debug)] -pub struct PlanarExtent_<'a> { // entity +pub struct PlanarExtent_<'a> { + // entity pub name: Label<'a>, pub size_in_x: LengthMeasure<'a>, pub size_in_y: LengthMeasure<'a>, @@ -22885,11 +26628,15 @@ impl<'a> ParseFromChunks<'a> for PlanarExtent_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, size_in_x) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, size_in_y) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - size_in_x, - size_in_y, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + size_in_x, + size_in_y, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlanarExtent_<'a> { @@ -22900,7 +26647,8 @@ impl<'a> HasId for PlanarExtent_<'a> { } } #[derive(Debug)] -pub struct PlanarPair_<'a> { // entity +pub struct PlanarPair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -22923,16 +26671,22 @@ impl<'a> ParseFromChunks<'a> for PlanarPair_<'a> { let (s, _) = tag("PLANAR_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlanarPair_<'a> { @@ -22945,7 +26699,8 @@ impl<'a> HasId for PlanarPair_<'a> { } } #[derive(Debug)] -pub struct PlanarPairRange_<'a> { // entity +pub struct PlanarPairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub lower_limit_actual_rotation: RotationalRangeMeasure<'a>, pub upper_limit_actual_rotation: RotationalRangeMeasure<'a>, @@ -22969,21 +26724,31 @@ impl<'a> ParseFromChunks<'a> for PlanarPairRange_<'a> { let mut i = 0; let (s, _) = tag("PLANAR_PAIR_RANGE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_actual_rotation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_actual_rotation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_actual_translation_x) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_actual_translation_x) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_actual_translation_y) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_actual_translation_y) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - lower_limit_actual_rotation, - upper_limit_actual_rotation, - lower_limit_actual_translation_x, - upper_limit_actual_translation_x, - lower_limit_actual_translation_y, - upper_limit_actual_translation_y, - _marker: std::marker::PhantomData})) + let (s, lower_limit_actual_rotation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_actual_rotation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, lower_limit_actual_translation_x) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_actual_translation_x) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, lower_limit_actual_translation_y) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_actual_translation_y) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + lower_limit_actual_rotation, + upper_limit_actual_rotation, + lower_limit_actual_translation_x, + upper_limit_actual_translation_x, + lower_limit_actual_translation_y, + upper_limit_actual_translation_y, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlanarPairRange_<'a> { @@ -22998,7 +26763,8 @@ impl<'a> HasId for PlanarPairRange_<'a> { } } #[derive(Debug)] -pub struct PlanarPairValue_<'a> { // entity +pub struct PlanarPairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_rotation: PlaneAngleMeasure<'a>, pub actual_translation_x: LengthMeasure<'a>, @@ -23019,15 +26785,22 @@ impl<'a> ParseFromChunks<'a> for PlanarPairValue_<'a> { let mut i = 0; let (s, _) = tag("PLANAR_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_rotation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_translation_x) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_translation_y) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_rotation, - actual_translation_x, - actual_translation_y, - _marker: std::marker::PhantomData})) + let (s, actual_rotation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, actual_translation_x) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, actual_translation_y) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_rotation, + actual_translation_x, + actual_translation_y, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlanarPairValue_<'a> { @@ -23039,7 +26812,8 @@ impl<'a> HasId for PlanarPairValue_<'a> { } } #[derive(Debug)] -pub struct PlanarShapeRepresentation_<'a> { // entity +pub struct PlanarShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -23060,12 +26834,17 @@ impl<'a> ParseFromChunks<'a> for PlanarShapeRepresentation_<'a> { let (s, _) = tag("PLANAR_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlanarShapeRepresentation_<'a> { @@ -23076,7 +26855,8 @@ impl<'a> HasId for PlanarShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct Plane_<'a> { // entity +pub struct Plane_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement3d<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -23096,10 +26876,14 @@ impl<'a> ParseFromChunks<'a> for Plane_<'a> { let (s, _) = tag("PLANE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, position) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + position, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Plane_<'a> { @@ -23116,11 +26900,13 @@ impl<'a> Parse<'a> for PlaneAngleMeasure<'a> { } } impl<'a> HasId for PlaneAngleMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct PlaneAngleMeasureWithUnit_<'a> { // entity +pub struct PlaneAngleMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -23140,10 +26926,14 @@ impl<'a> ParseFromChunks<'a> for PlaneAngleMeasureWithUnit_<'a> { let (s, _) = tag("PLANE_ANGLE_MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlaneAngleMeasureWithUnit_<'a> { @@ -23153,7 +26943,8 @@ impl<'a> HasId for PlaneAngleMeasureWithUnit_<'a> { } } #[derive(Debug)] -pub struct PlaneAngleUnit_<'a> { // entity +pub struct PlaneAngleUnit_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -23171,9 +26962,13 @@ impl<'a> ParseFromChunks<'a> for PlaneAngleUnit_<'a> { let mut i = 0; let (s, _) = tag("PLANE_ANGLE_UNIT(")(strs[0])?; let (s, dimensions) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlaneAngleUnit_<'a> { @@ -23186,7 +26981,8 @@ pub struct PlaneOrPlanarBox_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous pub type PlaneOrPlanarBox<'a> = Id>; #[derive(Debug)] -pub struct PlusExpression_<'a> { // entity +pub struct PlusExpression_<'a> { + // entity pub operands: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -23204,9 +27000,13 @@ impl<'a> ParseFromChunks<'a> for PlusExpression_<'a> { let mut i = 0; let (s, _) = tag("PLUS_EXPRESSION(")(strs[0])?; let (s, operands) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlusExpression_<'a> { @@ -23215,7 +27015,8 @@ impl<'a> HasId for PlusExpression_<'a> { } } #[derive(Debug)] -pub struct PlusMinusTolerance_<'a> { // entity +pub struct PlusMinusTolerance_<'a> { + // entity pub range: ToleranceMethodDefinition<'a>, pub toleranced_dimension: DimensionalCharacteristic<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -23233,12 +27034,18 @@ impl<'a> ParseFromChunks<'a> for PlusMinusTolerance_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("PLUS_MINUS_TOLERANCE(")(strs[0])?; - let (s, range) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_dimension) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - range, - toleranced_dimension, - _marker: std::marker::PhantomData})) + let (s, range) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, toleranced_dimension) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + range, + toleranced_dimension, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PlusMinusTolerance_<'a> { @@ -23248,7 +27055,8 @@ impl<'a> HasId for PlusMinusTolerance_<'a> { } } #[derive(Debug)] -pub struct Pocket_<'a> { // entity +pub struct Pocket_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -23268,10 +27076,14 @@ impl<'a> ParseFromChunks<'a> for Pocket_<'a> { let (s, _) = tag("POCKET(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Pocket_<'a> { @@ -23281,7 +27093,8 @@ impl<'a> HasId for Pocket_<'a> { } } #[derive(Debug)] -pub struct PocketBottom_<'a> { // entity +pub struct PocketBottom_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -23303,14 +27116,19 @@ impl<'a> ParseFromChunks<'a> for PocketBottom_<'a> { let (s, _) = tag("POCKET_BOTTOM(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PocketBottom_<'a> { @@ -23322,7 +27140,8 @@ impl<'a> HasId for PocketBottom_<'a> { } } #[derive(Debug)] -pub struct Point_<'a> { // entity +pub struct Point_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -23340,9 +27159,13 @@ impl<'a> ParseFromChunks<'a> for Point_<'a> { let mut i = 0; let (s, _) = tag("POINT(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Point_<'a> { @@ -23351,7 +27174,8 @@ impl<'a> HasId for Point_<'a> { } } #[derive(Debug)] -pub struct PointOnCurve_<'a> { // entity +pub struct PointOnCurve_<'a> { + // entity pub name: Label<'a>, pub basis_curve: Curve<'a>, pub point_parameter: ParameterValue<'a>, @@ -23373,11 +27197,15 @@ impl<'a> ParseFromChunks<'a> for PointOnCurve_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, basis_curve) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, point_parameter) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - basis_curve, - point_parameter, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + basis_curve, + point_parameter, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PointOnCurve_<'a> { @@ -23388,7 +27216,8 @@ impl<'a> HasId for PointOnCurve_<'a> { } } #[derive(Debug)] -pub struct PointOnPlanarCurvePair_<'a> { // entity +pub struct PointOnPlanarCurvePair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -23413,20 +27242,26 @@ impl<'a> ParseFromChunks<'a> for PointOnPlanarCurvePair_<'a> { let (s, _) = tag("POINT_ON_PLANAR_CURVE_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, pair_curve) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - pair_curve, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + pair_curve, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PointOnPlanarCurvePair_<'a> { @@ -23441,7 +27276,8 @@ impl<'a> HasId for PointOnPlanarCurvePair_<'a> { } } #[derive(Debug)] -pub struct PointOnPlanarCurvePairRange_<'a> { // entity +pub struct PointOnPlanarCurvePairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub range_on_pair_curve: TrimmedCurve<'a>, pub lower_limit_yaw: RotationalRangeMeasure<'a>, @@ -23466,23 +27302,34 @@ impl<'a> ParseFromChunks<'a> for PointOnPlanarCurvePairRange_<'a> { let mut i = 0; let (s, _) = tag("POINT_ON_PLANAR_CURVE_PAIR_RANGE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, range_on_pair_curve) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_yaw) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_yaw) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_pitch) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_pitch) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_roll) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_roll) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - range_on_pair_curve, - lower_limit_yaw, - upper_limit_yaw, - lower_limit_pitch, - upper_limit_pitch, - lower_limit_roll, - upper_limit_roll, - _marker: std::marker::PhantomData})) + let (s, range_on_pair_curve) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, lower_limit_yaw) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_yaw) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, lower_limit_pitch) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_pitch) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, lower_limit_roll) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_roll) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + range_on_pair_curve, + lower_limit_yaw, + upper_limit_yaw, + lower_limit_pitch, + upper_limit_pitch, + lower_limit_roll, + upper_limit_roll, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PointOnPlanarCurvePairRange_<'a> { @@ -23498,7 +27345,8 @@ impl<'a> HasId for PointOnPlanarCurvePairRange_<'a> { } } #[derive(Debug)] -pub struct PointOnPlanarCurvePairValue_<'a> { // entity +pub struct PointOnPlanarCurvePairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_point_on_curve: PointOnCurve<'a>, pub input_orientation: SpatialRotation<'a>, @@ -23518,13 +27366,19 @@ impl<'a> ParseFromChunks<'a> for PointOnPlanarCurvePairValue_<'a> { let mut i = 0; let (s, _) = tag("POINT_ON_PLANAR_CURVE_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_point_on_curve) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, input_orientation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_point_on_curve, - input_orientation, - _marker: std::marker::PhantomData})) + let (s, actual_point_on_curve) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, input_orientation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_point_on_curve, + input_orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PointOnPlanarCurvePairValue_<'a> { @@ -23535,7 +27389,8 @@ impl<'a> HasId for PointOnPlanarCurvePairValue_<'a> { } } #[derive(Debug)] -pub struct PointOnSurface_<'a> { // entity +pub struct PointOnSurface_<'a> { + // entity pub name: Label<'a>, pub basis_surface: Surface<'a>, pub point_parameter_u: ParameterValue<'a>, @@ -23557,14 +27412,20 @@ impl<'a> ParseFromChunks<'a> for PointOnSurface_<'a> { let (s, _) = tag("POINT_ON_SURFACE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, basis_surface) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, point_parameter_u) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, point_parameter_v) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - basis_surface, - point_parameter_u, - point_parameter_v, - _marker: std::marker::PhantomData})) + let (s, point_parameter_u) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, point_parameter_v) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + basis_surface, + point_parameter_u, + point_parameter_v, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PointOnSurface_<'a> { @@ -23576,7 +27437,8 @@ impl<'a> HasId for PointOnSurface_<'a> { } } #[derive(Debug)] -pub struct PointOnSurfacePair_<'a> { // entity +pub struct PointOnSurfacePair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -23600,18 +27462,24 @@ impl<'a> ParseFromChunks<'a> for PointOnSurfacePair_<'a> { let (s, _) = tag("POINT_ON_SURFACE_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, pair_surface) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - pair_surface, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + pair_surface, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PointOnSurfacePair_<'a> { @@ -23625,7 +27493,8 @@ impl<'a> HasId for PointOnSurfacePair_<'a> { } } #[derive(Debug)] -pub struct PointOnSurfacePairRange_<'a> { // entity +pub struct PointOnSurfacePairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub range_on_pair_surface: RectangularTrimmedSurface<'a>, pub lower_limit_yaw: RotationalRangeMeasure<'a>, @@ -23650,23 +27519,34 @@ impl<'a> ParseFromChunks<'a> for PointOnSurfacePairRange_<'a> { let mut i = 0; let (s, _) = tag("POINT_ON_SURFACE_PAIR_RANGE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, range_on_pair_surface) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_yaw) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_yaw) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_pitch) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_pitch) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_roll) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_roll) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - range_on_pair_surface, - lower_limit_yaw, - upper_limit_yaw, - lower_limit_pitch, - upper_limit_pitch, - lower_limit_roll, - upper_limit_roll, - _marker: std::marker::PhantomData})) + let (s, range_on_pair_surface) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, lower_limit_yaw) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_yaw) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, lower_limit_pitch) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_pitch) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, lower_limit_roll) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_roll) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + range_on_pair_surface, + lower_limit_yaw, + upper_limit_yaw, + lower_limit_pitch, + upper_limit_pitch, + lower_limit_roll, + upper_limit_roll, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PointOnSurfacePairRange_<'a> { @@ -23682,7 +27562,8 @@ impl<'a> HasId for PointOnSurfacePairRange_<'a> { } } #[derive(Debug)] -pub struct PointOnSurfacePairValue_<'a> { // entity +pub struct PointOnSurfacePairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_point_on_surface: PointOnSurface<'a>, pub input_orientation: SpatialRotation<'a>, @@ -23702,13 +27583,19 @@ impl<'a> ParseFromChunks<'a> for PointOnSurfacePairValue_<'a> { let mut i = 0; let (s, _) = tag("POINT_ON_SURFACE_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_point_on_surface) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, input_orientation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_point_on_surface, - input_orientation, - _marker: std::marker::PhantomData})) + let (s, actual_point_on_surface) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, input_orientation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_point_on_surface, + input_orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PointOnSurfacePairValue_<'a> { @@ -23719,7 +27606,8 @@ impl<'a> HasId for PointOnSurfacePairValue_<'a> { } } #[derive(Debug)] -pub struct PointPlacementShapeRepresentation_<'a> { // entity +pub struct PointPlacementShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -23740,12 +27628,17 @@ impl<'a> ParseFromChunks<'a> for PointPlacementShapeRepresentation_<'a> { let (s, _) = tag("POINT_PLACEMENT_SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PointPlacementShapeRepresentation_<'a> { @@ -23756,7 +27649,8 @@ impl<'a> HasId for PointPlacementShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct PointReplica_<'a> { // entity +pub struct PointReplica_<'a> { + // entity pub name: Label<'a>, pub parent_pt: Point<'a>, pub transformation: CartesianTransformationOperator<'a>, @@ -23777,12 +27671,17 @@ impl<'a> ParseFromChunks<'a> for PointReplica_<'a> { let (s, _) = tag("POINT_REPLICA(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, parent_pt) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transformation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - parent_pt, - transformation, - _marker: std::marker::PhantomData})) + let (s, transformation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + parent_pt, + transformation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PointReplica_<'a> { @@ -23793,7 +27692,8 @@ impl<'a> HasId for PointReplica_<'a> { } } #[derive(Debug)] -pub struct PointStyle_<'a> { // entity +pub struct PointStyle_<'a> { + // entity pub name: Label<'a>, pub marker: MarkerSelect<'a>, pub marker_size: SizeSelect<'a>, @@ -23817,12 +27717,16 @@ impl<'a> ParseFromChunks<'a> for PointStyle_<'a> { let (s, marker) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, marker_size) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, marker_colour) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - marker, - marker_size, - marker_colour, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + marker, + marker_size, + marker_colour, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PointStyle_<'a> { @@ -23835,7 +27739,8 @@ impl<'a> HasId for PointStyle_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct PolyLoop_<'a> { // entity +pub struct PolyLoop_<'a> { + // entity pub representation_item__name: Label<'a>, pub polygon: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -23854,12 +27759,17 @@ impl<'a> ParseFromChunks<'a> for PolyLoop_<'a> { let mut i = 0; let (s, _) = tag("POLY_LOOP(")(strs[0])?; #[allow(non_snake_case)] - let (s, representation_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, representation_item__name) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, polygon) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - representation_item__name, - polygon, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + representation_item__name, + polygon, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PolyLoop_<'a> { @@ -23869,7 +27779,8 @@ impl<'a> HasId for PolyLoop_<'a> { } } #[derive(Debug)] -pub struct Polyline_<'a> { // entity +pub struct Polyline_<'a> { + // entity pub name: Label<'a>, pub points: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -23889,10 +27800,14 @@ impl<'a> ParseFromChunks<'a> for Polyline_<'a> { let (s, _) = tag("POLYLINE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, points) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - points, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + points, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Polyline_<'a> { @@ -23902,7 +27817,8 @@ impl<'a> HasId for Polyline_<'a> { } } #[derive(Debug)] -pub struct PositionTolerance_<'a> { // entity +pub struct PositionTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -23925,13 +27841,18 @@ impl<'a> ParseFromChunks<'a> for PositionTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PositionTolerance_<'a> { @@ -23944,10 +27865,15 @@ impl<'a> HasId for PositionTolerance_<'a> { } #[derive(Debug)] -pub struct PositiveLengthMeasure<'a>(pub NonNegativeLengthMeasure<'a>, std::marker::PhantomData<&'a ()>); // redeclared +pub struct PositiveLengthMeasure<'a>( + pub NonNegativeLengthMeasure<'a>, + std::marker::PhantomData<&'a ()>, +); // redeclared impl<'a> Parse<'a> for PositiveLengthMeasure<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(NonNegativeLengthMeasure::parse, |r| Self(r, std::marker::PhantomData))(s) + map(NonNegativeLengthMeasure::parse, |r| { + Self(r, std::marker::PhantomData) + })(s) } } impl<'a> HasId for PositiveLengthMeasure<'a> { @@ -23956,12 +27882,16 @@ impl<'a> HasId for PositiveLengthMeasure<'a> { } } - #[derive(Debug)] -pub struct PositivePlaneAngleMeasure<'a>(pub PlaneAngleMeasure<'a>, std::marker::PhantomData<&'a ()>); // redeclared +pub struct PositivePlaneAngleMeasure<'a>( + pub PlaneAngleMeasure<'a>, + std::marker::PhantomData<&'a ()>, +); // redeclared impl<'a> Parse<'a> for PositivePlaneAngleMeasure<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(PlaneAngleMeasure::parse, |r| Self(r, std::marker::PhantomData))(s) + map(PlaneAngleMeasure::parse, |r| { + Self(r, std::marker::PhantomData) + })(s) } } impl<'a> HasId for PositivePlaneAngleMeasure<'a> { @@ -23970,7 +27900,6 @@ impl<'a> HasId for PositivePlaneAngleMeasure<'a> { } } - #[derive(Debug)] pub struct PositiveRatioMeasure<'a>(pub RatioMeasure<'a>, std::marker::PhantomData<&'a ()>); // redeclared impl<'a> Parse<'a> for PositiveRatioMeasure<'a> { @@ -23985,8 +27914,9 @@ impl<'a> HasId for PositiveRatioMeasure<'a> { } #[derive(Debug)] -pub struct PowerExpression_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct PowerExpression_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type PowerExpression<'a> = Id>; @@ -24002,10 +27932,15 @@ impl<'a> ParseFromChunks<'a> for PowerExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("POWER_EXPRESSION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PowerExpression_<'a> { @@ -24014,7 +27949,8 @@ impl<'a> HasId for PowerExpression_<'a> { } } #[derive(Debug)] -pub struct PreDefinedColour_<'a> { // entity +pub struct PreDefinedColour_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -24032,9 +27968,13 @@ impl<'a> ParseFromChunks<'a> for PreDefinedColour_<'a> { let mut i = 0; let (s, _) = tag("PRE_DEFINED_COLOUR(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PreDefinedColour_<'a> { @@ -24043,7 +27983,8 @@ impl<'a> HasId for PreDefinedColour_<'a> { } } #[derive(Debug)] -pub struct PreDefinedCurveFont_<'a> { // entity +pub struct PreDefinedCurveFont_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -24061,9 +28002,13 @@ impl<'a> ParseFromChunks<'a> for PreDefinedCurveFont_<'a> { let mut i = 0; let (s, _) = tag("PRE_DEFINED_CURVE_FONT(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PreDefinedCurveFont_<'a> { @@ -24072,7 +28017,8 @@ impl<'a> HasId for PreDefinedCurveFont_<'a> { } } #[derive(Debug)] -pub struct PreDefinedDimensionSymbol_<'a> { // entity +pub struct PreDefinedDimensionSymbol_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -24090,9 +28036,13 @@ impl<'a> ParseFromChunks<'a> for PreDefinedDimensionSymbol_<'a> { let mut i = 0; let (s, _) = tag("PRE_DEFINED_DIMENSION_SYMBOL(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PreDefinedDimensionSymbol_<'a> { @@ -24101,7 +28051,8 @@ impl<'a> HasId for PreDefinedDimensionSymbol_<'a> { } } #[derive(Debug)] -pub struct PreDefinedGeometricalToleranceSymbol_<'a> { // entity +pub struct PreDefinedGeometricalToleranceSymbol_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -24119,9 +28070,13 @@ impl<'a> ParseFromChunks<'a> for PreDefinedGeometricalToleranceSymbol_<'a> { let mut i = 0; let (s, _) = tag("PRE_DEFINED_GEOMETRICAL_TOLERANCE_SYMBOL(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PreDefinedGeometricalToleranceSymbol_<'a> { @@ -24130,7 +28085,8 @@ impl<'a> HasId for PreDefinedGeometricalToleranceSymbol_<'a> { } } #[derive(Debug)] -pub struct PreDefinedItem_<'a> { // entity +pub struct PreDefinedItem_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -24148,9 +28104,13 @@ impl<'a> ParseFromChunks<'a> for PreDefinedItem_<'a> { let mut i = 0; let (s, _) = tag("PRE_DEFINED_ITEM(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PreDefinedItem_<'a> { @@ -24159,7 +28119,8 @@ impl<'a> HasId for PreDefinedItem_<'a> { } } #[derive(Debug)] -pub struct PreDefinedMarker_<'a> { // entity +pub struct PreDefinedMarker_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -24177,9 +28138,13 @@ impl<'a> ParseFromChunks<'a> for PreDefinedMarker_<'a> { let mut i = 0; let (s, _) = tag("PRE_DEFINED_MARKER(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PreDefinedMarker_<'a> { @@ -24189,7 +28154,8 @@ impl<'a> HasId for PreDefinedMarker_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct PreDefinedPointMarkerSymbol_<'a> { // entity +pub struct PreDefinedPointMarkerSymbol_<'a> { + // entity pub pre_defined_item__name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -24208,9 +28174,13 @@ impl<'a> ParseFromChunks<'a> for PreDefinedPointMarkerSymbol_<'a> { let (s, _) = tag("PRE_DEFINED_POINT_MARKER_SYMBOL(")(strs[0])?; #[allow(non_snake_case)] let (s, pre_defined_item__name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - pre_defined_item__name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + pre_defined_item__name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PreDefinedPointMarkerSymbol_<'a> { @@ -24219,7 +28189,8 @@ impl<'a> HasId for PreDefinedPointMarkerSymbol_<'a> { } } #[derive(Debug)] -pub struct PreDefinedPresentationStyle_<'a> { // entity +pub struct PreDefinedPresentationStyle_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -24237,9 +28208,13 @@ impl<'a> ParseFromChunks<'a> for PreDefinedPresentationStyle_<'a> { let mut i = 0; let (s, _) = tag("PRE_DEFINED_PRESENTATION_STYLE(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PreDefinedPresentationStyle_<'a> { @@ -24248,7 +28223,8 @@ impl<'a> HasId for PreDefinedPresentationStyle_<'a> { } } #[derive(Debug)] -pub struct PreDefinedSurfaceConditionSymbol_<'a> { // entity +pub struct PreDefinedSurfaceConditionSymbol_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -24266,9 +28242,13 @@ impl<'a> ParseFromChunks<'a> for PreDefinedSurfaceConditionSymbol_<'a> { let mut i = 0; let (s, _) = tag("PRE_DEFINED_SURFACE_CONDITION_SYMBOL(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PreDefinedSurfaceConditionSymbol_<'a> { @@ -24277,7 +28257,8 @@ impl<'a> HasId for PreDefinedSurfaceConditionSymbol_<'a> { } } #[derive(Debug)] -pub struct PreDefinedSymbol_<'a> { // entity +pub struct PreDefinedSymbol_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -24295,9 +28276,13 @@ impl<'a> ParseFromChunks<'a> for PreDefinedSymbol_<'a> { let mut i = 0; let (s, _) = tag("PRE_DEFINED_SYMBOL(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PreDefinedSymbol_<'a> { @@ -24306,7 +28291,8 @@ impl<'a> HasId for PreDefinedSymbol_<'a> { } } #[derive(Debug)] -pub struct PreDefinedTerminatorSymbol_<'a> { // entity +pub struct PreDefinedTerminatorSymbol_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -24324,9 +28310,13 @@ impl<'a> ParseFromChunks<'a> for PreDefinedTerminatorSymbol_<'a> { let mut i = 0; let (s, _) = tag("PRE_DEFINED_TERMINATOR_SYMBOL(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PreDefinedTerminatorSymbol_<'a> { @@ -24335,7 +28325,8 @@ impl<'a> HasId for PreDefinedTerminatorSymbol_<'a> { } } #[derive(Debug)] -pub struct PreDefinedTextFont_<'a> { // entity +pub struct PreDefinedTextFont_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -24353,9 +28344,13 @@ impl<'a> ParseFromChunks<'a> for PreDefinedTextFont_<'a> { let mut i = 0; let (s, _) = tag("PRE_DEFINED_TEXT_FONT(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PreDefinedTextFont_<'a> { @@ -24364,7 +28359,8 @@ impl<'a> HasId for PreDefinedTextFont_<'a> { } } #[derive(Debug)] -pub struct PrecisionQualifier_<'a> { // entity +pub struct PrecisionQualifier_<'a> { + // entity pub precision_value: i64, _marker: std::marker::PhantomData<&'a ()>, } @@ -24382,9 +28378,13 @@ impl<'a> ParseFromChunks<'a> for PrecisionQualifier_<'a> { let mut i = 0; let (s, _) = tag("PRECISION_QUALIFIER(")(strs[0])?; let (s, precision_value) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - precision_value, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + precision_value, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PrecisionQualifier_<'a> { @@ -24393,7 +28393,8 @@ impl<'a> HasId for PrecisionQualifier_<'a> { } } #[derive(Debug)] -pub enum PreferredSurfaceCurveRepresentation<'a> { // enum +pub enum PreferredSurfaceCurveRepresentation<'a> { + // enum Curve3d, PcurveS1, PcurveS2, @@ -24413,7 +28414,8 @@ impl<'a> Parse<'a> for PreferredSurfaceCurveRepresentation<'a> { } } impl<'a> HasId for PreferredSurfaceCurveRepresentation<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] @@ -24424,11 +28426,13 @@ impl<'a> Parse<'a> for PresentableText<'a> { } } impl<'a> HasId for PresentableText<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct PresentationArea_<'a> { // entity +pub struct PresentationArea_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -24449,12 +28453,17 @@ impl<'a> ParseFromChunks<'a> for PresentationArea_<'a> { let (s, _) = tag("PRESENTATION_AREA(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PresentationArea_<'a> { @@ -24465,7 +28474,8 @@ impl<'a> HasId for PresentationArea_<'a> { } } #[derive(Debug)] -pub struct PresentationLayerAssignment_<'a> { // entity +pub struct PresentationLayerAssignment_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub assigned_items: Vec>, @@ -24487,11 +28497,15 @@ impl<'a> ParseFromChunks<'a> for PresentationLayerAssignment_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, assigned_items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - assigned_items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + assigned_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PresentationLayerAssignment_<'a> { @@ -24502,7 +28516,8 @@ impl<'a> HasId for PresentationLayerAssignment_<'a> { } } #[derive(Debug)] -pub struct PresentationRepresentation_<'a> { // entity +pub struct PresentationRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -24523,12 +28538,17 @@ impl<'a> ParseFromChunks<'a> for PresentationRepresentation_<'a> { let (s, _) = tag("PRESENTATION_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PresentationRepresentation_<'a> { @@ -24543,7 +28563,8 @@ pub struct PresentationRepresentationSelect_<'a>(std::marker::PhantomData<&'a () pub type PresentationRepresentationSelect<'a> = Id>; #[derive(Debug)] -pub struct PresentationSet_<'a> { // entity +pub struct PresentationSet_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type PresentationSet<'a> = Id>; @@ -24558,16 +28579,20 @@ impl<'a> FromEntity<'a> for PresentationSet_<'a> { impl<'a> ParseFromChunks<'a> for PresentationSet_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("PRESENTATION_SET(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PresentationSet_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct PresentationSize_<'a> { // entity +pub struct PresentationSize_<'a> { + // entity pub unit: PresentationSizeAssignmentSelect<'a>, pub size: PlanarBox<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -24585,12 +28610,17 @@ impl<'a> ParseFromChunks<'a> for PresentationSize_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("PRESENTATION_SIZE(")(strs[0])?; - let (s, unit) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, unit) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, size) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - unit, - size, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + unit, + size, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PresentationSize_<'a> { @@ -24604,7 +28634,8 @@ pub struct PresentationSizeAssignmentSelect_<'a>(std::marker::PhantomData<&'a () pub type PresentationSizeAssignmentSelect<'a> = Id>; #[derive(Debug)] -pub struct PresentationStyleAssignment_<'a> { // entity +pub struct PresentationStyleAssignment_<'a> { + // entity pub styles: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -24621,10 +28652,15 @@ impl<'a> ParseFromChunks<'a> for PresentationStyleAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("PRESENTATION_STYLE_ASSIGNMENT(")(strs[0])?; - let (s, styles) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - styles, - _marker: std::marker::PhantomData})) + let (s, styles) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + styles, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PresentationStyleAssignment_<'a> { @@ -24633,7 +28669,8 @@ impl<'a> HasId for PresentationStyleAssignment_<'a> { } } #[derive(Debug)] -pub struct PresentationStyleByContext_<'a> { // entity +pub struct PresentationStyleByContext_<'a> { + // entity pub styles: Vec>, pub style_context: StyleContextSelect<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -24651,12 +28688,18 @@ impl<'a> ParseFromChunks<'a> for PresentationStyleByContext_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("PRESENTATION_STYLE_BY_CONTEXT(")(strs[0])?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, style_context) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - styles, - style_context, - _marker: std::marker::PhantomData})) + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, style_context) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + styles, + style_context, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PresentationStyleByContext_<'a> { @@ -24666,7 +28709,8 @@ impl<'a> HasId for PresentationStyleByContext_<'a> { } } #[derive(Debug)] -pub enum PresentationStyleSelect<'a> { // select +pub enum PresentationStyleSelect<'a> { + // select PreDefinedPresentationStyle(PreDefinedPresentationStyle<'a>), PointStyle(PointStyle<'a>), CurveStyle(CurveStyle<'a>), @@ -24677,21 +28721,42 @@ pub enum PresentationStyleSelect<'a> { // select ApproximationTolerance(ApproximationTolerance<'a>), ExternallyDefinedStyle(ExternallyDefinedStyle<'a>), NullStyle(NullStyle<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for PresentationStyleSelect<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(>::parse, PresentationStyleSelect::PreDefinedPresentationStyle), + map( + >::parse, + PresentationStyleSelect::PreDefinedPresentationStyle, + ), map(>::parse, PresentationStyleSelect::PointStyle), map(>::parse, PresentationStyleSelect::CurveStyle), - map(>::parse, PresentationStyleSelect::SurfaceStyleUsage), - map(>::parse, PresentationStyleSelect::SymbolStyle), - map(>::parse, PresentationStyleSelect::FillAreaStyle), + map( + >::parse, + PresentationStyleSelect::SurfaceStyleUsage, + ), + map( + >::parse, + PresentationStyleSelect::SymbolStyle, + ), + map( + >::parse, + PresentationStyleSelect::FillAreaStyle, + ), map(>::parse, PresentationStyleSelect::TextStyle), - map(>::parse, PresentationStyleSelect::ApproximationTolerance), - map(>::parse, PresentationStyleSelect::ExternallyDefinedStyle), - map(delimited(tag("NULL_STYLE("), >::parse, char(')')), PresentationStyleSelect::NullStyle), + map( + >::parse, + PresentationStyleSelect::ApproximationTolerance, + ), + map( + >::parse, + PresentationStyleSelect::ExternallyDefinedStyle, + ), + map( + delimited(tag("NULL_STYLE("), >::parse, char(')')), + PresentationStyleSelect::NullStyle, + ), ))(s) } } @@ -24713,7 +28778,8 @@ impl<'a> HasId for PresentationStyleSelect<'a> { } } #[derive(Debug)] -pub struct PresentationView_<'a> { // entity +pub struct PresentationView_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -24734,12 +28800,17 @@ impl<'a> ParseFromChunks<'a> for PresentationView_<'a> { let (s, _) = tag("PRESENTATION_VIEW(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PresentationView_<'a> { @@ -24750,7 +28821,8 @@ impl<'a> HasId for PresentationView_<'a> { } } #[derive(Debug)] -pub struct PresentedItem_<'a> { // entity +pub struct PresentedItem_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type PresentedItem<'a> = Id>; @@ -24765,16 +28837,20 @@ impl<'a> FromEntity<'a> for PresentedItem_<'a> { impl<'a> ParseFromChunks<'a> for PresentedItem_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("PRESENTED_ITEM(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PresentedItem_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct PresentedItemRepresentation_<'a> { // entity +pub struct PresentedItemRepresentation_<'a> { + // entity pub presentation: PresentationRepresentationSelect<'a>, pub item: PresentedItem<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -24792,12 +28868,17 @@ impl<'a> ParseFromChunks<'a> for PresentedItemRepresentation_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("PRESENTED_ITEM_REPRESENTATION(")(strs[0])?; - let (s, presentation) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, presentation) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - presentation, - item, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + presentation, + item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PresentedItemRepresentation_<'a> { @@ -24811,7 +28892,8 @@ pub struct PresentedItemSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambigu pub type PresentedItemSelect<'a> = Id>; #[derive(Debug)] -pub struct PrismaticPair_<'a> { // entity +pub struct PrismaticPair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -24834,16 +28916,22 @@ impl<'a> ParseFromChunks<'a> for PrismaticPair_<'a> { let (s, _) = tag("PRISMATIC_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PrismaticPair_<'a> { @@ -24856,7 +28944,8 @@ impl<'a> HasId for PrismaticPair_<'a> { } } #[derive(Debug)] -pub struct PrismaticPairRange_<'a> { // entity +pub struct PrismaticPairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub lower_limit_actual_translation: TranslationalRangeMeasure<'a>, pub upper_limit_actual_translation: TranslationalRangeMeasure<'a>, @@ -24876,13 +28965,19 @@ impl<'a> ParseFromChunks<'a> for PrismaticPairRange_<'a> { let mut i = 0; let (s, _) = tag("PRISMATIC_PAIR_RANGE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_actual_translation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_actual_translation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - lower_limit_actual_translation, - upper_limit_actual_translation, - _marker: std::marker::PhantomData})) + let (s, lower_limit_actual_translation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_actual_translation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + lower_limit_actual_translation, + upper_limit_actual_translation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PrismaticPairRange_<'a> { @@ -24893,7 +28988,8 @@ impl<'a> HasId for PrismaticPairRange_<'a> { } } #[derive(Debug)] -pub struct PrismaticPairValue_<'a> { // entity +pub struct PrismaticPairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_translation: LengthMeasure<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -24912,11 +29008,16 @@ impl<'a> ParseFromChunks<'a> for PrismaticPairValue_<'a> { let mut i = 0; let (s, _) = tag("PRISMATIC_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_translation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_translation, - _marker: std::marker::PhantomData})) + let (s, actual_translation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_translation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PrismaticPairValue_<'a> { @@ -24926,7 +29027,8 @@ impl<'a> HasId for PrismaticPairValue_<'a> { } } #[derive(Debug)] -pub struct ProcessOperation_<'a> { // entity +pub struct ProcessOperation_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub consequence: Text<'a>, @@ -24950,12 +29052,16 @@ impl<'a> ParseFromChunks<'a> for ProcessOperation_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, consequence) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, purpose) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - consequence, - purpose, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + consequence, + purpose, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProcessOperation_<'a> { @@ -24967,7 +29073,8 @@ impl<'a> HasId for ProcessOperation_<'a> { } } #[derive(Debug)] -pub struct ProcessPlan_<'a> { // entity +pub struct ProcessPlan_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub chosen_method: ActionMethod<'a>, @@ -24989,11 +29096,15 @@ impl<'a> ParseFromChunks<'a> for ProcessPlan_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, chosen_method) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - chosen_method, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + chosen_method, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProcessPlan_<'a> { @@ -25004,7 +29115,8 @@ impl<'a> HasId for ProcessPlan_<'a> { } } #[derive(Debug)] -pub struct ProcessProductAssociation_<'a> { // entity +pub struct ProcessProductAssociation_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub defined_product: CharacterizedProductDefinition<'a>, @@ -25026,14 +29138,20 @@ impl<'a> ParseFromChunks<'a> for ProcessProductAssociation_<'a> { let (s, _) = tag("PROCESS_PRODUCT_ASSOCIATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, defined_product) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, process) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - defined_product, - process, - _marker: std::marker::PhantomData})) + let (s, defined_product) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, process) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + defined_product, + process, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProcessProductAssociation_<'a> { @@ -25045,7 +29163,8 @@ impl<'a> HasId for ProcessProductAssociation_<'a> { } } #[derive(Debug)] -pub struct ProcessPropertyAssociation_<'a> { // entity +pub struct ProcessPropertyAssociation_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub process: PropertyProcess<'a>, @@ -25068,13 +29187,18 @@ impl<'a> ParseFromChunks<'a> for ProcessPropertyAssociation_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, process) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, property_or_shape) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - process, - property_or_shape, - _marker: std::marker::PhantomData})) + let (s, property_or_shape) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + process, + property_or_shape, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProcessPropertyAssociation_<'a> { @@ -25086,7 +29210,8 @@ impl<'a> HasId for ProcessPropertyAssociation_<'a> { } } #[derive(Debug)] -pub struct Product_<'a> { // entity +pub struct Product_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -25109,13 +29234,18 @@ impl<'a> ParseFromChunks<'a> for Product_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, frame_of_reference) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - frame_of_reference, - _marker: std::marker::PhantomData})) + let (s, frame_of_reference) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + name, + description, + frame_of_reference, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Product_<'a> { @@ -25127,7 +29257,8 @@ impl<'a> HasId for Product_<'a> { } } #[derive(Debug)] -pub struct ProductCategory_<'a> { // entity +pub struct ProductCategory_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -25147,10 +29278,14 @@ impl<'a> ParseFromChunks<'a> for ProductCategory_<'a> { let (s, _) = tag("PRODUCT_CATEGORY(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductCategory_<'a> { @@ -25160,7 +29295,8 @@ impl<'a> HasId for ProductCategory_<'a> { } } #[derive(Debug)] -pub struct ProductCategoryRelationship_<'a> { // entity +pub struct ProductCategoryRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub category: ProductCategory<'a>, @@ -25184,12 +29320,16 @@ impl<'a> ParseFromChunks<'a> for ProductCategoryRelationship_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, category) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, sub_category) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - category, - sub_category, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + category, + sub_category, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductCategoryRelationship_<'a> { @@ -25202,7 +29342,8 @@ impl<'a> HasId for ProductCategoryRelationship_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct ProductClass_<'a> { // entity +pub struct ProductClass_<'a> { + // entity pub id: Identifier<'a>, pub product_concept__name: Label<'a>, pub product_concept__description: Option>, @@ -25228,20 +29369,28 @@ impl<'a> ParseFromChunks<'a> for ProductClass_<'a> { #[allow(non_snake_case)] let (s, product_concept__name) = param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, product_concept__description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, market_context) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, product_concept__description) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, market_context) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, characterized_object__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, characterized_object__name) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, characterized_object__description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - product_concept__name, - product_concept__description, - market_context, - characterized_object__name, - characterized_object__description, - _marker: std::marker::PhantomData})) + let (s, characterized_object__description) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + product_concept__name, + product_concept__description, + market_context, + characterized_object__name, + characterized_object__description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductClass_<'a> { @@ -25255,7 +29404,8 @@ impl<'a> HasId for ProductClass_<'a> { } } #[derive(Debug)] -pub struct ProductConcept_<'a> { // entity +pub struct ProductConcept_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -25278,13 +29428,18 @@ impl<'a> ParseFromChunks<'a> for ProductConcept_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, market_context) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - market_context, - _marker: std::marker::PhantomData})) + let (s, market_context) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + name, + description, + market_context, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductConcept_<'a> { @@ -25296,7 +29451,8 @@ impl<'a> HasId for ProductConcept_<'a> { } } #[derive(Debug)] -pub struct ProductConceptContext_<'a> { // entity +pub struct ProductConceptContext_<'a> { + // entity pub name: Label<'a>, pub frame_of_reference: ApplicationContext<'a>, pub market_segment_type: Label<'a>, @@ -25316,13 +29472,18 @@ impl<'a> ParseFromChunks<'a> for ProductConceptContext_<'a> { let mut i = 0; let (s, _) = tag("PRODUCT_CONCEPT_CONTEXT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, frame_of_reference) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, frame_of_reference) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, market_segment_type) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - frame_of_reference, - market_segment_type, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + frame_of_reference, + market_segment_type, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductConceptContext_<'a> { @@ -25333,7 +29494,8 @@ impl<'a> HasId for ProductConceptContext_<'a> { } } #[derive(Debug)] -pub struct ProductConceptFeature_<'a> { // entity +pub struct ProductConceptFeature_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -25355,11 +29517,15 @@ impl<'a> ParseFromChunks<'a> for ProductConceptFeature_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductConceptFeature_<'a> { @@ -25370,7 +29536,8 @@ impl<'a> HasId for ProductConceptFeature_<'a> { } } #[derive(Debug)] -pub struct ProductConceptFeatureAssociation_<'a> { // entity +pub struct ProductConceptFeatureAssociation_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub concept: ProductConcept<'a>, @@ -25394,12 +29561,16 @@ impl<'a> ParseFromChunks<'a> for ProductConceptFeatureAssociation_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, concept) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, feature) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - concept, - feature, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + concept, + feature, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductConceptFeatureAssociation_<'a> { @@ -25411,7 +29582,8 @@ impl<'a> HasId for ProductConceptFeatureAssociation_<'a> { } } #[derive(Debug)] -pub struct ProductConceptFeatureCategory_<'a> { // entity +pub struct ProductConceptFeatureCategory_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -25431,10 +29603,14 @@ impl<'a> ParseFromChunks<'a> for ProductConceptFeatureCategory_<'a> { let (s, _) = tag("PRODUCT_CONCEPT_FEATURE_CATEGORY(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductConceptFeatureCategory_<'a> { @@ -25444,7 +29620,8 @@ impl<'a> HasId for ProductConceptFeatureCategory_<'a> { } } #[derive(Debug)] -pub struct ProductConceptFeatureCategoryUsage_<'a> { // entity +pub struct ProductConceptFeatureCategoryUsage_<'a> { + // entity pub assigned_group: Group<'a>, pub items: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -25464,10 +29641,14 @@ impl<'a> ParseFromChunks<'a> for ProductConceptFeatureCategoryUsage_<'a> { let (s, _) = tag("PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE(")(strs[0])?; let (s, assigned_group) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_group, - items, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_group, + items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductConceptFeatureCategoryUsage_<'a> { @@ -25477,7 +29658,8 @@ impl<'a> HasId for ProductConceptFeatureCategoryUsage_<'a> { } } #[derive(Debug)] -pub struct ProductConceptRelationship_<'a> { // entity +pub struct ProductConceptRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_product_concept: ProductConcept<'a>, @@ -25499,14 +29681,20 @@ impl<'a> ParseFromChunks<'a> for ProductConceptRelationship_<'a> { let (s, _) = tag("PRODUCT_CONCEPT_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_product_concept) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product_concept) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_product_concept, - related_product_concept, - _marker: std::marker::PhantomData})) + let (s, relating_product_concept) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_product_concept) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_product_concept, + related_product_concept, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductConceptRelationship_<'a> { @@ -25518,7 +29706,8 @@ impl<'a> HasId for ProductConceptRelationship_<'a> { } } #[derive(Debug)] -pub struct ProductContext_<'a> { // entity +pub struct ProductContext_<'a> { + // entity pub name: Label<'a>, pub frame_of_reference: ApplicationContext<'a>, pub discipline_type: Label<'a>, @@ -25538,13 +29727,18 @@ impl<'a> ParseFromChunks<'a> for ProductContext_<'a> { let mut i = 0; let (s, _) = tag("PRODUCT_CONTEXT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, frame_of_reference) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, frame_of_reference) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, discipline_type) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - frame_of_reference, - discipline_type, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + frame_of_reference, + discipline_type, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductContext_<'a> { @@ -25555,7 +29749,8 @@ impl<'a> HasId for ProductContext_<'a> { } } #[derive(Debug)] -pub struct ProductDefinition_<'a> { // entity +pub struct ProductDefinition_<'a> { + // entity pub id: Identifier<'a>, pub description: Option>, pub formation: ProductDefinitionFormation<'a>, @@ -25577,14 +29772,20 @@ impl<'a> ParseFromChunks<'a> for ProductDefinition_<'a> { let (s, _) = tag("PRODUCT_DEFINITION(")(strs[0])?; let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, formation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, frame_of_reference) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - description, - formation, - frame_of_reference, - _marker: std::marker::PhantomData})) + let (s, formation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, frame_of_reference) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + description, + formation, + frame_of_reference, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinition_<'a> { @@ -25596,7 +29797,8 @@ impl<'a> HasId for ProductDefinition_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionContext_<'a> { // entity +pub struct ProductDefinitionContext_<'a> { + // entity pub name: Label<'a>, pub frame_of_reference: ApplicationContext<'a>, pub life_cycle_stage: Label<'a>, @@ -25616,13 +29818,18 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionContext_<'a> { let mut i = 0; let (s, _) = tag("PRODUCT_DEFINITION_CONTEXT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, frame_of_reference) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, frame_of_reference) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, life_cycle_stage) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - frame_of_reference, - life_cycle_stage, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + frame_of_reference, + life_cycle_stage, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionContext_<'a> { @@ -25633,7 +29840,8 @@ impl<'a> HasId for ProductDefinitionContext_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionContextAssociation_<'a> { // entity +pub struct ProductDefinitionContextAssociation_<'a> { + // entity pub definition: ProductDefinition<'a>, pub frame_of_reference: ProductDefinitionContext<'a>, pub role: ProductDefinitionContextRole<'a>, @@ -25653,13 +29861,19 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionContextAssociation_<'a> { let mut i = 0; let (s, _) = tag("PRODUCT_DEFINITION_CONTEXT_ASSOCIATION(")(strs[0])?; let (s, definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, frame_of_reference) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - definition, - frame_of_reference, - role, - _marker: std::marker::PhantomData})) + let (s, frame_of_reference) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, role) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + definition, + frame_of_reference, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionContextAssociation_<'a> { @@ -25670,7 +29884,8 @@ impl<'a> HasId for ProductDefinitionContextAssociation_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionContextRole_<'a> { // entity +pub struct ProductDefinitionContextRole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -25690,10 +29905,14 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionContextRole_<'a> { let (s, _) = tag("PRODUCT_DEFINITION_CONTEXT_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionContextRole_<'a> { @@ -25703,7 +29922,8 @@ impl<'a> HasId for ProductDefinitionContextRole_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionEffectivity_<'a> { // entity +pub struct ProductDefinitionEffectivity_<'a> { + // entity pub id: Identifier<'a>, pub usage: ProductDefinitionRelationship<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -25722,11 +29942,16 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionEffectivity_<'a> { let mut i = 0; let (s, _) = tag("PRODUCT_DEFINITION_EFFECTIVITY(")(strs[0])?; let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, usage) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - usage, - _marker: std::marker::PhantomData})) + let (s, usage) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + usage, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionEffectivity_<'a> { @@ -25736,7 +29961,8 @@ impl<'a> HasId for ProductDefinitionEffectivity_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionFormation_<'a> { // entity +pub struct ProductDefinitionFormation_<'a> { + // entity pub id: Identifier<'a>, pub description: Option>, pub of_product: Product<'a>, @@ -25758,11 +29984,15 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionFormation_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, of_product) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - description, - of_product, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + description, + of_product, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionFormation_<'a> { @@ -25773,7 +30003,8 @@ impl<'a> HasId for ProductDefinitionFormation_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionFormationRelationship_<'a> { // entity +pub struct ProductDefinitionFormationRelationship_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -25781,7 +30012,8 @@ pub struct ProductDefinitionFormationRelationship_<'a> { // entity pub related_product_definition_formation: ProductDefinitionFormation<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type ProductDefinitionFormationRelationship<'a> = Id>; +pub type ProductDefinitionFormationRelationship<'a> = + Id>; impl<'a> FromEntity<'a> for ProductDefinitionFormationRelationship_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -25797,15 +30029,21 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionFormationRelationship_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_product_definition_formation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product_definition_formation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - relating_product_definition_formation, - related_product_definition_formation, - _marker: std::marker::PhantomData})) + let (s, relating_product_definition_formation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_product_definition_formation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + name, + description, + relating_product_definition_formation, + related_product_definition_formation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionFormationRelationship_<'a> { @@ -25818,14 +30056,16 @@ impl<'a> HasId for ProductDefinitionFormationRelationship_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionFormationWithSpecifiedSource_<'a> { // entity +pub struct ProductDefinitionFormationWithSpecifiedSource_<'a> { + // entity pub id: Identifier<'a>, pub description: Option>, pub of_product: Product<'a>, pub make_or_buy: Source<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type ProductDefinitionFormationWithSpecifiedSource<'a> = Id>; +pub type ProductDefinitionFormationWithSpecifiedSource<'a> = + Id>; impl<'a> FromEntity<'a> for ProductDefinitionFormationWithSpecifiedSource_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -25842,12 +30082,16 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionFormationWithSpecifiedSource_< let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, of_product) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, make_or_buy) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - description, - of_product, - make_or_buy, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + description, + of_product, + make_or_buy, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionFormationWithSpecifiedSource_<'a> { @@ -25859,14 +30103,16 @@ impl<'a> HasId for ProductDefinitionFormationWithSpecifiedSource_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionOccurrenceRelationship_<'a> { // entity +pub struct ProductDefinitionOccurrenceRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub occurrence: ProductDefinition<'a>, pub occurrence_usage: AssemblyComponentUsage<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type ProductDefinitionOccurrenceRelationship<'a> = Id>; +pub type ProductDefinitionOccurrenceRelationship<'a> = + Id>; impl<'a> FromEntity<'a> for ProductDefinitionOccurrenceRelationship_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -25882,13 +30128,18 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionOccurrenceRelationship_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, occurrence) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, occurrence_usage) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - occurrence, - occurrence_usage, - _marker: std::marker::PhantomData})) + let (s, occurrence_usage) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + occurrence, + occurrence_usage, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionOccurrenceRelationship_<'a> { @@ -25900,7 +30151,8 @@ impl<'a> HasId for ProductDefinitionOccurrenceRelationship_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionProcess_<'a> { // entity +pub struct ProductDefinitionProcess_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub chosen_method: ActionMethod<'a>, @@ -25924,12 +30176,16 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionProcess_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, chosen_method) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, identification) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - chosen_method, - identification, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + chosen_method, + identification, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionProcess_<'a> { @@ -25941,7 +30197,8 @@ impl<'a> HasId for ProductDefinitionProcess_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionRelationship_<'a> { // entity +pub struct ProductDefinitionRelationship_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -25965,15 +30222,21 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionRelationship_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product_definition) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - relating_product_definition, - related_product_definition, - _marker: std::marker::PhantomData})) + let (s, relating_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_product_definition) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + name, + description, + relating_product_definition, + related_product_definition, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionRelationship_<'a> { @@ -25987,7 +30250,8 @@ impl<'a> HasId for ProductDefinitionRelationship_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct ProductDefinitionResource_<'a> { // entity +pub struct ProductDefinitionResource_<'a> { + // entity pub name: Label<'a>, pub action_resource__description: Option>, pub usage: Vec>, @@ -26013,24 +30277,32 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionResource_<'a> { let (s, _) = tag("PRODUCT_DEFINITION_RESOURCE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, action_resource__description) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, action_resource__description) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, usage) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, kind) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, product_definition__description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, formation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, frame_of_reference) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - action_resource__description, - usage, - kind, - id, - product_definition__description, - formation, - frame_of_reference, - _marker: std::marker::PhantomData})) + let (s, product_definition__description) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, formation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, frame_of_reference) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + action_resource__description, + usage, + kind, + id, + product_definition__description, + formation, + frame_of_reference, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionResource_<'a> { @@ -26046,7 +30318,8 @@ impl<'a> HasId for ProductDefinitionResource_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionShape_<'a> { // entity +pub struct ProductDefinitionShape_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub definition: CharacterizedDefinition<'a>, @@ -26067,12 +30340,17 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionShape_<'a> { let (s, _) = tag("PRODUCT_DEFINITION_SHAPE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, definition) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - definition, - _marker: std::marker::PhantomData})) + let (s, definition) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + definition, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionShape_<'a> { @@ -26083,7 +30361,8 @@ impl<'a> HasId for ProductDefinitionShape_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionSubstitute_<'a> { // entity +pub struct ProductDefinitionSubstitute_<'a> { + // entity pub description: Option>, pub context_relationship: ProductDefinitionRelationship<'a>, pub substitute_definition: ProductDefinition<'a>, @@ -26103,13 +30382,19 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionSubstitute_<'a> { let mut i = 0; let (s, _) = tag("PRODUCT_DEFINITION_SUBSTITUTE(")(strs[0])?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_relationship) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, substitute_definition) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - description, - context_relationship, - substitute_definition, - _marker: std::marker::PhantomData})) + let (s, context_relationship) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, substitute_definition) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + description, + context_relationship, + substitute_definition, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionSubstitute_<'a> { @@ -26120,7 +30405,8 @@ impl<'a> HasId for ProductDefinitionSubstitute_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionUsage_<'a> { // entity +pub struct ProductDefinitionUsage_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -26144,15 +30430,21 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionUsage_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product_definition) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - relating_product_definition, - related_product_definition, - _marker: std::marker::PhantomData})) + let (s, relating_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_product_definition) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + name, + description, + relating_product_definition, + related_product_definition, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionUsage_<'a> { @@ -26165,7 +30457,8 @@ impl<'a> HasId for ProductDefinitionUsage_<'a> { } } #[derive(Debug)] -pub struct ProductDefinitionWithAssociatedDocuments_<'a> { // entity +pub struct ProductDefinitionWithAssociatedDocuments_<'a> { + // entity pub id: Identifier<'a>, pub description: Option>, pub formation: ProductDefinitionFormation<'a>, @@ -26173,7 +30466,8 @@ pub struct ProductDefinitionWithAssociatedDocuments_<'a> { // entity pub documentation_ids: Vec>, _marker: std::marker::PhantomData<&'a ()>, } -pub type ProductDefinitionWithAssociatedDocuments<'a> = Id>; +pub type ProductDefinitionWithAssociatedDocuments<'a> = + Id>; impl<'a> FromEntity<'a> for ProductDefinitionWithAssociatedDocuments_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -26188,16 +30482,22 @@ impl<'a> ParseFromChunks<'a> for ProductDefinitionWithAssociatedDocuments_<'a> { let (s, _) = tag("PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS(")(strs[0])?; let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, formation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, frame_of_reference) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, formation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, frame_of_reference) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, documentation_ids) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - description, - formation, - frame_of_reference, - documentation_ids, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + description, + formation, + frame_of_reference, + documentation_ids, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductDefinitionWithAssociatedDocuments_<'a> { @@ -26211,7 +30511,8 @@ impl<'a> HasId for ProductDefinitionWithAssociatedDocuments_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct ProductIdentification_<'a> { // entity +pub struct ProductIdentification_<'a> { + // entity pub id: Identifier<'a>, pub configuration_item__name: Label<'a>, pub configuration_item__description: Option>, @@ -26238,22 +30539,29 @@ impl<'a> ParseFromChunks<'a> for ProductIdentification_<'a> { #[allow(non_snake_case)] let (s, configuration_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, configuration_item__description) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, configuration_item__description) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item_concept) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, purpose) = param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, characterized_object__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, characterized_object__name) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, characterized_object__description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - configuration_item__name, - configuration_item__description, - item_concept, - purpose, - characterized_object__name, - characterized_object__description, - _marker: std::marker::PhantomData})) + let (s, characterized_object__description) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + configuration_item__name, + configuration_item__description, + item_concept, + purpose, + characterized_object__name, + characterized_object__description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductIdentification_<'a> { @@ -26272,7 +30580,8 @@ pub struct ProductOrFormationOrDefinition_<'a>(std::marker::PhantomData<&'a ()>) pub type ProductOrFormationOrDefinition<'a> = Id>; #[derive(Debug)] -pub enum ProductOrPresentationSpace<'a> { // enum +pub enum ProductOrPresentationSpace<'a> { + // enum ProductShapeSpace, PresentationAreaSpace, _Unused(std::marker::PhantomData<&'a ()>), @@ -26290,11 +30599,13 @@ impl<'a> Parse<'a> for ProductOrPresentationSpace<'a> { } } impl<'a> HasId for ProductOrPresentationSpace<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct ProductProcessPlan_<'a> { // entity +pub struct ProductProcessPlan_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub chosen_method: ActionMethod<'a>, @@ -26318,12 +30629,16 @@ impl<'a> ParseFromChunks<'a> for ProductProcessPlan_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, chosen_method) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, identification) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - chosen_method, - identification, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + chosen_method, + identification, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductProcessPlan_<'a> { @@ -26335,7 +30650,8 @@ impl<'a> HasId for ProductProcessPlan_<'a> { } } #[derive(Debug)] -pub struct ProductRelatedProductCategory_<'a> { // entity +pub struct ProductRelatedProductCategory_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub products: Vec>, @@ -26357,11 +30673,15 @@ impl<'a> ParseFromChunks<'a> for ProductRelatedProductCategory_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, products) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - products, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + products, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductRelatedProductCategory_<'a> { @@ -26373,7 +30693,8 @@ impl<'a> HasId for ProductRelatedProductCategory_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct ProductSpecification_<'a> { // entity +pub struct ProductSpecification_<'a> { + // entity pub configuration_item__id: Identifier<'a>, pub configuration_item__name: Label<'a>, pub configuration_item__description: Option>, @@ -26398,30 +30719,41 @@ impl<'a> ParseFromChunks<'a> for ProductSpecification_<'a> { let mut i = 0; let (s, _) = tag("PRODUCT_SPECIFICATION(")(strs[0])?; #[allow(non_snake_case)] - let (s, configuration_item__id) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, configuration_item__id) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] let (s, configuration_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, configuration_item__description) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, configuration_item__description) = + param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, configuration_item__item_concept) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, configuration_item__item_concept) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, configuration_item__purpose) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, configuration_item__purpose) = + param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, characterized_object__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, characterized_object__name) = + param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] - let (s, characterized_object__description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, item_concept_feature) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - configuration_item__id, - configuration_item__name, - configuration_item__description, - configuration_item__item_concept, - configuration_item__purpose, - characterized_object__name, - characterized_object__description, - item_concept_feature, - _marker: std::marker::PhantomData})) + let (s, characterized_object__description) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, item_concept_feature) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + configuration_item__id, + configuration_item__name, + configuration_item__description, + configuration_item__item_concept, + configuration_item__purpose, + characterized_object__name, + characterized_object__description, + item_concept_feature, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProductSpecification_<'a> { @@ -26437,7 +30769,8 @@ impl<'a> HasId for ProductSpecification_<'a> { } } #[derive(Debug)] -pub struct ProjectedZoneDefinition_<'a> { // entity +pub struct ProjectedZoneDefinition_<'a> { + // entity pub zone: ToleranceZone<'a>, pub boundaries: Vec>, pub projection_end: ShapeAspect<'a>, @@ -26460,13 +30793,18 @@ impl<'a> ParseFromChunks<'a> for ProjectedZoneDefinition_<'a> { let (s, zone) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, boundaries) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, projection_end) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, projected_length) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - zone, - boundaries, - projection_end, - projected_length, - _marker: std::marker::PhantomData})) + let (s, projected_length) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + zone, + boundaries, + projection_end, + projected_length, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProjectedZoneDefinition_<'a> { @@ -26478,7 +30816,8 @@ impl<'a> HasId for ProjectedZoneDefinition_<'a> { } } #[derive(Debug)] -pub struct ProjectionCurve_<'a> { // entity +pub struct ProjectionCurve_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -26498,13 +30837,18 @@ impl<'a> ParseFromChunks<'a> for ProjectionCurve_<'a> { let mut i = 0; let (s, _) = tag("PROJECTION_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + styles, + item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProjectionCurve_<'a> { @@ -26515,7 +30859,8 @@ impl<'a> HasId for ProjectionCurve_<'a> { } } #[derive(Debug)] -pub struct ProjectionDirectedCallout_<'a> { // entity +pub struct ProjectionDirectedCallout_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -26534,11 +30879,16 @@ impl<'a> ParseFromChunks<'a> for ProjectionDirectedCallout_<'a> { let mut i = 0; let (s, _) = tag("PROJECTION_DIRECTED_CALLOUT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ProjectionDirectedCallout_<'a> { @@ -26548,7 +30898,8 @@ impl<'a> HasId for ProjectionDirectedCallout_<'a> { } } #[derive(Debug)] -pub struct PromissoryUsageOccurrence_<'a> { // entity +pub struct PromissoryUsageOccurrence_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -26573,17 +30924,24 @@ impl<'a> ParseFromChunks<'a> for PromissoryUsageOccurrence_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, reference_designator) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - relating_product_definition, - related_product_definition, - reference_designator, - _marker: std::marker::PhantomData})) + let (s, relating_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, reference_designator) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + name, + description, + relating_product_definition, + related_product_definition, + reference_designator, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PromissoryUsageOccurrence_<'a> { @@ -26597,7 +30955,8 @@ impl<'a> HasId for PromissoryUsageOccurrence_<'a> { } } #[derive(Debug)] -pub struct PropertyDefinition_<'a> { // entity +pub struct PropertyDefinition_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub definition: CharacterizedDefinition<'a>, @@ -26618,12 +30977,17 @@ impl<'a> ParseFromChunks<'a> for PropertyDefinition_<'a> { let (s, _) = tag("PROPERTY_DEFINITION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, definition) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - definition, - _marker: std::marker::PhantomData})) + let (s, definition) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + definition, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PropertyDefinition_<'a> { @@ -26634,7 +30998,8 @@ impl<'a> HasId for PropertyDefinition_<'a> { } } #[derive(Debug)] -pub struct PropertyDefinitionRelationship_<'a> { // entity +pub struct PropertyDefinitionRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub relating_property_definition: PropertyDefinition<'a>, @@ -26656,14 +31021,20 @@ impl<'a> ParseFromChunks<'a> for PropertyDefinitionRelationship_<'a> { let (s, _) = tag("PROPERTY_DEFINITION_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, relating_property_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_property_definition) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_property_definition, - related_property_definition, - _marker: std::marker::PhantomData})) + let (s, relating_property_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_property_definition) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_property_definition, + related_property_definition, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PropertyDefinitionRelationship_<'a> { @@ -26675,7 +31046,8 @@ impl<'a> HasId for PropertyDefinitionRelationship_<'a> { } } #[derive(Debug)] -pub struct PropertyDefinitionRepresentation_<'a> { // entity +pub struct PropertyDefinitionRepresentation_<'a> { + // entity pub definition: RepresentedDefinition<'a>, pub used_representation: Representation<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -26693,12 +31065,18 @@ impl<'a> ParseFromChunks<'a> for PropertyDefinitionRepresentation_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("PROPERTY_DEFINITION_REPRESENTATION(")(strs[0])?; - let (s, definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, used_representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - definition, - used_representation, - _marker: std::marker::PhantomData})) + let (s, definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, used_representation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + definition, + used_representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PropertyDefinitionRepresentation_<'a> { @@ -26712,7 +31090,8 @@ pub struct PropertyOrShapeSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambi pub type PropertyOrShapeSelect<'a> = Id>; #[derive(Debug)] -pub struct PropertyProcess_<'a> { // entity +pub struct PropertyProcess_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub chosen_method: ActionMethod<'a>, @@ -26736,12 +31115,16 @@ impl<'a> ParseFromChunks<'a> for PropertyProcess_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, chosen_method) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, identification) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - chosen_method, - identification, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + chosen_method, + identification, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for PropertyProcess_<'a> { @@ -26753,7 +31136,8 @@ impl<'a> HasId for PropertyProcess_<'a> { } } #[derive(Debug)] -pub struct QualifiedRepresentationItem_<'a> { // entity +pub struct QualifiedRepresentationItem_<'a> { + // entity pub name: Label<'a>, pub qualifiers: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -26773,10 +31157,14 @@ impl<'a> ParseFromChunks<'a> for QualifiedRepresentationItem_<'a> { let (s, _) = tag("QUALIFIED_REPRESENTATION_ITEM(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, qualifiers) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - qualifiers, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + qualifiers, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for QualifiedRepresentationItem_<'a> { @@ -26786,7 +31174,8 @@ impl<'a> HasId for QualifiedRepresentationItem_<'a> { } } #[derive(Debug)] -pub struct QualitativeUncertainty_<'a> { // entity +pub struct QualitativeUncertainty_<'a> { + // entity pub measure_name: Label<'a>, pub description: Text<'a>, pub uncertainty_value: Text<'a>, @@ -26808,11 +31197,15 @@ impl<'a> ParseFromChunks<'a> for QualitativeUncertainty_<'a> { let (s, measure_name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, uncertainty_value) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - measure_name, - description, - uncertainty_value, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + measure_name, + description, + uncertainty_value, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for QualitativeUncertainty_<'a> { @@ -26823,7 +31216,8 @@ impl<'a> HasId for QualitativeUncertainty_<'a> { } } #[derive(Debug)] -pub struct QuantifiedAssemblyComponentUsage_<'a> { // entity +pub struct QuantifiedAssemblyComponentUsage_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -26849,19 +31243,26 @@ impl<'a> ParseFromChunks<'a> for QuantifiedAssemblyComponentUsage_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, reference_designator) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, relating_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, reference_designator) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, quantity) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - relating_product_definition, - related_product_definition, - reference_designator, - quantity, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + name, + description, + relating_product_definition, + related_product_definition, + reference_designator, + quantity, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for QuantifiedAssemblyComponentUsage_<'a> { @@ -26876,7 +31277,8 @@ impl<'a> HasId for QuantifiedAssemblyComponentUsage_<'a> { } } #[derive(Debug)] -pub struct QuasiUniformCurve_<'a> { // entity +pub struct QuasiUniformCurve_<'a> { + // entity pub name: Label<'a>, pub degree: i64, pub control_points_list: Vec>, @@ -26900,18 +31302,23 @@ impl<'a> ParseFromChunks<'a> for QuasiUniformCurve_<'a> { let (s, _) = tag("QUASI_UNIFORM_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, degree) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, control_points_list) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, control_points_list) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, curve_form) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, closed_curve) = param_from_chunks::(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - degree, - control_points_list, - curve_form, - closed_curve, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + degree, + control_points_list, + curve_form, + closed_curve, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for QuasiUniformCurve_<'a> { @@ -26925,7 +31332,8 @@ impl<'a> HasId for QuasiUniformCurve_<'a> { } } #[derive(Debug)] -pub struct QuasiUniformSurface_<'a> { // entity +pub struct QuasiUniformSurface_<'a> { + // entity pub name: Label<'a>, pub u_degree: i64, pub v_degree: i64, @@ -26952,21 +31360,27 @@ impl<'a> ParseFromChunks<'a> for QuasiUniformSurface_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, u_degree) = param_from_chunks::(false, s, &mut i, strs)?; let (s, v_degree) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, control_points_list) = param_from_chunks::>>>(false, s, &mut i, strs)?; - let (s, surface_form) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, control_points_list) = + param_from_chunks::>>>(false, s, &mut i, strs)?; + let (s, surface_form) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, u_closed) = param_from_chunks::(false, s, &mut i, strs)?; let (s, v_closed) = param_from_chunks::(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - u_degree, - v_degree, - control_points_list, - surface_form, - u_closed, - v_closed, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + u_degree, + v_degree, + control_points_list, + surface_form, + u_closed, + v_closed, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for QuasiUniformSurface_<'a> { @@ -26982,7 +31396,8 @@ impl<'a> HasId for QuasiUniformSurface_<'a> { } } #[derive(Debug)] -pub struct RackAndPinionPair_<'a> { // entity +pub struct RackAndPinionPair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -27006,18 +31421,24 @@ impl<'a> ParseFromChunks<'a> for RackAndPinionPair_<'a> { let (s, _) = tag("RACK_AND_PINION_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, pinion_radius) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - pinion_radius, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + pinion_radius, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RackAndPinionPair_<'a> { @@ -27031,7 +31452,8 @@ impl<'a> HasId for RackAndPinionPair_<'a> { } } #[derive(Debug)] -pub struct RackAndPinionPairRange_<'a> { // entity +pub struct RackAndPinionPairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub lower_limit_rack_displacement: TranslationalRangeMeasure<'a>, pub upper_limit_rack_displacement: TranslationalRangeMeasure<'a>, @@ -27051,13 +31473,19 @@ impl<'a> ParseFromChunks<'a> for RackAndPinionPairRange_<'a> { let mut i = 0; let (s, _) = tag("RACK_AND_PINION_PAIR_RANGE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_rack_displacement) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_rack_displacement) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - lower_limit_rack_displacement, - upper_limit_rack_displacement, - _marker: std::marker::PhantomData})) + let (s, lower_limit_rack_displacement) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_rack_displacement) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + lower_limit_rack_displacement, + upper_limit_rack_displacement, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RackAndPinionPairRange_<'a> { @@ -27068,7 +31496,8 @@ impl<'a> HasId for RackAndPinionPairRange_<'a> { } } #[derive(Debug)] -pub struct RackAndPinionPairValue_<'a> { // entity +pub struct RackAndPinionPairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_displacement: LengthMeasure<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -27087,11 +31516,16 @@ impl<'a> ParseFromChunks<'a> for RackAndPinionPairValue_<'a> { let mut i = 0; let (s, _) = tag("RACK_AND_PINION_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_displacement) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_displacement, - _marker: std::marker::PhantomData})) + let (s, actual_displacement) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_displacement, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RackAndPinionPairValue_<'a> { @@ -27101,7 +31535,8 @@ impl<'a> HasId for RackAndPinionPairValue_<'a> { } } #[derive(Debug)] -pub struct RadiusDimension_<'a> { // entity +pub struct RadiusDimension_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -27120,11 +31555,16 @@ impl<'a> ParseFromChunks<'a> for RadiusDimension_<'a> { let mut i = 0; let (s, _) = tag("RADIUS_DIMENSION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RadiusDimension_<'a> { @@ -27141,11 +31581,13 @@ impl<'a> Parse<'a> for RatioMeasure<'a> { } } impl<'a> HasId for RatioMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct RatioMeasureWithUnit_<'a> { // entity +pub struct RatioMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -27165,10 +31607,14 @@ impl<'a> ParseFromChunks<'a> for RatioMeasureWithUnit_<'a> { let (s, _) = tag("RATIO_MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RatioMeasureWithUnit_<'a> { @@ -27178,7 +31624,8 @@ impl<'a> HasId for RatioMeasureWithUnit_<'a> { } } #[derive(Debug)] -pub struct RatioUnit_<'a> { // entity +pub struct RatioUnit_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -27196,9 +31643,13 @@ impl<'a> ParseFromChunks<'a> for RatioUnit_<'a> { let mut i = 0; let (s, _) = tag("RATIO_UNIT(")(strs[0])?; let (s, dimensions) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RatioUnit_<'a> { @@ -27207,7 +31658,8 @@ impl<'a> HasId for RatioUnit_<'a> { } } #[derive(Debug)] -pub struct RationalBSplineCurve_<'a> { // entity +pub struct RationalBSplineCurve_<'a> { + // entity pub name: Label<'a>, pub degree: i64, pub control_points_list: Vec>, @@ -27232,20 +31684,25 @@ impl<'a> ParseFromChunks<'a> for RationalBSplineCurve_<'a> { let (s, _) = tag("RATIONAL_B_SPLINE_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, degree) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, control_points_list) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, control_points_list) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, curve_form) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, closed_curve) = param_from_chunks::(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(false, s, &mut i, strs)?; let (s, weights_data) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - degree, - control_points_list, - curve_form, - closed_curve, - self_intersect, - weights_data, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + degree, + control_points_list, + curve_form, + closed_curve, + self_intersect, + weights_data, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RationalBSplineCurve_<'a> { @@ -27260,7 +31717,8 @@ impl<'a> HasId for RationalBSplineCurve_<'a> { } } #[derive(Debug)] -pub struct RationalBSplineSurface_<'a> { // entity +pub struct RationalBSplineSurface_<'a> { + // entity pub name: Label<'a>, pub u_degree: i64, pub v_degree: i64, @@ -27288,23 +31746,29 @@ impl<'a> ParseFromChunks<'a> for RationalBSplineSurface_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, u_degree) = param_from_chunks::(false, s, &mut i, strs)?; let (s, v_degree) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, control_points_list) = param_from_chunks::>>>(false, s, &mut i, strs)?; - let (s, surface_form) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, control_points_list) = + param_from_chunks::>>>(false, s, &mut i, strs)?; + let (s, surface_form) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, u_closed) = param_from_chunks::(false, s, &mut i, strs)?; let (s, v_closed) = param_from_chunks::(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(false, s, &mut i, strs)?; let (s, weights_data) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - u_degree, - v_degree, - control_points_list, - surface_form, - u_closed, - v_closed, - self_intersect, - weights_data, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + u_degree, + v_degree, + control_points_list, + surface_form, + u_closed, + v_closed, + self_intersect, + weights_data, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RationalBSplineSurface_<'a> { @@ -27321,7 +31785,8 @@ impl<'a> HasId for RationalBSplineSurface_<'a> { } } #[derive(Debug)] -pub struct RealDefinedFunction_<'a> { // entity +pub struct RealDefinedFunction_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type RealDefinedFunction<'a> = Id>; @@ -27336,16 +31801,20 @@ impl<'a> FromEntity<'a> for RealDefinedFunction_<'a> { impl<'a> ParseFromChunks<'a> for RealDefinedFunction_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("REAL_DEFINED_FUNCTION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RealDefinedFunction_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct RealLiteral_<'a> { // entity +pub struct RealLiteral_<'a> { + // entity pub the_value: f64, _marker: std::marker::PhantomData<&'a ()>, } @@ -27363,9 +31832,13 @@ impl<'a> ParseFromChunks<'a> for RealLiteral_<'a> { let mut i = 0; let (s, _) = tag("REAL_LITERAL(")(strs[0])?; let (s, the_value) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - the_value, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + the_value, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RealLiteral_<'a> { @@ -27374,7 +31847,8 @@ impl<'a> HasId for RealLiteral_<'a> { } } #[derive(Debug)] -pub struct RealNumericVariable_<'a> { // entity +pub struct RealNumericVariable_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type RealNumericVariable<'a> = Id>; @@ -27389,16 +31863,20 @@ impl<'a> FromEntity<'a> for RealNumericVariable_<'a> { impl<'a> ParseFromChunks<'a> for RealNumericVariable_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("REAL_NUMERIC_VARIABLE(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RealNumericVariable_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct RectangularClosedProfile_<'a> { // entity +pub struct RectangularClosedProfile_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -27420,14 +31898,19 @@ impl<'a> ParseFromChunks<'a> for RectangularClosedProfile_<'a> { let (s, _) = tag("RECTANGULAR_CLOSED_PROFILE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RectangularClosedProfile_<'a> { @@ -27439,7 +31922,8 @@ impl<'a> HasId for RectangularClosedProfile_<'a> { } } #[derive(Debug)] -pub struct RectangularCompositeSurface_<'a> { // entity +pub struct RectangularCompositeSurface_<'a> { + // entity pub name: Label<'a>, pub segments: Vec>>, _marker: std::marker::PhantomData<&'a ()>, @@ -27459,10 +31943,14 @@ impl<'a> ParseFromChunks<'a> for RectangularCompositeSurface_<'a> { let (s, _) = tag("RECTANGULAR_COMPOSITE_SURFACE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, segments) = param_from_chunks::>>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - segments, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + segments, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RectangularCompositeSurface_<'a> { @@ -27472,7 +31960,8 @@ impl<'a> HasId for RectangularCompositeSurface_<'a> { } } #[derive(Debug)] -pub struct RectangularPattern_<'a> { // entity +pub struct RectangularPattern_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -27492,10 +31981,14 @@ impl<'a> ParseFromChunks<'a> for RectangularPattern_<'a> { let (s, _) = tag("RECTANGULAR_PATTERN(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RectangularPattern_<'a> { @@ -27505,7 +31998,8 @@ impl<'a> HasId for RectangularPattern_<'a> { } } #[derive(Debug)] -pub struct RectangularTrimmedSurface_<'a> { // entity +pub struct RectangularTrimmedSurface_<'a> { + // entity pub name: Label<'a>, pub basis_surface: Surface<'a>, pub u1: ParameterValue<'a>, @@ -27537,16 +32031,20 @@ impl<'a> ParseFromChunks<'a> for RectangularTrimmedSurface_<'a> { let (s, v2) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, usense) = param_from_chunks::(false, s, &mut i, strs)?; let (s, vsense) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - basis_surface, - u1, - u2, - v1, - v2, - usense, - vsense, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + basis_surface, + u1, + u2, + v1, + v2, + usense, + vsense, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RectangularTrimmedSurface_<'a> { @@ -27562,7 +32060,8 @@ impl<'a> HasId for RectangularTrimmedSurface_<'a> { } } #[derive(Debug)] -pub struct ReferencedModifiedDatum_<'a> { // entity +pub struct ReferencedModifiedDatum_<'a> { + // entity pub precedence: i64, pub referenced_datum: Datum<'a>, pub modifier: LimitCondition<'a>, @@ -27584,11 +32083,15 @@ impl<'a> ParseFromChunks<'a> for ReferencedModifiedDatum_<'a> { let (s, precedence) = param_from_chunks::(false, s, &mut i, strs)?; let (s, referenced_datum) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, modifier) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - precedence, - referenced_datum, - modifier, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + precedence, + referenced_datum, + modifier, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ReferencedModifiedDatum_<'a> { @@ -27599,7 +32102,8 @@ impl<'a> HasId for ReferencedModifiedDatum_<'a> { } } #[derive(Debug)] -pub struct RelativeEventOccurrence_<'a> { // entity +pub struct RelativeEventOccurrence_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -27625,13 +32129,17 @@ impl<'a> ParseFromChunks<'a> for RelativeEventOccurrence_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, base_event) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, offset) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - base_event, - offset, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + name, + description, + base_event, + offset, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RelativeEventOccurrence_<'a> { @@ -27649,7 +32157,8 @@ pub type RenderingPropertiesSelect<'a> = Id>; #[allow(non_snake_case)] #[derive(Debug)] -pub struct RepItemGroup_<'a> { // entity +pub struct RepItemGroup_<'a> { + // entity pub group__name: Label<'a>, pub description: Option>, pub representation_item__name: Label<'a>, @@ -27673,11 +32182,15 @@ impl<'a> ParseFromChunks<'a> for RepItemGroup_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; #[allow(non_snake_case)] let (s, representation_item__name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - group__name, - description, - representation_item__name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + group__name, + description, + representation_item__name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RepItemGroup_<'a> { @@ -27688,7 +32201,8 @@ impl<'a> HasId for RepItemGroup_<'a> { } } #[derive(Debug)] -pub struct ReparametrisedCompositeCurveSegment_<'a> { // entity +pub struct ReparametrisedCompositeCurveSegment_<'a> { + // entity pub transition: TransitionCode<'a>, pub same_sense: bool, pub parent_curve: Curve<'a>, @@ -27712,12 +32226,16 @@ impl<'a> ParseFromChunks<'a> for ReparametrisedCompositeCurveSegment_<'a> { let (s, same_sense) = param_from_chunks::(false, s, &mut i, strs)?; let (s, parent_curve) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, param_length) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - transition, - same_sense, - parent_curve, - param_length, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + transition, + same_sense, + parent_curve, + param_length, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ReparametrisedCompositeCurveSegment_<'a> { @@ -27729,7 +32247,8 @@ impl<'a> HasId for ReparametrisedCompositeCurveSegment_<'a> { } } #[derive(Debug)] -pub struct ReplicateFeature_<'a> { // entity +pub struct ReplicateFeature_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -27749,10 +32268,14 @@ impl<'a> ParseFromChunks<'a> for ReplicateFeature_<'a> { let (s, _) = tag("REPLICATE_FEATURE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ReplicateFeature_<'a> { @@ -27762,7 +32285,8 @@ impl<'a> HasId for ReplicateFeature_<'a> { } } #[derive(Debug)] -pub struct Representation_<'a> { // entity +pub struct Representation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -27783,12 +32307,17 @@ impl<'a> ParseFromChunks<'a> for Representation_<'a> { let (s, _) = tag("REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Representation_<'a> { @@ -27799,7 +32328,8 @@ impl<'a> HasId for Representation_<'a> { } } #[derive(Debug)] -pub struct RepresentationContext_<'a> { // entity +pub struct RepresentationContext_<'a> { + // entity pub context_identifier: Identifier<'a>, pub context_type: Text<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -27819,10 +32349,14 @@ impl<'a> ParseFromChunks<'a> for RepresentationContext_<'a> { let (s, _) = tag("REPRESENTATION_CONTEXT(")(strs[0])?; let (s, context_identifier) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, context_type) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - context_identifier, - context_type, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + context_identifier, + context_type, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RepresentationContext_<'a> { @@ -27832,7 +32366,8 @@ impl<'a> HasId for RepresentationContext_<'a> { } } #[derive(Debug)] -pub struct RepresentationItem_<'a> { // entity +pub struct RepresentationItem_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -27850,9 +32385,13 @@ impl<'a> ParseFromChunks<'a> for RepresentationItem_<'a> { let mut i = 0; let (s, _) = tag("REPRESENTATION_ITEM(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RepresentationItem_<'a> { @@ -27861,7 +32400,8 @@ impl<'a> HasId for RepresentationItem_<'a> { } } #[derive(Debug)] -pub struct RepresentationMap_<'a> { // entity +pub struct RepresentationMap_<'a> { + // entity pub mapping_origin: RepresentationItem<'a>, pub mapped_representation: Representation<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -27879,12 +32419,18 @@ impl<'a> ParseFromChunks<'a> for RepresentationMap_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("REPRESENTATION_MAP(")(strs[0])?; - let (s, mapping_origin) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapped_representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - mapping_origin, - mapped_representation, - _marker: std::marker::PhantomData})) + let (s, mapping_origin) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, mapped_representation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + mapping_origin, + mapped_representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RepresentationMap_<'a> { @@ -27894,7 +32440,8 @@ impl<'a> HasId for RepresentationMap_<'a> { } } #[derive(Debug)] -pub struct RepresentationRelationship_<'a> { // entity +pub struct RepresentationRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub rep_1: Representation<'a>, @@ -27918,12 +32465,16 @@ impl<'a> ParseFromChunks<'a> for RepresentationRelationship_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, rep_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, rep_2) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - rep_1, - rep_2, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + rep_1, + rep_2, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RepresentationRelationship_<'a> { @@ -27935,7 +32486,8 @@ impl<'a> HasId for RepresentationRelationship_<'a> { } } #[derive(Debug)] -pub struct RepresentationRelationshipWithTransformation_<'a> { // entity +pub struct RepresentationRelationshipWithTransformation_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub rep_1: Representation<'a>, @@ -27943,7 +32495,8 @@ pub struct RepresentationRelationshipWithTransformation_<'a> { // entity pub transformation_operator: Transformation<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type RepresentationRelationshipWithTransformation<'a> = Id>; +pub type RepresentationRelationshipWithTransformation<'a> = + Id>; impl<'a> FromEntity<'a> for RepresentationRelationshipWithTransformation_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -27960,14 +32513,19 @@ impl<'a> ParseFromChunks<'a> for RepresentationRelationshipWithTransformation_<' let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, rep_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, rep_2) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transformation_operator) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - rep_1, - rep_2, - transformation_operator, - _marker: std::marker::PhantomData})) + let (s, transformation_operator) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + rep_1, + rep_2, + transformation_operator, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RepresentationRelationshipWithTransformation_<'a> { @@ -27984,7 +32542,8 @@ pub struct RepresentedDefinition_<'a>(std::marker::PhantomData<&'a ()>); // ambi pub type RepresentedDefinition<'a> = Id>; #[derive(Debug)] -pub struct RequirementForActionResource_<'a> { // entity +pub struct RequirementForActionResource_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub kind: ResourceRequirementType<'a>, @@ -28008,15 +32567,20 @@ impl<'a> ParseFromChunks<'a> for RequirementForActionResource_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, kind) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, operations) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, operations) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, resources) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - kind, - operations, - resources, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + kind, + operations, + resources, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RequirementForActionResource_<'a> { @@ -28029,7 +32593,8 @@ impl<'a> HasId for RequirementForActionResource_<'a> { } } #[derive(Debug)] -pub struct ResourceProperty_<'a> { // entity +pub struct ResourceProperty_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub resource: CharacterizedResourceDefinition<'a>, @@ -28050,12 +32615,17 @@ impl<'a> ParseFromChunks<'a> for ResourceProperty_<'a> { let (s, _) = tag("RESOURCE_PROPERTY(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, resource) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - resource, - _marker: std::marker::PhantomData})) + let (s, resource) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + resource, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ResourceProperty_<'a> { @@ -28066,7 +32636,8 @@ impl<'a> HasId for ResourceProperty_<'a> { } } #[derive(Debug)] -pub struct ResourcePropertyRepresentation_<'a> { // entity +pub struct ResourcePropertyRepresentation_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub property: ResourceProperty<'a>, @@ -28090,12 +32661,16 @@ impl<'a> ParseFromChunks<'a> for ResourcePropertyRepresentation_<'a> { let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, property) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - property, - representation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + property, + representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ResourcePropertyRepresentation_<'a> { @@ -28107,7 +32682,8 @@ impl<'a> HasId for ResourcePropertyRepresentation_<'a> { } } #[derive(Debug)] -pub struct ResourceRequirementType_<'a> { // entity +pub struct ResourceRequirementType_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -28127,10 +32703,14 @@ impl<'a> ParseFromChunks<'a> for ResourceRequirementType_<'a> { let (s, _) = tag("RESOURCE_REQUIREMENT_TYPE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ResourceRequirementType_<'a> { @@ -28140,7 +32720,8 @@ impl<'a> HasId for ResourceRequirementType_<'a> { } } #[derive(Debug)] -pub struct ResultingPath_<'a> { // entity +pub struct ResultingPath_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub rep_1: Representation<'a>, @@ -28167,15 +32748,20 @@ impl<'a> ParseFromChunks<'a> for ResultingPath_<'a> { let (s, rep_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, rep_2) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, related_frame) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, controlling_joints) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - rep_1, - rep_2, - related_frame, - controlling_joints, - _marker: std::marker::PhantomData})) + let (s, controlling_joints) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + rep_1, + rep_2, + related_frame, + controlling_joints, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ResultingPath_<'a> { @@ -28189,7 +32775,8 @@ impl<'a> HasId for ResultingPath_<'a> { } } #[derive(Debug)] -pub struct Retention_<'a> { // entity +pub struct Retention_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub chosen_method: ActionMethod<'a>, @@ -28211,11 +32798,15 @@ impl<'a> ParseFromChunks<'a> for Retention_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, chosen_method) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - chosen_method, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + chosen_method, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Retention_<'a> { @@ -28226,18 +32817,36 @@ impl<'a> HasId for Retention_<'a> { } } #[derive(Debug)] -pub enum ReversibleTopology<'a> { // select +pub enum ReversibleTopology<'a> { + // select ReversibleTopologyItem(ReversibleTopologyItem<'a>), ListOfReversibleTopologyItem(Vec>), SetOfReversibleTopologyItem(Vec>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for ReversibleTopology<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(>::parse, ReversibleTopology::ReversibleTopologyItem), - map(delimited(tag("LIST_OF_REVERSIBLE_TOPOLOGY_ITEM("), >>::parse, char(')')), ReversibleTopology::ListOfReversibleTopologyItem), - map(delimited(tag("SET_OF_REVERSIBLE_TOPOLOGY_ITEM("), >>::parse, char(')')), ReversibleTopology::SetOfReversibleTopologyItem), + map( + >::parse, + ReversibleTopology::ReversibleTopologyItem, + ), + map( + delimited( + tag("LIST_OF_REVERSIBLE_TOPOLOGY_ITEM("), + >>::parse, + char(')'), + ), + ReversibleTopology::ListOfReversibleTopologyItem, + ), + map( + delimited( + tag("SET_OF_REVERSIBLE_TOPOLOGY_ITEM("), + >>::parse, + char(')'), + ), + ReversibleTopology::SetOfReversibleTopologyItem, + ), ))(s) } } @@ -28256,7 +32865,8 @@ pub struct ReversibleTopologyItem_<'a>(std::marker::PhantomData<&'a ()>); // amb pub type ReversibleTopologyItem<'a> = Id>; #[derive(Debug)] -pub struct RevolutePair_<'a> { // entity +pub struct RevolutePair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -28279,16 +32889,22 @@ impl<'a> ParseFromChunks<'a> for RevolutePair_<'a> { let (s, _) = tag("REVOLUTE_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RevolutePair_<'a> { @@ -28301,7 +32917,8 @@ impl<'a> HasId for RevolutePair_<'a> { } } #[derive(Debug)] -pub struct RevolutePairRange_<'a> { // entity +pub struct RevolutePairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub lower_limit_actual_rotation: RotationalRangeMeasure<'a>, pub upper_limit_actual_rotation: RotationalRangeMeasure<'a>, @@ -28321,13 +32938,19 @@ impl<'a> ParseFromChunks<'a> for RevolutePairRange_<'a> { let mut i = 0; let (s, _) = tag("REVOLUTE_PAIR_RANGE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_actual_rotation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_actual_rotation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - lower_limit_actual_rotation, - upper_limit_actual_rotation, - _marker: std::marker::PhantomData})) + let (s, lower_limit_actual_rotation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_actual_rotation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + lower_limit_actual_rotation, + upper_limit_actual_rotation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RevolutePairRange_<'a> { @@ -28338,7 +32961,8 @@ impl<'a> HasId for RevolutePairRange_<'a> { } } #[derive(Debug)] -pub struct RevolutePairValue_<'a> { // entity +pub struct RevolutePairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_rotation: PlaneAngleMeasure<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -28357,11 +32981,16 @@ impl<'a> ParseFromChunks<'a> for RevolutePairValue_<'a> { let mut i = 0; let (s, _) = tag("REVOLUTE_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_rotation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_rotation, - _marker: std::marker::PhantomData})) + let (s, actual_rotation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_rotation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RevolutePairValue_<'a> { @@ -28371,7 +33000,8 @@ impl<'a> HasId for RevolutePairValue_<'a> { } } #[derive(Debug)] -pub struct RevolvedAreaSolid_<'a> { // entity +pub struct RevolvedAreaSolid_<'a> { + // entity pub name: Label<'a>, pub swept_area: CurveBoundedSurface<'a>, pub axis: Axis1Placement<'a>, @@ -28395,12 +33025,16 @@ impl<'a> ParseFromChunks<'a> for RevolvedAreaSolid_<'a> { let (s, swept_area) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, axis) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, angle) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - swept_area, - axis, - angle, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + swept_area, + axis, + angle, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RevolvedAreaSolid_<'a> { @@ -28412,7 +33046,8 @@ impl<'a> HasId for RevolvedAreaSolid_<'a> { } } #[derive(Debug)] -pub struct RevolvedFaceSolid_<'a> { // entity +pub struct RevolvedFaceSolid_<'a> { + // entity pub name: Label<'a>, pub swept_face: FaceSurface<'a>, pub axis: Axis1Placement<'a>, @@ -28436,12 +33071,16 @@ impl<'a> ParseFromChunks<'a> for RevolvedFaceSolid_<'a> { let (s, swept_face) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, axis) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, angle) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - swept_face, - axis, - angle, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + swept_face, + axis, + angle, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RevolvedFaceSolid_<'a> { @@ -28453,7 +33092,8 @@ impl<'a> HasId for RevolvedFaceSolid_<'a> { } } #[derive(Debug)] -pub struct Rib_<'a> { // entity +pub struct Rib_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -28473,10 +33113,14 @@ impl<'a> ParseFromChunks<'a> for Rib_<'a> { let (s, _) = tag("RIB(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Rib_<'a> { @@ -28486,7 +33130,8 @@ impl<'a> HasId for Rib_<'a> { } } #[derive(Debug)] -pub struct RightAngularWedge_<'a> { // entity +pub struct RightAngularWedge_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement3d<'a>, pub x: PositiveLengthMeasure<'a>, @@ -28514,14 +33159,18 @@ impl<'a> ParseFromChunks<'a> for RightAngularWedge_<'a> { let (s, y) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, z) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, ltx) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - x, - y, - z, - ltx, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + position, + x, + y, + z, + ltx, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RightAngularWedge_<'a> { @@ -28535,7 +33184,8 @@ impl<'a> HasId for RightAngularWedge_<'a> { } } #[derive(Debug)] -pub struct RightCircularCone_<'a> { // entity +pub struct RightCircularCone_<'a> { + // entity pub name: Label<'a>, pub position: Axis1Placement<'a>, pub height: PositiveLengthMeasure<'a>, @@ -28561,13 +33211,17 @@ impl<'a> ParseFromChunks<'a> for RightCircularCone_<'a> { let (s, height) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, radius) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, semi_angle) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - height, - radius, - semi_angle, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + position, + height, + radius, + semi_angle, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RightCircularCone_<'a> { @@ -28580,7 +33234,8 @@ impl<'a> HasId for RightCircularCone_<'a> { } } #[derive(Debug)] -pub struct RightCircularCylinder_<'a> { // entity +pub struct RightCircularCylinder_<'a> { + // entity pub name: Label<'a>, pub position: Axis1Placement<'a>, pub height: PositiveLengthMeasure<'a>, @@ -28604,12 +33259,16 @@ impl<'a> ParseFromChunks<'a> for RightCircularCylinder_<'a> { let (s, position) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, height) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, radius) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - height, - radius, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + position, + height, + radius, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RightCircularCylinder_<'a> { @@ -28625,7 +33284,8 @@ pub struct RigidPlacement_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous s pub type RigidPlacement<'a> = Id>; #[derive(Debug)] -pub struct RoleAssociation_<'a> { // entity +pub struct RoleAssociation_<'a> { + // entity pub role: ObjectRole<'a>, pub item_with_role: RoleSelect<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -28645,10 +33305,14 @@ impl<'a> ParseFromChunks<'a> for RoleAssociation_<'a> { let (s, _) = tag("ROLE_ASSOCIATION(")(strs[0])?; let (s, role) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, item_with_role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - role, - item_with_role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + role, + item_with_role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RoleAssociation_<'a> { @@ -28662,7 +33326,8 @@ pub struct RoleSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous selec pub type RoleSelect<'a> = Id>; #[derive(Debug)] -pub struct RollingCurvePair_<'a> { // entity +pub struct RollingCurvePair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -28688,22 +33353,28 @@ impl<'a> ParseFromChunks<'a> for RollingCurvePair_<'a> { let (s, _) = tag("ROLLING_CURVE_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_2) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - curve_1, - curve_2, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + curve_1, + curve_2, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RollingCurvePair_<'a> { @@ -28719,7 +33390,8 @@ impl<'a> HasId for RollingCurvePair_<'a> { } } #[derive(Debug)] -pub struct RollingCurvePairValue_<'a> { // entity +pub struct RollingCurvePairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_point_on_curve_1: PointOnCurve<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -28738,11 +33410,16 @@ impl<'a> ParseFromChunks<'a> for RollingCurvePairValue_<'a> { let mut i = 0; let (s, _) = tag("ROLLING_CURVE_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_point_on_curve_1) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_point_on_curve_1, - _marker: std::marker::PhantomData})) + let (s, actual_point_on_curve_1) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_point_on_curve_1, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RollingCurvePairValue_<'a> { @@ -28752,7 +33429,8 @@ impl<'a> HasId for RollingCurvePairValue_<'a> { } } #[derive(Debug)] -pub struct RollingSurfacePair_<'a> { // entity +pub struct RollingSurfacePair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -28778,22 +33456,28 @@ impl<'a> ParseFromChunks<'a> for RollingSurfacePair_<'a> { let (s, _) = tag("ROLLING_SURFACE_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, surface_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, surface_2) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - surface_1, - surface_2, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + surface_1, + surface_2, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RollingSurfacePair_<'a> { @@ -28809,7 +33493,8 @@ impl<'a> HasId for RollingSurfacePair_<'a> { } } #[derive(Debug)] -pub struct RollingSurfacePairValue_<'a> { // entity +pub struct RollingSurfacePairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_point_on_surface: PointOnSurface<'a>, pub actual_rotation: PlaneAngleMeasure<'a>, @@ -28829,13 +33514,19 @@ impl<'a> ParseFromChunks<'a> for RollingSurfacePairValue_<'a> { let mut i = 0; let (s, _) = tag("ROLLING_SURFACE_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_point_on_surface) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_rotation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_point_on_surface, - actual_rotation, - _marker: std::marker::PhantomData})) + let (s, actual_point_on_surface) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, actual_rotation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_point_on_surface, + actual_rotation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RollingSurfacePairValue_<'a> { @@ -28846,7 +33537,8 @@ impl<'a> HasId for RollingSurfacePairValue_<'a> { } } #[derive(Debug)] -pub struct RotationAboutDirection_<'a> { // entity +pub struct RotationAboutDirection_<'a> { + // entity pub direction_of_axis: Direction<'a>, pub rotation_angle: PlaneAngleMeasure<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -28865,11 +33557,16 @@ impl<'a> ParseFromChunks<'a> for RotationAboutDirection_<'a> { let mut i = 0; let (s, _) = tag("ROTATION_ABOUT_DIRECTION(")(strs[0])?; let (s, direction_of_axis) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, rotation_angle) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - direction_of_axis, - rotation_angle, - _marker: std::marker::PhantomData})) + let (s, rotation_angle) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + direction_of_axis, + rotation_angle, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RotationAboutDirection_<'a> { @@ -28879,16 +33576,31 @@ impl<'a> HasId for RotationAboutDirection_<'a> { } } #[derive(Debug)] -pub enum RotationalRangeMeasure<'a> { // select +pub enum RotationalRangeMeasure<'a> { + // select PlaneAngleMeasure(PlaneAngleMeasure<'a>), UnlimitedRange(UnlimitedRange<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for RotationalRangeMeasure<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("PLANE_ANGLE_MEASURE("), >::parse, char(')')), RotationalRangeMeasure::PlaneAngleMeasure), - map(delimited(tag("UNLIMITED_RANGE("), >::parse, char(')')), RotationalRangeMeasure::UnlimitedRange), + map( + delimited( + tag("PLANE_ANGLE_MEASURE("), + >::parse, + char(')'), + ), + RotationalRangeMeasure::PlaneAngleMeasure, + ), + map( + delimited( + tag("UNLIMITED_RANGE("), + >::parse, + char(')'), + ), + RotationalRangeMeasure::UnlimitedRange, + ), ))(s) } } @@ -28902,7 +33614,8 @@ impl<'a> HasId for RotationalRangeMeasure<'a> { } } #[derive(Debug)] -pub struct RoundHole_<'a> { // entity +pub struct RoundHole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -28922,10 +33635,14 @@ impl<'a> ParseFromChunks<'a> for RoundHole_<'a> { let (s, _) = tag("ROUND_HOLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RoundHole_<'a> { @@ -28935,7 +33652,8 @@ impl<'a> HasId for RoundHole_<'a> { } } #[derive(Debug)] -pub struct RoundedUProfile_<'a> { // entity +pub struct RoundedUProfile_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -28957,14 +33675,19 @@ impl<'a> ParseFromChunks<'a> for RoundedUProfile_<'a> { let (s, _) = tag("ROUNDED_U_PROFILE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RoundedUProfile_<'a> { @@ -28976,7 +33699,8 @@ impl<'a> HasId for RoundedUProfile_<'a> { } } #[derive(Debug)] -pub struct RoundnessTolerance_<'a> { // entity +pub struct RoundnessTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -28999,13 +33723,18 @@ impl<'a> ParseFromChunks<'a> for RoundnessTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RoundnessTolerance_<'a> { @@ -29017,7 +33746,8 @@ impl<'a> HasId for RoundnessTolerance_<'a> { } } #[derive(Debug)] -pub struct RuledSurfaceSweptAreaSolid_<'a> { // entity +pub struct RuledSurfaceSweptAreaSolid_<'a> { + // entity pub name: Label<'a>, pub swept_area: CurveBoundedSurface<'a>, pub directrix: Curve<'a>, @@ -29045,14 +33775,18 @@ impl<'a> ParseFromChunks<'a> for RuledSurfaceSweptAreaSolid_<'a> { let (s, start_param) = param_from_chunks::(false, s, &mut i, strs)?; let (s, end_param) = param_from_chunks::(false, s, &mut i, strs)?; let (s, reference_surface) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - swept_area, - directrix, - start_param, - end_param, - reference_surface, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + swept_area, + directrix, + start_param, + end_param, + reference_surface, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RuledSurfaceSweptAreaSolid_<'a> { @@ -29066,7 +33800,8 @@ impl<'a> HasId for RuledSurfaceSweptAreaSolid_<'a> { } } #[derive(Debug)] -pub struct RunoutZoneDefinition_<'a> { // entity +pub struct RunoutZoneDefinition_<'a> { + // entity pub zone: ToleranceZone<'a>, pub boundaries: Vec>, pub orientation: RunoutZoneOrientation<'a>, @@ -29087,12 +33822,17 @@ impl<'a> ParseFromChunks<'a> for RunoutZoneDefinition_<'a> { let (s, _) = tag("RUNOUT_ZONE_DEFINITION(")(strs[0])?; let (s, zone) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, boundaries) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, orientation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - zone, - boundaries, - orientation, - _marker: std::marker::PhantomData})) + let (s, orientation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + zone, + boundaries, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RunoutZoneDefinition_<'a> { @@ -29103,7 +33843,8 @@ impl<'a> HasId for RunoutZoneDefinition_<'a> { } } #[derive(Debug)] -pub struct RunoutZoneOrientation_<'a> { // entity +pub struct RunoutZoneOrientation_<'a> { + // entity pub angle: MeasureWithUnit<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -29121,9 +33862,13 @@ impl<'a> ParseFromChunks<'a> for RunoutZoneOrientation_<'a> { let mut i = 0; let (s, _) = tag("RUNOUT_ZONE_ORIENTATION(")(strs[0])?; let (s, angle) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - angle, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + angle, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RunoutZoneOrientation_<'a> { @@ -29132,12 +33877,14 @@ impl<'a> HasId for RunoutZoneOrientation_<'a> { } } #[derive(Debug)] -pub struct RunoutZoneOrientationReferenceDirection_<'a> { // entity +pub struct RunoutZoneOrientationReferenceDirection_<'a> { + // entity pub angle: MeasureWithUnit<'a>, pub orientation_defining_relationship: ShapeAspectRelationship<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type RunoutZoneOrientationReferenceDirection<'a> = Id>; +pub type RunoutZoneOrientationReferenceDirection<'a> = + Id>; impl<'a> FromEntity<'a> for RunoutZoneOrientationReferenceDirection_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -29151,11 +33898,16 @@ impl<'a> ParseFromChunks<'a> for RunoutZoneOrientationReferenceDirection_<'a> { let mut i = 0; let (s, _) = tag("RUNOUT_ZONE_ORIENTATION_REFERENCE_DIRECTION(")(strs[0])?; let (s, angle) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, orientation_defining_relationship) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - angle, - orientation_defining_relationship, - _marker: std::marker::PhantomData})) + let (s, orientation_defining_relationship) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + angle, + orientation_defining_relationship, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for RunoutZoneOrientationReferenceDirection_<'a> { @@ -29165,7 +33917,8 @@ impl<'a> HasId for RunoutZoneOrientationReferenceDirection_<'a> { } } #[derive(Debug)] -pub struct ScrewPair_<'a> { // entity +pub struct ScrewPair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -29189,18 +33942,24 @@ impl<'a> ParseFromChunks<'a> for ScrewPair_<'a> { let (s, _) = tag("SCREW_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, pitch) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - pitch, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + pitch, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ScrewPair_<'a> { @@ -29214,7 +33973,8 @@ impl<'a> HasId for ScrewPair_<'a> { } } #[derive(Debug)] -pub struct ScrewPairRange_<'a> { // entity +pub struct ScrewPairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub lower_limit_actual_rotation: RotationalRangeMeasure<'a>, pub upper_limit_actual_rotation: RotationalRangeMeasure<'a>, @@ -29234,13 +33994,19 @@ impl<'a> ParseFromChunks<'a> for ScrewPairRange_<'a> { let mut i = 0; let (s, _) = tag("SCREW_PAIR_RANGE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_actual_rotation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_actual_rotation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - lower_limit_actual_rotation, - upper_limit_actual_rotation, - _marker: std::marker::PhantomData})) + let (s, lower_limit_actual_rotation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_actual_rotation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + lower_limit_actual_rotation, + upper_limit_actual_rotation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ScrewPairRange_<'a> { @@ -29251,7 +34017,8 @@ impl<'a> HasId for ScrewPairRange_<'a> { } } #[derive(Debug)] -pub struct ScrewPairValue_<'a> { // entity +pub struct ScrewPairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_rotation: PlaneAngleMeasure<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -29270,11 +34037,16 @@ impl<'a> ParseFromChunks<'a> for ScrewPairValue_<'a> { let mut i = 0; let (s, _) = tag("SCREW_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_rotation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_rotation, - _marker: std::marker::PhantomData})) + let (s, actual_rotation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_rotation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ScrewPairValue_<'a> { @@ -29284,10 +34056,11 @@ impl<'a> HasId for ScrewPairValue_<'a> { } } #[derive(Debug)] -pub struct SeamCurve_<'a> { // entity +pub struct SeamCurve_<'a> { + // entity pub name: Label<'a>, pub curve_3d: Curve<'a>, - pub associated_geometry: ArrayVec::, 2>, + pub associated_geometry: ArrayVec, 2>, pub master_representation: PreferredSurfaceCurveRepresentation<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -29306,14 +34079,20 @@ impl<'a> ParseFromChunks<'a> for SeamCurve_<'a> { let (s, _) = tag("SEAM_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_3d) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, associated_geometry) = param_from_chunks::, 2>>(false, s, &mut i, strs)?; - let (s, master_representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - curve_3d, - associated_geometry, - master_representation, - _marker: std::marker::PhantomData})) + let (s, associated_geometry) = + param_from_chunks::, 2>>(false, s, &mut i, strs)?; + let (s, master_representation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + curve_3d, + associated_geometry, + master_representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SeamCurve_<'a> { @@ -29325,7 +34104,8 @@ impl<'a> HasId for SeamCurve_<'a> { } } #[derive(Debug)] -pub struct SeamEdge_<'a> { // entity +pub struct SeamEdge_<'a> { + // entity pub name: Label<'a>, pub edge_start: Vertex<'a>, pub edge_end: Vertex<'a>, @@ -29353,14 +34133,18 @@ impl<'a> ParseFromChunks<'a> for SeamEdge_<'a> { let (s, edge_element) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(false, s, &mut i, strs)?; let (s, pcurve_reference) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - edge_start, - edge_end, - edge_element, - orientation, - pcurve_reference, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + edge_start, + edge_end, + edge_element, + orientation, + pcurve_reference, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SeamEdge_<'a> { @@ -29381,11 +34165,13 @@ impl<'a> Parse<'a> for SecondInMinute<'a> { } } impl<'a> HasId for SecondInMinute<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct SecurityClassification_<'a> { // entity +pub struct SecurityClassification_<'a> { + // entity pub name: Label<'a>, pub purpose: Text<'a>, pub security_level: SecurityClassificationLevel<'a>, @@ -29406,12 +34192,17 @@ impl<'a> ParseFromChunks<'a> for SecurityClassification_<'a> { let (s, _) = tag("SECURITY_CLASSIFICATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, purpose) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, security_level) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - purpose, - security_level, - _marker: std::marker::PhantomData})) + let (s, security_level) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + purpose, + security_level, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SecurityClassification_<'a> { @@ -29422,7 +34213,8 @@ impl<'a> HasId for SecurityClassification_<'a> { } } #[derive(Debug)] -pub struct SecurityClassificationAssignment_<'a> { // entity +pub struct SecurityClassificationAssignment_<'a> { + // entity pub assigned_security_classification: SecurityClassification<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -29439,10 +34231,15 @@ impl<'a> ParseFromChunks<'a> for SecurityClassificationAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("SECURITY_CLASSIFICATION_ASSIGNMENT(")(strs[0])?; - let (s, assigned_security_classification) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_security_classification, - _marker: std::marker::PhantomData})) + let (s, assigned_security_classification) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + assigned_security_classification, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SecurityClassificationAssignment_<'a> { @@ -29455,7 +34252,8 @@ pub struct SecurityClassificationItem_<'a>(std::marker::PhantomData<&'a ()>); // pub type SecurityClassificationItem<'a> = Id>; #[derive(Debug)] -pub struct SecurityClassificationLevel_<'a> { // entity +pub struct SecurityClassificationLevel_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -29473,9 +34271,13 @@ impl<'a> ParseFromChunks<'a> for SecurityClassificationLevel_<'a> { let mut i = 0; let (s, _) = tag("SECURITY_CLASSIFICATION_LEVEL(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SecurityClassificationLevel_<'a> { @@ -29484,7 +34286,8 @@ impl<'a> HasId for SecurityClassificationLevel_<'a> { } } #[derive(Debug)] -pub struct SerialNumberedEffectivity_<'a> { // entity +pub struct SerialNumberedEffectivity_<'a> { + // entity pub id: Identifier<'a>, pub effectivity_start_id: Identifier<'a>, pub effectivity_end_id: Option>, @@ -29504,13 +34307,19 @@ impl<'a> ParseFromChunks<'a> for SerialNumberedEffectivity_<'a> { let mut i = 0; let (s, _) = tag("SERIAL_NUMBERED_EFFECTIVITY(")(strs[0])?; let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, effectivity_start_id) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, effectivity_end_id) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - effectivity_start_id, - effectivity_end_id, - _marker: std::marker::PhantomData})) + let (s, effectivity_start_id) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, effectivity_end_id) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + effectivity_start_id, + effectivity_end_id, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SerialNumberedEffectivity_<'a> { @@ -29521,10 +34330,15 @@ impl<'a> HasId for SerialNumberedEffectivity_<'a> { } } #[derive(Debug)] -pub struct SetOfReversibleTopologyItem<'a>(pub Vec>, std::marker::PhantomData<&'a ()>); // aggregation +pub struct SetOfReversibleTopologyItem<'a>( + pub Vec>, + std::marker::PhantomData<&'a ()>, +); // aggregation impl<'a> Parse<'a> for SetOfReversibleTopologyItem<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(many0(>::parse), |r| Self(r, std::marker::PhantomData))(s) + map(many0(>::parse), |r| { + Self(r, std::marker::PhantomData) + })(s) } } impl<'a> HasId for SetOfReversibleTopologyItem<'a> { @@ -29536,10 +34350,15 @@ impl<'a> HasId for SetOfReversibleTopologyItem<'a> { } #[derive(Debug)] -pub struct SetRepresentationItem<'a>(pub Vec>, std::marker::PhantomData<&'a ()>); // aggregation +pub struct SetRepresentationItem<'a>( + pub Vec>, + std::marker::PhantomData<&'a ()>, +); // aggregation impl<'a> Parse<'a> for SetRepresentationItem<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(many0(>::parse), |r| Self(r, std::marker::PhantomData))(s) + map(many0(>::parse), |r| { + Self(r, std::marker::PhantomData) + })(s) } } impl<'a> HasId for SetRepresentationItem<'a> { @@ -29551,7 +34370,8 @@ impl<'a> HasId for SetRepresentationItem<'a> { } #[derive(Debug)] -pub enum ShadingCurveMethod<'a> { // enum +pub enum ShadingCurveMethod<'a> { + // enum ConstantColour, LinearColour, _Unused(std::marker::PhantomData<&'a ()>), @@ -29569,11 +34389,13 @@ impl<'a> Parse<'a> for ShadingCurveMethod<'a> { } } impl<'a> HasId for ShadingCurveMethod<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub enum ShadingSurfaceMethod<'a> { // enum +pub enum ShadingSurfaceMethod<'a> { + // enum ConstantShading, ColourShading, DotShading, @@ -29595,11 +34417,13 @@ impl<'a> Parse<'a> for ShadingSurfaceMethod<'a> { } } impl<'a> HasId for ShadingSurfaceMethod<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct ShapeAspect_<'a> { // entity +pub struct ShapeAspect_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -29621,14 +34445,19 @@ impl<'a> ParseFromChunks<'a> for ShapeAspect_<'a> { let (s, _) = tag("SHAPE_ASPECT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ShapeAspect_<'a> { @@ -29640,7 +34469,8 @@ impl<'a> HasId for ShapeAspect_<'a> { } } #[derive(Debug)] -pub struct ShapeAspectAssociativity_<'a> { // entity +pub struct ShapeAspectAssociativity_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_shape_aspect: ShapeAspect<'a>, @@ -29662,14 +34492,20 @@ impl<'a> ParseFromChunks<'a> for ShapeAspectAssociativity_<'a> { let (s, _) = tag("SHAPE_ASPECT_ASSOCIATIVITY(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_shape_aspect, - related_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, relating_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_shape_aspect, + related_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ShapeAspectAssociativity_<'a> { @@ -29681,7 +34517,8 @@ impl<'a> HasId for ShapeAspectAssociativity_<'a> { } } #[derive(Debug)] -pub struct ShapeAspectDerivingRelationship_<'a> { // entity +pub struct ShapeAspectDerivingRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_shape_aspect: ShapeAspect<'a>, @@ -29703,14 +34540,20 @@ impl<'a> ParseFromChunks<'a> for ShapeAspectDerivingRelationship_<'a> { let (s, _) = tag("SHAPE_ASPECT_DERIVING_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_shape_aspect, - related_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, relating_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_shape_aspect, + related_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ShapeAspectDerivingRelationship_<'a> { @@ -29722,7 +34565,8 @@ impl<'a> HasId for ShapeAspectDerivingRelationship_<'a> { } } #[derive(Debug)] -pub struct ShapeAspectRelationship_<'a> { // entity +pub struct ShapeAspectRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_shape_aspect: ShapeAspect<'a>, @@ -29744,14 +34588,20 @@ impl<'a> ParseFromChunks<'a> for ShapeAspectRelationship_<'a> { let (s, _) = tag("SHAPE_ASPECT_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_shape_aspect, - related_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, relating_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_shape_aspect, + related_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ShapeAspectRelationship_<'a> { @@ -29763,7 +34613,8 @@ impl<'a> HasId for ShapeAspectRelationship_<'a> { } } #[derive(Debug)] -pub struct ShapeAspectTransition_<'a> { // entity +pub struct ShapeAspectTransition_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_shape_aspect: ShapeAspect<'a>, @@ -29785,14 +34636,20 @@ impl<'a> ParseFromChunks<'a> for ShapeAspectTransition_<'a> { let (s, _) = tag("SHAPE_ASPECT_TRANSITION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_shape_aspect, - related_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, relating_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_shape_aspect, + related_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ShapeAspectTransition_<'a> { @@ -29804,7 +34661,8 @@ impl<'a> HasId for ShapeAspectTransition_<'a> { } } #[derive(Debug)] -pub struct ShapeDefiningRelationship_<'a> { // entity +pub struct ShapeDefiningRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub relating_shape_aspect: ShapeAspect<'a>, @@ -29826,14 +34684,20 @@ impl<'a> ParseFromChunks<'a> for ShapeDefiningRelationship_<'a> { let (s, _) = tag("SHAPE_DEFINING_RELATIONSHIP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - relating_shape_aspect, - related_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, relating_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + relating_shape_aspect, + related_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ShapeDefiningRelationship_<'a> { @@ -29849,7 +34713,8 @@ pub struct ShapeDefinition_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous pub type ShapeDefinition<'a> = Id>; #[derive(Debug)] -pub struct ShapeDefinitionRepresentation_<'a> { // entity +pub struct ShapeDefinitionRepresentation_<'a> { + // entity pub definition: RepresentedDefinition<'a>, pub used_representation: Representation<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -29867,12 +34732,18 @@ impl<'a> ParseFromChunks<'a> for ShapeDefinitionRepresentation_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("SHAPE_DEFINITION_REPRESENTATION(")(strs[0])?; - let (s, definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, used_representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - definition, - used_representation, - _marker: std::marker::PhantomData})) + let (s, definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, used_representation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + definition, + used_representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ShapeDefinitionRepresentation_<'a> { @@ -29882,7 +34753,8 @@ impl<'a> HasId for ShapeDefinitionRepresentation_<'a> { } } #[derive(Debug)] -pub struct ShapeDimensionRepresentation_<'a> { // entity +pub struct ShapeDimensionRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -29903,12 +34775,17 @@ impl<'a> ParseFromChunks<'a> for ShapeDimensionRepresentation_<'a> { let (s, _) = tag("SHAPE_DIMENSION_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ShapeDimensionRepresentation_<'a> { @@ -29919,7 +34796,8 @@ impl<'a> HasId for ShapeDimensionRepresentation_<'a> { } } #[derive(Debug)] -pub struct ShapeRepresentation_<'a> { // entity +pub struct ShapeRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -29940,12 +34818,17 @@ impl<'a> ParseFromChunks<'a> for ShapeRepresentation_<'a> { let (s, _) = tag("SHAPE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ShapeRepresentation_<'a> { @@ -29956,7 +34839,8 @@ impl<'a> HasId for ShapeRepresentation_<'a> { } } #[derive(Debug)] -pub struct ShapeRepresentationRelationship_<'a> { // entity +pub struct ShapeRepresentationRelationship_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub rep_1: Representation<'a>, @@ -29980,12 +34864,16 @@ impl<'a> ParseFromChunks<'a> for ShapeRepresentationRelationship_<'a> { let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, rep_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, rep_2) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - rep_1, - rep_2, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + rep_1, + rep_2, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ShapeRepresentationRelationship_<'a> { @@ -29997,7 +34885,8 @@ impl<'a> HasId for ShapeRepresentationRelationship_<'a> { } } #[derive(Debug)] -pub struct ShapeRepresentationWithParameters_<'a> { // entity +pub struct ShapeRepresentationWithParameters_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -30018,12 +34907,17 @@ impl<'a> ParseFromChunks<'a> for ShapeRepresentationWithParameters_<'a> { let (s, _) = tag("SHAPE_REPRESENTATION_WITH_PARAMETERS(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ShapeRepresentationWithParameters_<'a> { @@ -30038,7 +34932,8 @@ pub struct Shell_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous select pub type Shell<'a> = Id>; #[derive(Debug)] -pub struct ShellBasedSurfaceModel_<'a> { // entity +pub struct ShellBasedSurfaceModel_<'a> { + // entity pub name: Label<'a>, pub sbsm_boundary: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -30058,10 +34953,14 @@ impl<'a> ParseFromChunks<'a> for ShellBasedSurfaceModel_<'a> { let (s, _) = tag("SHELL_BASED_SURFACE_MODEL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, sbsm_boundary) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - sbsm_boundary, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + sbsm_boundary, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ShellBasedSurfaceModel_<'a> { @@ -30071,7 +34970,8 @@ impl<'a> HasId for ShellBasedSurfaceModel_<'a> { } } #[derive(Debug)] -pub enum SiPrefix<'a> { // enum +pub enum SiPrefix<'a> { + // enum Exa, Peta, Tera, @@ -30117,11 +35017,13 @@ impl<'a> Parse<'a> for SiPrefix<'a> { } } impl<'a> HasId for SiPrefix<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct SiUnit_<'a> { // entity +pub struct SiUnit_<'a> { + // entity pub prefix: Option>, pub name: SiUnitName<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -30142,10 +35044,14 @@ impl<'a> ParseFromChunks<'a> for SiUnit_<'a> { let (s, _) = param_from_chunks::(false, s, &mut i, strs)?; let (s, prefix) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - prefix, - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + prefix, + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SiUnit_<'a> { @@ -30155,7 +35061,8 @@ impl<'a> HasId for SiUnit_<'a> { } } #[derive(Debug)] -pub enum SiUnitName<'a> { // enum +pub enum SiUnitName<'a> { + // enum Metre, Gram, Second, @@ -30225,11 +35132,13 @@ impl<'a> Parse<'a> for SiUnitName<'a> { } } impl<'a> HasId for SiUnitName<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct SimpleBooleanExpression_<'a> { // entity +pub struct SimpleBooleanExpression_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type SimpleBooleanExpression<'a> = Id>; @@ -30244,16 +35153,20 @@ impl<'a> FromEntity<'a> for SimpleBooleanExpression_<'a> { impl<'a> ParseFromChunks<'a> for SimpleBooleanExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("SIMPLE_BOOLEAN_EXPRESSION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SimpleBooleanExpression_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct SimpleGenericExpression_<'a> { // entity +pub struct SimpleGenericExpression_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type SimpleGenericExpression<'a> = Id>; @@ -30268,16 +35181,20 @@ impl<'a> FromEntity<'a> for SimpleGenericExpression_<'a> { impl<'a> ParseFromChunks<'a> for SimpleGenericExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("SIMPLE_GENERIC_EXPRESSION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SimpleGenericExpression_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct SimpleNumericExpression_<'a> { // entity +pub struct SimpleNumericExpression_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type SimpleNumericExpression<'a> = Id>; @@ -30292,16 +35209,20 @@ impl<'a> FromEntity<'a> for SimpleNumericExpression_<'a> { impl<'a> ParseFromChunks<'a> for SimpleNumericExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("SIMPLE_NUMERIC_EXPRESSION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SimpleNumericExpression_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct SimplePairRange_<'a> { // entity +pub struct SimplePairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -30319,9 +35240,13 @@ impl<'a> ParseFromChunks<'a> for SimplePairRange_<'a> { let mut i = 0; let (s, _) = tag("SIMPLE_PAIR_RANGE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + applies_to_pair, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SimplePairRange_<'a> { @@ -30330,7 +35255,8 @@ impl<'a> HasId for SimplePairRange_<'a> { } } #[derive(Debug)] -pub struct SimpleStringExpression_<'a> { // entity +pub struct SimpleStringExpression_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type SimpleStringExpression<'a> = Id>; @@ -30345,16 +35271,20 @@ impl<'a> FromEntity<'a> for SimpleStringExpression_<'a> { impl<'a> ParseFromChunks<'a> for SimpleStringExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("SIMPLE_STRING_EXPRESSION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SimpleStringExpression_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct SinFunction_<'a> { // entity +pub struct SinFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -30372,9 +35302,13 @@ impl<'a> ParseFromChunks<'a> for SinFunction_<'a> { let mut i = 0; let (s, _) = tag("SIN_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SinFunction_<'a> { @@ -30383,18 +35317,33 @@ impl<'a> HasId for SinFunction_<'a> { } } #[derive(Debug)] -pub enum SizeSelect<'a> { // select +pub enum SizeSelect<'a> { + // select PositiveLengthMeasure(PositiveLengthMeasure<'a>), MeasureWithUnit(MeasureWithUnit<'a>), DescriptiveMeasure(DescriptiveMeasure<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for SizeSelect<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("POSITIVE_LENGTH_MEASURE("), >::parse, char(')')), SizeSelect::PositiveLengthMeasure), + map( + delimited( + tag("POSITIVE_LENGTH_MEASURE("), + >::parse, + char(')'), + ), + SizeSelect::PositiveLengthMeasure, + ), map(>::parse, SizeSelect::MeasureWithUnit), - map(delimited(tag("DESCRIPTIVE_MEASURE("), >::parse, char(')')), SizeSelect::DescriptiveMeasure), + map( + delimited( + tag("DESCRIPTIVE_MEASURE("), + >::parse, + char(')'), + ), + SizeSelect::DescriptiveMeasure, + ), ))(s) } } @@ -30409,8 +35358,9 @@ impl<'a> HasId for SizeSelect<'a> { } } #[derive(Debug)] -pub struct SlashExpression_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct SlashExpression_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type SlashExpression<'a> = Id>; @@ -30426,10 +35376,15 @@ impl<'a> ParseFromChunks<'a> for SlashExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("SLASH_EXPRESSION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SlashExpression_<'a> { @@ -30438,7 +35393,8 @@ impl<'a> HasId for SlashExpression_<'a> { } } #[derive(Debug)] -pub struct SlidingCurvePair_<'a> { // entity +pub struct SlidingCurvePair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -30464,22 +35420,28 @@ impl<'a> ParseFromChunks<'a> for SlidingCurvePair_<'a> { let (s, _) = tag("SLIDING_CURVE_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_2) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - curve_1, - curve_2, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + curve_1, + curve_2, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SlidingCurvePair_<'a> { @@ -30495,7 +35457,8 @@ impl<'a> HasId for SlidingCurvePair_<'a> { } } #[derive(Debug)] -pub struct SlidingCurvePairValue_<'a> { // entity +pub struct SlidingCurvePairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_point_on_curve_1: PointOnCurve<'a>, pub actual_point_on_curve_2: PointOnCurve<'a>, @@ -30515,13 +35478,19 @@ impl<'a> ParseFromChunks<'a> for SlidingCurvePairValue_<'a> { let mut i = 0; let (s, _) = tag("SLIDING_CURVE_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_point_on_curve_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_point_on_curve_2) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_point_on_curve_1, - actual_point_on_curve_2, - _marker: std::marker::PhantomData})) + let (s, actual_point_on_curve_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, actual_point_on_curve_2) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_point_on_curve_1, + actual_point_on_curve_2, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SlidingCurvePairValue_<'a> { @@ -30532,7 +35501,8 @@ impl<'a> HasId for SlidingCurvePairValue_<'a> { } } #[derive(Debug)] -pub struct SlidingSurfacePair_<'a> { // entity +pub struct SlidingSurfacePair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -30558,22 +35528,28 @@ impl<'a> ParseFromChunks<'a> for SlidingSurfacePair_<'a> { let (s, _) = tag("SLIDING_SURFACE_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, surface_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, surface_2) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - surface_1, - surface_2, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + surface_1, + surface_2, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SlidingSurfacePair_<'a> { @@ -30589,7 +35565,8 @@ impl<'a> HasId for SlidingSurfacePair_<'a> { } } #[derive(Debug)] -pub struct SlidingSurfacePairValue_<'a> { // entity +pub struct SlidingSurfacePairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_point_on_surface_1: PointOnSurface<'a>, pub actual_point_on_surface_2: PointOnSurface<'a>, @@ -30610,15 +35587,22 @@ impl<'a> ParseFromChunks<'a> for SlidingSurfacePairValue_<'a> { let mut i = 0; let (s, _) = tag("SLIDING_SURFACE_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_point_on_surface_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_point_on_surface_2) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_rotation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_point_on_surface_1, - actual_point_on_surface_2, - actual_rotation, - _marker: std::marker::PhantomData})) + let (s, actual_point_on_surface_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, actual_point_on_surface_2) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, actual_rotation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_point_on_surface_1, + actual_point_on_surface_2, + actual_rotation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SlidingSurfacePairValue_<'a> { @@ -30630,7 +35614,8 @@ impl<'a> HasId for SlidingSurfacePairValue_<'a> { } } #[derive(Debug)] -pub struct Slot_<'a> { // entity +pub struct Slot_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -30650,10 +35635,14 @@ impl<'a> ParseFromChunks<'a> for Slot_<'a> { let (s, _) = tag("SLOT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Slot_<'a> { @@ -30663,7 +35652,8 @@ impl<'a> HasId for Slot_<'a> { } } #[derive(Debug)] -pub struct SlotEnd_<'a> { // entity +pub struct SlotEnd_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -30685,14 +35675,19 @@ impl<'a> ParseFromChunks<'a> for SlotEnd_<'a> { let (s, _) = tag("SLOT_END(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SlotEnd_<'a> { @@ -30711,11 +35706,13 @@ impl<'a> Parse<'a> for SolidAngleMeasure<'a> { } } impl<'a> HasId for SolidAngleMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct SolidAngleMeasureWithUnit_<'a> { // entity +pub struct SolidAngleMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -30735,10 +35732,14 @@ impl<'a> ParseFromChunks<'a> for SolidAngleMeasureWithUnit_<'a> { let (s, _) = tag("SOLID_ANGLE_MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SolidAngleMeasureWithUnit_<'a> { @@ -30748,7 +35749,8 @@ impl<'a> HasId for SolidAngleMeasureWithUnit_<'a> { } } #[derive(Debug)] -pub struct SolidAngleUnit_<'a> { // entity +pub struct SolidAngleUnit_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -30766,9 +35768,13 @@ impl<'a> ParseFromChunks<'a> for SolidAngleUnit_<'a> { let mut i = 0; let (s, _) = tag("SOLID_ANGLE_UNIT(")(strs[0])?; let (s, dimensions) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SolidAngleUnit_<'a> { @@ -30777,7 +35783,8 @@ impl<'a> HasId for SolidAngleUnit_<'a> { } } #[derive(Debug)] -pub struct SolidModel_<'a> { // entity +pub struct SolidModel_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -30795,9 +35802,13 @@ impl<'a> ParseFromChunks<'a> for SolidModel_<'a> { let mut i = 0; let (s, _) = tag("SOLID_MODEL(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SolidModel_<'a> { @@ -30806,7 +35817,8 @@ impl<'a> HasId for SolidModel_<'a> { } } #[derive(Debug)] -pub struct SolidReplica_<'a> { // entity +pub struct SolidReplica_<'a> { + // entity pub name: Label<'a>, pub parent_solid: SolidModel<'a>, pub transformation: CartesianTransformationOperator3d<'a>, @@ -30827,12 +35839,17 @@ impl<'a> ParseFromChunks<'a> for SolidReplica_<'a> { let (s, _) = tag("SOLID_REPLICA(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, parent_solid) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transformation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - parent_solid, - transformation, - _marker: std::marker::PhantomData})) + let (s, transformation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + parent_solid, + transformation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SolidReplica_<'a> { @@ -30843,7 +35860,8 @@ impl<'a> HasId for SolidReplica_<'a> { } } #[derive(Debug)] -pub enum Source<'a> { // enum +pub enum Source<'a> { + // enum Made, Bought, NotKnown, @@ -30863,35 +35881,53 @@ impl<'a> Parse<'a> for Source<'a> { } } impl<'a> HasId for Source<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub enum SourceItem<'a> { // select +pub enum SourceItem<'a> { + // select Identifier(Identifier<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for SourceItem<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(delimited(tag("IDENTIFIER("), >::parse, char(')')), SourceItem::Identifier)(s) + map( + delimited(tag("IDENTIFIER("), >::parse, char(')')), + SourceItem::Identifier, + )(s) } } impl<'a> HasId for SourceItem<'a> { fn append_ids(&self, _v: &mut Vec) { - if let SourceItem::Identifier(c) = self { c.append_ids(_v) } + if let SourceItem::Identifier(c) = self { + c.append_ids(_v) + } } } #[derive(Debug)] -pub enum SpatialRotation<'a> { // select +pub enum SpatialRotation<'a> { + // select YprRotation(Vec>), RotationAboutDirection(RotationAboutDirection<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for SpatialRotation<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("YPR_ROTATION("), >>::parse, char(')')), SpatialRotation::YprRotation), - map(>::parse, SpatialRotation::RotationAboutDirection), + map( + delimited( + tag("YPR_ROTATION("), + >>::parse, + char(')'), + ), + SpatialRotation::YprRotation, + ), + map( + >::parse, + SpatialRotation::RotationAboutDirection, + ), ))(s) } } @@ -30905,7 +35941,8 @@ impl<'a> HasId for SpatialRotation<'a> { } } #[derive(Debug)] -pub struct SpecifiedHigherUsageOccurrence_<'a> { // entity +pub struct SpecifiedHigherUsageOccurrence_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -30932,21 +35969,30 @@ impl<'a> ParseFromChunks<'a> for SpecifiedHigherUsageOccurrence_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_product_definition) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, reference_designator) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, upper_usage) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, next_usage) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - relating_product_definition, - related_product_definition, - reference_designator, - upper_usage, - next_usage, - _marker: std::marker::PhantomData})) + let (s, relating_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_product_definition) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, reference_designator) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, upper_usage) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, next_usage) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + name, + description, + relating_product_definition, + related_product_definition, + reference_designator, + upper_usage, + next_usage, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SpecifiedHigherUsageOccurrence_<'a> { @@ -30966,7 +36012,8 @@ pub struct SpecifiedItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous se pub type SpecifiedItem<'a> = Id>; #[derive(Debug)] -pub struct Sphere_<'a> { // entity +pub struct Sphere_<'a> { + // entity pub name: Label<'a>, pub radius: PositiveLengthMeasure<'a>, pub centre: Point<'a>, @@ -30988,11 +36035,15 @@ impl<'a> ParseFromChunks<'a> for Sphere_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, radius) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, centre) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - radius, - centre, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + radius, + centre, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Sphere_<'a> { @@ -31003,7 +36054,8 @@ impl<'a> HasId for Sphere_<'a> { } } #[derive(Debug)] -pub struct SphericalPair_<'a> { // entity +pub struct SphericalPair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -31026,16 +36078,22 @@ impl<'a> ParseFromChunks<'a> for SphericalPair_<'a> { let (s, _) = tag("SPHERICAL_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SphericalPair_<'a> { @@ -31048,7 +36106,8 @@ impl<'a> HasId for SphericalPair_<'a> { } } #[derive(Debug)] -pub struct SphericalPairRange_<'a> { // entity +pub struct SphericalPairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub lower_limit_yaw: RotationalRangeMeasure<'a>, pub upper_limit_yaw: RotationalRangeMeasure<'a>, @@ -31072,21 +36131,31 @@ impl<'a> ParseFromChunks<'a> for SphericalPairRange_<'a> { let mut i = 0; let (s, _) = tag("SPHERICAL_PAIR_RANGE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_yaw) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_yaw) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_pitch) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_pitch) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_roll) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_roll) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - lower_limit_yaw, - upper_limit_yaw, - lower_limit_pitch, - upper_limit_pitch, - lower_limit_roll, - upper_limit_roll, - _marker: std::marker::PhantomData})) + let (s, lower_limit_yaw) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_yaw) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, lower_limit_pitch) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_pitch) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, lower_limit_roll) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_roll) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + lower_limit_yaw, + upper_limit_yaw, + lower_limit_pitch, + upper_limit_pitch, + lower_limit_roll, + upper_limit_roll, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SphericalPairRange_<'a> { @@ -31101,7 +36170,8 @@ impl<'a> HasId for SphericalPairRange_<'a> { } } #[derive(Debug)] -pub struct SphericalPairValue_<'a> { // entity +pub struct SphericalPairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub input_orientation: SpatialRotation<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -31120,11 +36190,16 @@ impl<'a> ParseFromChunks<'a> for SphericalPairValue_<'a> { let mut i = 0; let (s, _) = tag("SPHERICAL_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, input_orientation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - input_orientation, - _marker: std::marker::PhantomData})) + let (s, input_orientation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + input_orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SphericalPairValue_<'a> { @@ -31134,7 +36209,8 @@ impl<'a> HasId for SphericalPairValue_<'a> { } } #[derive(Debug)] -pub struct SphericalSurface_<'a> { // entity +pub struct SphericalSurface_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement3d<'a>, pub radius: PositiveLengthMeasure<'a>, @@ -31156,11 +36232,15 @@ impl<'a> ParseFromChunks<'a> for SphericalSurface_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, position) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, radius) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - radius, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + position, + radius, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SphericalSurface_<'a> { @@ -31171,7 +36251,8 @@ impl<'a> HasId for SphericalSurface_<'a> { } } #[derive(Debug)] -pub struct SqlMappableDefinedFunction_<'a> { // entity +pub struct SqlMappableDefinedFunction_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type SqlMappableDefinedFunction<'a> = Id>; @@ -31186,16 +36267,20 @@ impl<'a> FromEntity<'a> for SqlMappableDefinedFunction_<'a> { impl<'a> ParseFromChunks<'a> for SqlMappableDefinedFunction_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("SQL_MAPPABLE_DEFINED_FUNCTION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SqlMappableDefinedFunction_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct SquareRootFunction_<'a> { // entity +pub struct SquareRootFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -31213,9 +36298,13 @@ impl<'a> ParseFromChunks<'a> for SquareRootFunction_<'a> { let mut i = 0; let (s, _) = tag("SQUARE_ROOT_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SquareRootFunction_<'a> { @@ -31224,7 +36313,8 @@ impl<'a> HasId for SquareRootFunction_<'a> { } } #[derive(Debug)] -pub struct SquareUProfile_<'a> { // entity +pub struct SquareUProfile_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -31246,14 +36336,19 @@ impl<'a> ParseFromChunks<'a> for SquareUProfile_<'a> { let (s, _) = tag("SQUARE_U_PROFILE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SquareUProfile_<'a> { @@ -31265,7 +36360,8 @@ impl<'a> HasId for SquareUProfile_<'a> { } } #[derive(Debug)] -pub struct StandardUncertainty_<'a> { // entity +pub struct StandardUncertainty_<'a> { + // entity pub measure_name: Label<'a>, pub description: Text<'a>, pub uncertainty_value: f64, @@ -31287,11 +36383,15 @@ impl<'a> ParseFromChunks<'a> for StandardUncertainty_<'a> { let (s, measure_name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, uncertainty_value) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - measure_name, - description, - uncertainty_value, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + measure_name, + description, + uncertainty_value, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for StandardUncertainty_<'a> { @@ -31302,7 +36402,8 @@ impl<'a> HasId for StandardUncertainty_<'a> { } } #[derive(Debug)] -pub struct StraightnessTolerance_<'a> { // entity +pub struct StraightnessTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -31325,13 +36426,18 @@ impl<'a> ParseFromChunks<'a> for StraightnessTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for StraightnessTolerance_<'a> { @@ -31343,7 +36449,8 @@ impl<'a> HasId for StraightnessTolerance_<'a> { } } #[derive(Debug)] -pub struct StringDefinedFunction_<'a> { // entity +pub struct StringDefinedFunction_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type StringDefinedFunction<'a> = Id>; @@ -31358,16 +36465,20 @@ impl<'a> FromEntity<'a> for StringDefinedFunction_<'a> { impl<'a> ParseFromChunks<'a> for StringDefinedFunction_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("STRING_DEFINED_FUNCTION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for StringDefinedFunction_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct StringExpression_<'a> { // entity +pub struct StringExpression_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type StringExpression<'a> = Id>; @@ -31382,16 +36493,20 @@ impl<'a> FromEntity<'a> for StringExpression_<'a> { impl<'a> ParseFromChunks<'a> for StringExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("STRING_EXPRESSION(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for StringExpression_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct StringLiteral_<'a> { // entity +pub struct StringLiteral_<'a> { + // entity pub the_value: &'a str, _marker: std::marker::PhantomData<&'a ()>, } @@ -31409,9 +36524,13 @@ impl<'a> ParseFromChunks<'a> for StringLiteral_<'a> { let mut i = 0; let (s, _) = tag("STRING_LITERAL(")(strs[0])?; let (s, the_value) = param_from_chunks::<&'a str>(true, s, &mut i, strs)?; - Ok((s, Self { - the_value, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + the_value, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for StringLiteral_<'a> { @@ -31420,7 +36539,8 @@ impl<'a> HasId for StringLiteral_<'a> { } } #[derive(Debug)] -pub struct StringVariable_<'a> { // entity +pub struct StringVariable_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type StringVariable<'a> = Id>; @@ -31435,16 +36555,20 @@ impl<'a> FromEntity<'a> for StringVariable_<'a> { impl<'a> ParseFromChunks<'a> for StringVariable_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("STRING_VARIABLE(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for StringVariable_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct StructuredDimensionCallout_<'a> { // entity +pub struct StructuredDimensionCallout_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -31463,11 +36587,16 @@ impl<'a> ParseFromChunks<'a> for StructuredDimensionCallout_<'a> { let mut i = 0; let (s, _) = tag("STRUCTURED_DIMENSION_CALLOUT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for StructuredDimensionCallout_<'a> { @@ -31481,7 +36610,8 @@ pub struct StyleContextSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambiguo pub type StyleContextSelect<'a> = Id>; #[derive(Debug)] -pub struct StyledItem_<'a> { // entity +pub struct StyledItem_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -31501,13 +36631,18 @@ impl<'a> ParseFromChunks<'a> for StyledItem_<'a> { let mut i = 0; let (s, _) = tag("STYLED_ITEM(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + styles, + item, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for StyledItem_<'a> { @@ -31518,7 +36653,8 @@ impl<'a> HasId for StyledItem_<'a> { } } #[derive(Debug)] -pub struct Subedge_<'a> { // entity +pub struct Subedge_<'a> { + // entity pub name: Label<'a>, pub edge_start: Vertex<'a>, pub edge_end: Vertex<'a>, @@ -31542,12 +36678,16 @@ impl<'a> ParseFromChunks<'a> for Subedge_<'a> { let (s, edge_start) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, edge_end) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, parent_edge) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - edge_start, - edge_end, - parent_edge, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + edge_start, + edge_end, + parent_edge, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Subedge_<'a> { @@ -31559,7 +36699,8 @@ impl<'a> HasId for Subedge_<'a> { } } #[derive(Debug)] -pub struct Subface_<'a> { // entity +pub struct Subface_<'a> { + // entity pub name: Label<'a>, pub bounds: Vec>, pub parent_face: Face<'a>, @@ -31581,11 +36722,15 @@ impl<'a> ParseFromChunks<'a> for Subface_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, bounds) = param_from_chunks::>>(false, s, &mut i, strs)?; let (s, parent_face) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - bounds, - parent_face, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + bounds, + parent_face, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Subface_<'a> { @@ -31596,7 +36741,8 @@ impl<'a> HasId for Subface_<'a> { } } #[derive(Debug)] -pub struct SubstringExpression_<'a> { // entity +pub struct SubstringExpression_<'a> { + // entity pub operands: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -31614,9 +36760,13 @@ impl<'a> ParseFromChunks<'a> for SubstringExpression_<'a> { let mut i = 0; let (s, _) = tag("SUBSTRING_EXPRESSION(")(strs[0])?; let (s, operands) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SubstringExpression_<'a> { @@ -31629,7 +36779,8 @@ pub struct SupportedItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous se pub type SupportedItem<'a> = Id>; #[derive(Debug)] -pub struct Surface_<'a> { // entity +pub struct Surface_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -31647,9 +36798,13 @@ impl<'a> ParseFromChunks<'a> for Surface_<'a> { let mut i = 0; let (s, _) = tag("SURFACE(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Surface_<'a> { @@ -31658,7 +36813,8 @@ impl<'a> HasId for Surface_<'a> { } } #[derive(Debug)] -pub struct SurfaceConditionCallout_<'a> { // entity +pub struct SurfaceConditionCallout_<'a> { + // entity pub name: Label<'a>, pub contents: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -31677,11 +36833,16 @@ impl<'a> ParseFromChunks<'a> for SurfaceConditionCallout_<'a> { let mut i = 0; let (s, _) = tag("SURFACE_CONDITION_CALLOUT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, contents) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - contents, - _marker: std::marker::PhantomData})) + let (s, contents) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + contents, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceConditionCallout_<'a> { @@ -31691,10 +36852,11 @@ impl<'a> HasId for SurfaceConditionCallout_<'a> { } } #[derive(Debug)] -pub struct SurfaceCurve_<'a> { // entity +pub struct SurfaceCurve_<'a> { + // entity pub name: Label<'a>, pub curve_3d: Curve<'a>, - pub associated_geometry: ArrayVec::, 2>, + pub associated_geometry: ArrayVec, 2>, pub master_representation: PreferredSurfaceCurveRepresentation<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -31713,14 +36875,20 @@ impl<'a> ParseFromChunks<'a> for SurfaceCurve_<'a> { let (s, _) = tag("SURFACE_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_3d) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, associated_geometry) = param_from_chunks::, 2>>(false, s, &mut i, strs)?; - let (s, master_representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - curve_3d, - associated_geometry, - master_representation, - _marker: std::marker::PhantomData})) + let (s, associated_geometry) = + param_from_chunks::, 2>>(false, s, &mut i, strs)?; + let (s, master_representation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + curve_3d, + associated_geometry, + master_representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceCurve_<'a> { @@ -31732,7 +36900,8 @@ impl<'a> HasId for SurfaceCurve_<'a> { } } #[derive(Debug)] -pub struct SurfaceCurveSweptAreaSolid_<'a> { // entity +pub struct SurfaceCurveSweptAreaSolid_<'a> { + // entity pub name: Label<'a>, pub swept_area: CurveBoundedSurface<'a>, pub directrix: Curve<'a>, @@ -31760,14 +36929,18 @@ impl<'a> ParseFromChunks<'a> for SurfaceCurveSweptAreaSolid_<'a> { let (s, start_param) = param_from_chunks::(false, s, &mut i, strs)?; let (s, end_param) = param_from_chunks::(false, s, &mut i, strs)?; let (s, reference_surface) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - swept_area, - directrix, - start_param, - end_param, - reference_surface, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + swept_area, + directrix, + start_param, + end_param, + reference_surface, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceCurveSweptAreaSolid_<'a> { @@ -31781,7 +36954,8 @@ impl<'a> HasId for SurfaceCurveSweptAreaSolid_<'a> { } } #[derive(Debug)] -pub struct SurfaceOfLinearExtrusion_<'a> { // entity +pub struct SurfaceOfLinearExtrusion_<'a> { + // entity pub name: Label<'a>, pub swept_curve: Curve<'a>, pub extrusion_axis: Vector<'a>, @@ -31803,11 +36977,15 @@ impl<'a> ParseFromChunks<'a> for SurfaceOfLinearExtrusion_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, swept_curve) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, extrusion_axis) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - swept_curve, - extrusion_axis, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + swept_curve, + extrusion_axis, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceOfLinearExtrusion_<'a> { @@ -31818,7 +36996,8 @@ impl<'a> HasId for SurfaceOfLinearExtrusion_<'a> { } } #[derive(Debug)] -pub struct SurfaceOfRevolution_<'a> { // entity +pub struct SurfaceOfRevolution_<'a> { + // entity pub name: Label<'a>, pub swept_curve: Curve<'a>, pub axis_position: Axis1Placement<'a>, @@ -31840,11 +37019,15 @@ impl<'a> ParseFromChunks<'a> for SurfaceOfRevolution_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, swept_curve) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, axis_position) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - swept_curve, - axis_position, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + swept_curve, + axis_position, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceOfRevolution_<'a> { @@ -31855,7 +37038,8 @@ impl<'a> HasId for SurfaceOfRevolution_<'a> { } } #[derive(Debug)] -pub struct SurfacePair_<'a> { // entity +pub struct SurfacePair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -31881,22 +37065,28 @@ impl<'a> ParseFromChunks<'a> for SurfacePair_<'a> { let (s, _) = tag("SURFACE_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, surface_1) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, surface_2) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - surface_1, - surface_2, - orientation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + surface_1, + surface_2, + orientation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfacePair_<'a> { @@ -31912,7 +37102,8 @@ impl<'a> HasId for SurfacePair_<'a> { } } #[derive(Debug)] -pub struct SurfacePairRange_<'a> { // entity +pub struct SurfacePairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub range_on_surface_1: RectangularTrimmedSurface<'a>, pub range_on_surface_2: RectangularTrimmedSurface<'a>, @@ -31934,17 +37125,25 @@ impl<'a> ParseFromChunks<'a> for SurfacePairRange_<'a> { let mut i = 0; let (s, _) = tag("SURFACE_PAIR_RANGE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, range_on_surface_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, range_on_surface_2) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_actual_rotation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_actual_rotation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - range_on_surface_1, - range_on_surface_2, - lower_limit_actual_rotation, - upper_limit_actual_rotation, - _marker: std::marker::PhantomData})) + let (s, range_on_surface_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, range_on_surface_2) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, lower_limit_actual_rotation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_actual_rotation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + range_on_surface_1, + range_on_surface_2, + lower_limit_actual_rotation, + upper_limit_actual_rotation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfacePairRange_<'a> { @@ -31957,7 +37156,8 @@ impl<'a> HasId for SurfacePairRange_<'a> { } } #[derive(Debug)] -pub struct SurfacePatch_<'a> { // entity +pub struct SurfacePatch_<'a> { + // entity pub parent_surface: BoundedSurface<'a>, pub u_transition: TransitionCode<'a>, pub v_transition: TransitionCode<'a>, @@ -31983,13 +37183,17 @@ impl<'a> ParseFromChunks<'a> for SurfacePatch_<'a> { let (s, v_transition) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, u_sense) = param_from_chunks::(false, s, &mut i, strs)?; let (s, v_sense) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - parent_surface, - u_transition, - v_transition, - u_sense, - v_sense, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + parent_surface, + u_transition, + v_transition, + u_sense, + v_sense, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfacePatch_<'a> { @@ -32002,7 +37206,8 @@ impl<'a> HasId for SurfacePatch_<'a> { } } #[derive(Debug)] -pub struct SurfaceProfileTolerance_<'a> { // entity +pub struct SurfaceProfileTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -32025,13 +37230,18 @@ impl<'a> ParseFromChunks<'a> for SurfaceProfileTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceProfileTolerance_<'a> { @@ -32043,7 +37253,8 @@ impl<'a> HasId for SurfaceProfileTolerance_<'a> { } } #[derive(Debug)] -pub struct SurfaceRenderingProperties_<'a> { // entity +pub struct SurfaceRenderingProperties_<'a> { + // entity pub rendered_colour: Colour<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -32061,9 +37272,13 @@ impl<'a> ParseFromChunks<'a> for SurfaceRenderingProperties_<'a> { let mut i = 0; let (s, _) = tag("SURFACE_RENDERING_PROPERTIES(")(strs[0])?; let (s, rendered_colour) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - rendered_colour, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + rendered_colour, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceRenderingProperties_<'a> { @@ -32072,7 +37287,8 @@ impl<'a> HasId for SurfaceRenderingProperties_<'a> { } } #[derive(Debug)] -pub struct SurfaceReplica_<'a> { // entity +pub struct SurfaceReplica_<'a> { + // entity pub name: Label<'a>, pub parent_surface: Surface<'a>, pub transformation: CartesianTransformationOperator3d<'a>, @@ -32093,12 +37309,17 @@ impl<'a> ParseFromChunks<'a> for SurfaceReplica_<'a> { let (s, _) = tag("SURFACE_REPLICA(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, parent_surface) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transformation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - parent_surface, - transformation, - _marker: std::marker::PhantomData})) + let (s, transformation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + parent_surface, + transformation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceReplica_<'a> { @@ -32109,7 +37330,8 @@ impl<'a> HasId for SurfaceReplica_<'a> { } } #[derive(Debug)] -pub enum SurfaceSide<'a> { // enum +pub enum SurfaceSide<'a> { + // enum Positive, Negative, Both, @@ -32129,13 +37351,15 @@ impl<'a> Parse<'a> for SurfaceSide<'a> { } } impl<'a> HasId for SurfaceSide<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct SurfaceSideStyle_<'a> { // entity +pub struct SurfaceSideStyle_<'a> { + // entity pub name: Label<'a>, - pub styles: ArrayVec::, 7>, + pub styles: ArrayVec, 7>, _marker: std::marker::PhantomData<&'a ()>, } pub type SurfaceSideStyle<'a> = Id>; @@ -32152,11 +37376,16 @@ impl<'a> ParseFromChunks<'a> for SurfaceSideStyle_<'a> { let mut i = 0; let (s, _) = tag("SURFACE_SIDE_STYLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::, 7>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - _marker: std::marker::PhantomData})) + let (s, styles) = + param_from_chunks::, 7>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + styles, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceSideStyle_<'a> { @@ -32170,7 +37399,8 @@ pub struct SurfaceSideStyleSelect_<'a>(std::marker::PhantomData<&'a ()>); // amb pub type SurfaceSideStyleSelect<'a> = Id>; #[derive(Debug)] -pub struct SurfaceStyleBoundary_<'a> { // entity +pub struct SurfaceStyleBoundary_<'a> { + // entity pub style_of_boundary: CurveOrRender<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -32188,9 +37418,13 @@ impl<'a> ParseFromChunks<'a> for SurfaceStyleBoundary_<'a> { let mut i = 0; let (s, _) = tag("SURFACE_STYLE_BOUNDARY(")(strs[0])?; let (s, style_of_boundary) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - style_of_boundary, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + style_of_boundary, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceStyleBoundary_<'a> { @@ -32199,7 +37433,8 @@ impl<'a> HasId for SurfaceStyleBoundary_<'a> { } } #[derive(Debug)] -pub struct SurfaceStyleControlGrid_<'a> { // entity +pub struct SurfaceStyleControlGrid_<'a> { + // entity pub style_of_control_grid: CurveOrRender<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -32216,10 +37451,15 @@ impl<'a> ParseFromChunks<'a> for SurfaceStyleControlGrid_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("SURFACE_STYLE_CONTROL_GRID(")(strs[0])?; - let (s, style_of_control_grid) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - style_of_control_grid, - _marker: std::marker::PhantomData})) + let (s, style_of_control_grid) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + style_of_control_grid, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceStyleControlGrid_<'a> { @@ -32232,7 +37472,8 @@ pub struct SurfaceStyleElementSelect_<'a>(std::marker::PhantomData<&'a ()>); // pub type SurfaceStyleElementSelect<'a> = Id>; #[derive(Debug)] -pub struct SurfaceStyleFillArea_<'a> { // entity +pub struct SurfaceStyleFillArea_<'a> { + // entity pub fill_area: FillAreaStyle<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -32250,9 +37491,13 @@ impl<'a> ParseFromChunks<'a> for SurfaceStyleFillArea_<'a> { let mut i = 0; let (s, _) = tag("SURFACE_STYLE_FILL_AREA(")(strs[0])?; let (s, fill_area) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - fill_area, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + fill_area, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceStyleFillArea_<'a> { @@ -32261,9 +37506,10 @@ impl<'a> HasId for SurfaceStyleFillArea_<'a> { } } #[derive(Debug)] -pub struct SurfaceStyleParameterLine_<'a> { // entity +pub struct SurfaceStyleParameterLine_<'a> { + // entity pub style_of_parameter_lines: CurveOrRender<'a>, - pub direction_counts: ArrayVec::, 2>, + pub direction_counts: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type SurfaceStyleParameterLine<'a> = Id>; @@ -32279,12 +37525,18 @@ impl<'a> ParseFromChunks<'a> for SurfaceStyleParameterLine_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("SURFACE_STYLE_PARAMETER_LINE(")(strs[0])?; - let (s, style_of_parameter_lines) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, direction_counts) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - style_of_parameter_lines, - direction_counts, - _marker: std::marker::PhantomData})) + let (s, style_of_parameter_lines) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, direction_counts) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + style_of_parameter_lines, + direction_counts, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceStyleParameterLine_<'a> { @@ -32294,7 +37546,8 @@ impl<'a> HasId for SurfaceStyleParameterLine_<'a> { } } #[derive(Debug)] -pub struct SurfaceStyleReflectanceAmbient_<'a> { // entity +pub struct SurfaceStyleReflectanceAmbient_<'a> { + // entity pub ambient_reflectance: f64, _marker: std::marker::PhantomData<&'a ()>, } @@ -32312,9 +37565,13 @@ impl<'a> ParseFromChunks<'a> for SurfaceStyleReflectanceAmbient_<'a> { let mut i = 0; let (s, _) = tag("SURFACE_STYLE_REFLECTANCE_AMBIENT(")(strs[0])?; let (s, ambient_reflectance) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - ambient_reflectance, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + ambient_reflectance, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceStyleReflectanceAmbient_<'a> { @@ -32323,7 +37580,8 @@ impl<'a> HasId for SurfaceStyleReflectanceAmbient_<'a> { } } #[derive(Debug)] -pub struct SurfaceStyleReflectanceAmbientDiffuse_<'a> { // entity +pub struct SurfaceStyleReflectanceAmbientDiffuse_<'a> { + // entity pub ambient_reflectance: f64, pub diffuse_reflectance: f64, _marker: std::marker::PhantomData<&'a ()>, @@ -32343,10 +37601,14 @@ impl<'a> ParseFromChunks<'a> for SurfaceStyleReflectanceAmbientDiffuse_<'a> { let (s, _) = tag("SURFACE_STYLE_REFLECTANCE_AMBIENT_DIFFUSE(")(strs[0])?; let (s, ambient_reflectance) = param_from_chunks::(false, s, &mut i, strs)?; let (s, diffuse_reflectance) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - ambient_reflectance, - diffuse_reflectance, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + ambient_reflectance, + diffuse_reflectance, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceStyleReflectanceAmbientDiffuse_<'a> { @@ -32356,7 +37618,8 @@ impl<'a> HasId for SurfaceStyleReflectanceAmbientDiffuse_<'a> { } } #[derive(Debug)] -pub struct SurfaceStyleReflectanceAmbientDiffuseSpecular_<'a> { // entity +pub struct SurfaceStyleReflectanceAmbientDiffuseSpecular_<'a> { + // entity pub ambient_reflectance: f64, pub diffuse_reflectance: f64, pub specular_reflectance: f64, @@ -32364,7 +37627,8 @@ pub struct SurfaceStyleReflectanceAmbientDiffuseSpecular_<'a> { // entity pub specular_colour: Colour<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type SurfaceStyleReflectanceAmbientDiffuseSpecular<'a> = Id>; +pub type SurfaceStyleReflectanceAmbientDiffuseSpecular<'a> = + Id>; impl<'a> FromEntity<'a> for SurfaceStyleReflectanceAmbientDiffuseSpecular_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -32382,13 +37646,17 @@ impl<'a> ParseFromChunks<'a> for SurfaceStyleReflectanceAmbientDiffuseSpecular_< let (s, specular_reflectance) = param_from_chunks::(false, s, &mut i, strs)?; let (s, specular_exponent) = param_from_chunks::(false, s, &mut i, strs)?; let (s, specular_colour) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - ambient_reflectance, - diffuse_reflectance, - specular_reflectance, - specular_exponent, - specular_colour, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + ambient_reflectance, + diffuse_reflectance, + specular_reflectance, + specular_exponent, + specular_colour, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceStyleReflectanceAmbientDiffuseSpecular_<'a> { @@ -32401,7 +37669,8 @@ impl<'a> HasId for SurfaceStyleReflectanceAmbientDiffuseSpecular_<'a> { } } #[derive(Debug)] -pub struct SurfaceStyleRendering_<'a> { // entity +pub struct SurfaceStyleRendering_<'a> { + // entity pub rendering_method: ShadingSurfaceMethod<'a>, pub surface_colour: Colour<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -32419,12 +37688,17 @@ impl<'a> ParseFromChunks<'a> for SurfaceStyleRendering_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("SURFACE_STYLE_RENDERING(")(strs[0])?; - let (s, rendering_method) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, rendering_method) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, surface_colour) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - rendering_method, - surface_colour, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + rendering_method, + surface_colour, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceStyleRendering_<'a> { @@ -32434,10 +37708,11 @@ impl<'a> HasId for SurfaceStyleRendering_<'a> { } } #[derive(Debug)] -pub struct SurfaceStyleRenderingWithProperties_<'a> { // entity +pub struct SurfaceStyleRenderingWithProperties_<'a> { + // entity pub rendering_method: ShadingSurfaceMethod<'a>, pub surface_colour: Colour<'a>, - pub properties: ArrayVec::, 2>, + pub properties: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type SurfaceStyleRenderingWithProperties<'a> = Id>; @@ -32453,14 +37728,20 @@ impl<'a> ParseFromChunks<'a> for SurfaceStyleRenderingWithProperties_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("SURFACE_STYLE_RENDERING_WITH_PROPERTIES(")(strs[0])?; - let (s, rendering_method) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, rendering_method) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, surface_colour) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, properties) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - rendering_method, - surface_colour, - properties, - _marker: std::marker::PhantomData})) + let (s, properties) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + rendering_method, + surface_colour, + properties, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceStyleRenderingWithProperties_<'a> { @@ -32471,7 +37752,8 @@ impl<'a> HasId for SurfaceStyleRenderingWithProperties_<'a> { } } #[derive(Debug)] -pub struct SurfaceStyleSegmentationCurve_<'a> { // entity +pub struct SurfaceStyleSegmentationCurve_<'a> { + // entity pub style_of_segmentation_curve: CurveOrRender<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -32488,10 +37770,15 @@ impl<'a> ParseFromChunks<'a> for SurfaceStyleSegmentationCurve_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("SURFACE_STYLE_SEGMENTATION_CURVE(")(strs[0])?; - let (s, style_of_segmentation_curve) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - style_of_segmentation_curve, - _marker: std::marker::PhantomData})) + let (s, style_of_segmentation_curve) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + style_of_segmentation_curve, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceStyleSegmentationCurve_<'a> { @@ -32500,7 +37787,8 @@ impl<'a> HasId for SurfaceStyleSegmentationCurve_<'a> { } } #[derive(Debug)] -pub struct SurfaceStyleSilhouette_<'a> { // entity +pub struct SurfaceStyleSilhouette_<'a> { + // entity pub style_of_silhouette: CurveOrRender<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -32517,10 +37805,15 @@ impl<'a> ParseFromChunks<'a> for SurfaceStyleSilhouette_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("SURFACE_STYLE_SILHOUETTE(")(strs[0])?; - let (s, style_of_silhouette) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - style_of_silhouette, - _marker: std::marker::PhantomData})) + let (s, style_of_silhouette) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + style_of_silhouette, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceStyleSilhouette_<'a> { @@ -32529,7 +37822,8 @@ impl<'a> HasId for SurfaceStyleSilhouette_<'a> { } } #[derive(Debug)] -pub struct SurfaceStyleTransparent_<'a> { // entity +pub struct SurfaceStyleTransparent_<'a> { + // entity pub transparency: f64, _marker: std::marker::PhantomData<&'a ()>, } @@ -32547,9 +37841,13 @@ impl<'a> ParseFromChunks<'a> for SurfaceStyleTransparent_<'a> { let mut i = 0; let (s, _) = tag("SURFACE_STYLE_TRANSPARENT(")(strs[0])?; let (s, transparency) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - transparency, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + transparency, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceStyleTransparent_<'a> { @@ -32558,7 +37856,8 @@ impl<'a> HasId for SurfaceStyleTransparent_<'a> { } } #[derive(Debug)] -pub struct SurfaceStyleUsage_<'a> { // entity +pub struct SurfaceStyleUsage_<'a> { + // entity pub side: SurfaceSide<'a>, pub style: SurfaceSideStyleSelect<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -32578,10 +37877,14 @@ impl<'a> ParseFromChunks<'a> for SurfaceStyleUsage_<'a> { let (s, _) = tag("SURFACE_STYLE_USAGE(")(strs[0])?; let (s, side) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, style) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - side, - style, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + side, + style, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceStyleUsage_<'a> { @@ -32591,7 +37894,8 @@ impl<'a> HasId for SurfaceStyleUsage_<'a> { } } #[derive(Debug)] -pub struct SurfaceTextureRepresentation_<'a> { // entity +pub struct SurfaceTextureRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -32612,12 +37916,17 @@ impl<'a> ParseFromChunks<'a> for SurfaceTextureRepresentation_<'a> { let (s, _) = tag("SURFACE_TEXTURE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SurfaceTextureRepresentation_<'a> { @@ -32629,10 +37938,15 @@ impl<'a> HasId for SurfaceTextureRepresentation_<'a> { } #[derive(Debug)] -pub struct SurfaceToleranceDeviation<'a>(pub PositiveLengthMeasure<'a>, std::marker::PhantomData<&'a ()>); // redeclared +pub struct SurfaceToleranceDeviation<'a>( + pub PositiveLengthMeasure<'a>, + std::marker::PhantomData<&'a ()>, +); // redeclared impl<'a> Parse<'a> for SurfaceToleranceDeviation<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(PositiveLengthMeasure::parse, |r| Self(r, std::marker::PhantomData))(s) + map(PositiveLengthMeasure::parse, |r| { + Self(r, std::marker::PhantomData) + })(s) } } impl<'a> HasId for SurfaceToleranceDeviation<'a> { @@ -32649,11 +37963,13 @@ impl<'a> Parse<'a> for SurfaceToleranceParameter<'a> { } } impl<'a> HasId for SurfaceToleranceParameter<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct SweptAreaSolid_<'a> { // entity +pub struct SweptAreaSolid_<'a> { + // entity pub name: Label<'a>, pub swept_area: CurveBoundedSurface<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -32673,10 +37989,14 @@ impl<'a> ParseFromChunks<'a> for SweptAreaSolid_<'a> { let (s, _) = tag("SWEPT_AREA_SOLID(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, swept_area) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - swept_area, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + swept_area, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SweptAreaSolid_<'a> { @@ -32686,7 +38006,8 @@ impl<'a> HasId for SweptAreaSolid_<'a> { } } #[derive(Debug)] -pub struct SweptDiskSolid_<'a> { // entity +pub struct SweptDiskSolid_<'a> { + // entity pub name: Label<'a>, pub directrix: Curve<'a>, pub radius: PositiveLengthMeasure<'a>, @@ -32711,17 +38032,22 @@ impl<'a> ParseFromChunks<'a> for SweptDiskSolid_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, directrix) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, radius) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, inner_radius) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, inner_radius) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, start_param) = param_from_chunks::(false, s, &mut i, strs)?; let (s, end_param) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - directrix, - radius, - inner_radius, - start_param, - end_param, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + directrix, + radius, + inner_radius, + start_param, + end_param, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SweptDiskSolid_<'a> { @@ -32735,7 +38061,8 @@ impl<'a> HasId for SweptDiskSolid_<'a> { } } #[derive(Debug)] -pub struct SweptFaceSolid_<'a> { // entity +pub struct SweptFaceSolid_<'a> { + // entity pub name: Label<'a>, pub swept_face: FaceSurface<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -32755,10 +38082,14 @@ impl<'a> ParseFromChunks<'a> for SweptFaceSolid_<'a> { let (s, _) = tag("SWEPT_FACE_SOLID(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, swept_face) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - swept_face, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + swept_face, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SweptFaceSolid_<'a> { @@ -32768,7 +38099,8 @@ impl<'a> HasId for SweptFaceSolid_<'a> { } } #[derive(Debug)] -pub struct SweptSurface_<'a> { // entity +pub struct SweptSurface_<'a> { + // entity pub name: Label<'a>, pub swept_curve: Curve<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -32788,10 +38120,14 @@ impl<'a> ParseFromChunks<'a> for SweptSurface_<'a> { let (s, _) = tag("SWEPT_SURFACE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, swept_curve) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - swept_curve, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + swept_curve, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SweptSurface_<'a> { @@ -32801,7 +38137,8 @@ impl<'a> HasId for SweptSurface_<'a> { } } #[derive(Debug)] -pub struct SymbolColour_<'a> { // entity +pub struct SymbolColour_<'a> { + // entity pub colour_of_symbol: Colour<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -32819,9 +38156,13 @@ impl<'a> ParseFromChunks<'a> for SymbolColour_<'a> { let mut i = 0; let (s, _) = tag("SYMBOL_COLOUR(")(strs[0])?; let (s, colour_of_symbol) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - colour_of_symbol, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + colour_of_symbol, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SymbolColour_<'a> { @@ -32830,7 +38171,8 @@ impl<'a> HasId for SymbolColour_<'a> { } } #[derive(Debug)] -pub struct SymbolRepresentation_<'a> { // entity +pub struct SymbolRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -32851,12 +38193,17 @@ impl<'a> ParseFromChunks<'a> for SymbolRepresentation_<'a> { let (s, _) = tag("SYMBOL_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SymbolRepresentation_<'a> { @@ -32867,7 +38214,8 @@ impl<'a> HasId for SymbolRepresentation_<'a> { } } #[derive(Debug)] -pub struct SymbolRepresentationMap_<'a> { // entity +pub struct SymbolRepresentationMap_<'a> { + // entity pub mapping_origin: RepresentationItem<'a>, pub mapped_representation: Representation<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -32885,12 +38233,18 @@ impl<'a> ParseFromChunks<'a> for SymbolRepresentationMap_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("SYMBOL_REPRESENTATION_MAP(")(strs[0])?; - let (s, mapping_origin) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, mapped_representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - mapping_origin, - mapped_representation, - _marker: std::marker::PhantomData})) + let (s, mapping_origin) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, mapped_representation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + mapping_origin, + mapped_representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SymbolRepresentationMap_<'a> { @@ -32900,7 +38254,8 @@ impl<'a> HasId for SymbolRepresentationMap_<'a> { } } #[derive(Debug)] -pub struct SymbolStyle_<'a> { // entity +pub struct SymbolStyle_<'a> { + // entity pub name: Label<'a>, pub style_of_symbol: SymbolStyleSelect<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -32919,11 +38274,16 @@ impl<'a> ParseFromChunks<'a> for SymbolStyle_<'a> { let mut i = 0; let (s, _) = tag("SYMBOL_STYLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, style_of_symbol) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - style_of_symbol, - _marker: std::marker::PhantomData})) + let (s, style_of_symbol) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + style_of_symbol, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SymbolStyle_<'a> { @@ -32937,7 +38297,8 @@ pub struct SymbolStyleSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambiguou pub type SymbolStyleSelect<'a> = Id>; #[derive(Debug)] -pub struct SymbolTarget_<'a> { // entity +pub struct SymbolTarget_<'a> { + // entity pub name: Label<'a>, pub placement: Axis2Placement<'a>, pub x_scale: PositiveRatioMeasure<'a>, @@ -32961,12 +38322,16 @@ impl<'a> ParseFromChunks<'a> for SymbolTarget_<'a> { let (s, placement) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, x_scale) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, y_scale) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - placement, - x_scale, - y_scale, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + placement, + x_scale, + y_scale, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SymbolTarget_<'a> { @@ -32978,7 +38343,8 @@ impl<'a> HasId for SymbolTarget_<'a> { } } #[derive(Debug)] -pub struct SymmetricShapeAspect_<'a> { // entity +pub struct SymmetricShapeAspect_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -33000,14 +38366,19 @@ impl<'a> ParseFromChunks<'a> for SymmetricShapeAspect_<'a> { let (s, _) = tag("SYMMETRIC_SHAPE_ASPECT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SymmetricShapeAspect_<'a> { @@ -33019,7 +38390,8 @@ impl<'a> HasId for SymmetricShapeAspect_<'a> { } } #[derive(Debug)] -pub struct SymmetryTolerance_<'a> { // entity +pub struct SymmetryTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -33043,15 +38415,21 @@ impl<'a> ParseFromChunks<'a> for SymmetryTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, datum_system) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - datum_system, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, datum_system) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + datum_system, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for SymmetryTolerance_<'a> { @@ -33064,7 +38442,8 @@ impl<'a> HasId for SymmetryTolerance_<'a> { } } #[derive(Debug)] -pub struct TactileAppearanceRepresentation_<'a> { // entity +pub struct TactileAppearanceRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -33085,12 +38464,17 @@ impl<'a> ParseFromChunks<'a> for TactileAppearanceRepresentation_<'a> { let (s, _) = tag("TACTILE_APPEARANCE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TactileAppearanceRepresentation_<'a> { @@ -33101,7 +38485,8 @@ impl<'a> HasId for TactileAppearanceRepresentation_<'a> { } } #[derive(Debug)] -pub struct TanFunction_<'a> { // entity +pub struct TanFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -33119,9 +38504,13 @@ impl<'a> ParseFromChunks<'a> for TanFunction_<'a> { let mut i = 0; let (s, _) = tag("TAN_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TanFunction_<'a> { @@ -33130,7 +38519,8 @@ impl<'a> HasId for TanFunction_<'a> { } } #[derive(Debug)] -pub struct Tangent_<'a> { // entity +pub struct Tangent_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -33152,14 +38542,19 @@ impl<'a> ParseFromChunks<'a> for Tangent_<'a> { let (s, _) = tag("TANGENT(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Tangent_<'a> { @@ -33171,7 +38566,8 @@ impl<'a> HasId for Tangent_<'a> { } } #[derive(Debug)] -pub struct Taper_<'a> { // entity +pub struct Taper_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -33193,14 +38589,19 @@ impl<'a> ParseFromChunks<'a> for Taper_<'a> { let (s, _) = tag("TAPER(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Taper_<'a> { @@ -33212,7 +38613,8 @@ impl<'a> HasId for Taper_<'a> { } } #[derive(Debug)] -pub struct TeeProfile_<'a> { // entity +pub struct TeeProfile_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -33234,14 +38636,19 @@ impl<'a> ParseFromChunks<'a> for TeeProfile_<'a> { let (s, _) = tag("TEE_PROFILE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TeeProfile_<'a> { @@ -33253,7 +38660,8 @@ impl<'a> HasId for TeeProfile_<'a> { } } #[derive(Debug)] -pub struct TerminatorSymbol_<'a> { // entity +pub struct TerminatorSymbol_<'a> { + // entity pub name: Label<'a>, pub styles: Vec>, pub item: RepresentationItem<'a>, @@ -33274,15 +38682,21 @@ impl<'a> ParseFromChunks<'a> for TerminatorSymbol_<'a> { let mut i = 0; let (s, _) = tag("TERMINATOR_SYMBOL(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, styles) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, styles) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, item) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, annotated_curve) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - styles, - item, - annotated_curve, - _marker: std::marker::PhantomData})) + let (s, annotated_curve) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + styles, + item, + annotated_curve, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TerminatorSymbol_<'a> { @@ -33301,10 +38715,10 @@ impl<'a> Parse<'a> for Text<'a> { } } impl<'a> HasId for Text<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } - #[derive(Debug)] pub struct TextAlignment<'a>(pub Label<'a>, std::marker::PhantomData<&'a ()>); // redeclared impl<'a> Parse<'a> for TextAlignment<'a> { @@ -33318,7 +38732,6 @@ impl<'a> HasId for TextAlignment<'a> { } } - #[derive(Debug)] pub struct TextDelineation<'a>(pub Label<'a>, std::marker::PhantomData<&'a ()>); // redeclared impl<'a> Parse<'a> for TextDelineation<'a> { @@ -33333,7 +38746,8 @@ impl<'a> HasId for TextDelineation<'a> { } #[derive(Debug)] -pub struct TextLiteral_<'a> { // entity +pub struct TextLiteral_<'a> { + // entity pub name: Label<'a>, pub literal: PresentableText<'a>, pub placement: Axis2Placement<'a>, @@ -33361,14 +38775,18 @@ impl<'a> ParseFromChunks<'a> for TextLiteral_<'a> { let (s, alignment) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, path) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, font) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - literal, - placement, - alignment, - path, - font, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + literal, + placement, + alignment, + path, + font, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TextLiteral_<'a> { @@ -33382,7 +38800,8 @@ impl<'a> HasId for TextLiteral_<'a> { } } #[derive(Debug)] -pub struct TextLiteralWithAssociatedCurves_<'a> { // entity +pub struct TextLiteralWithAssociatedCurves_<'a> { + // entity pub name: Label<'a>, pub literal: PresentableText<'a>, pub placement: Axis2Placement<'a>, @@ -33412,15 +38831,19 @@ impl<'a> ParseFromChunks<'a> for TextLiteralWithAssociatedCurves_<'a> { let (s, path) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, font) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, associated_curves) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - literal, - placement, - alignment, - path, - font, - associated_curves, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + literal, + placement, + alignment, + path, + font, + associated_curves, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TextLiteralWithAssociatedCurves_<'a> { @@ -33435,7 +38858,8 @@ impl<'a> HasId for TextLiteralWithAssociatedCurves_<'a> { } } #[derive(Debug)] -pub struct TextLiteralWithBlankingBox_<'a> { // entity +pub struct TextLiteralWithBlankingBox_<'a> { + // entity pub name: Label<'a>, pub literal: PresentableText<'a>, pub placement: Axis2Placement<'a>, @@ -33465,15 +38889,19 @@ impl<'a> ParseFromChunks<'a> for TextLiteralWithBlankingBox_<'a> { let (s, path) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, font) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, blanking) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - literal, - placement, - alignment, - path, - font, - blanking, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + literal, + placement, + alignment, + path, + font, + blanking, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TextLiteralWithBlankingBox_<'a> { @@ -33488,7 +38916,8 @@ impl<'a> HasId for TextLiteralWithBlankingBox_<'a> { } } #[derive(Debug)] -pub struct TextLiteralWithDelineation_<'a> { // entity +pub struct TextLiteralWithDelineation_<'a> { + // entity pub name: Label<'a>, pub literal: PresentableText<'a>, pub placement: Axis2Placement<'a>, @@ -33518,15 +38947,19 @@ impl<'a> ParseFromChunks<'a> for TextLiteralWithDelineation_<'a> { let (s, path) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, font) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, delineation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - literal, - placement, - alignment, - path, - font, - delineation, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + literal, + placement, + alignment, + path, + font, + delineation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TextLiteralWithDelineation_<'a> { @@ -33541,7 +38974,8 @@ impl<'a> HasId for TextLiteralWithDelineation_<'a> { } } #[derive(Debug)] -pub struct TextLiteralWithExtent_<'a> { // entity +pub struct TextLiteralWithExtent_<'a> { + // entity pub name: Label<'a>, pub literal: PresentableText<'a>, pub placement: Axis2Placement<'a>, @@ -33571,15 +39005,19 @@ impl<'a> ParseFromChunks<'a> for TextLiteralWithExtent_<'a> { let (s, path) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, font) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, extent) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - literal, - placement, - alignment, - path, - font, - extent, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + literal, + placement, + alignment, + path, + font, + extent, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TextLiteralWithExtent_<'a> { @@ -33598,7 +39036,8 @@ pub struct TextOrCharacter_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous pub type TextOrCharacter<'a> = Id>; #[derive(Debug)] -pub enum TextPath<'a> { // enum +pub enum TextPath<'a> { + // enum Left, Right, Up, @@ -33620,11 +39059,13 @@ impl<'a> Parse<'a> for TextPath<'a> { } } impl<'a> HasId for TextPath<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct TextStringRepresentation_<'a> { // entity +pub struct TextStringRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -33645,12 +39086,17 @@ impl<'a> ParseFromChunks<'a> for TextStringRepresentation_<'a> { let (s, _) = tag("TEXT_STRING_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TextStringRepresentation_<'a> { @@ -33665,7 +39111,8 @@ pub struct TextStringRepresentationItem_<'a>(std::marker::PhantomData<&'a ()>); pub type TextStringRepresentationItem<'a> = Id>; #[derive(Debug)] -pub struct TextStyle_<'a> { // entity +pub struct TextStyle_<'a> { + // entity pub name: Label<'a>, pub character_appearance: CharacterStyleSelect<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -33684,11 +39131,16 @@ impl<'a> ParseFromChunks<'a> for TextStyle_<'a> { let mut i = 0; let (s, _) = tag("TEXT_STYLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, character_appearance) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - character_appearance, - _marker: std::marker::PhantomData})) + let (s, character_appearance) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + character_appearance, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TextStyle_<'a> { @@ -33698,7 +39150,8 @@ impl<'a> HasId for TextStyle_<'a> { } } #[derive(Debug)] -pub struct TextStyleForDefinedFont_<'a> { // entity +pub struct TextStyleForDefinedFont_<'a> { + // entity pub text_colour: Colour<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -33716,9 +39169,13 @@ impl<'a> ParseFromChunks<'a> for TextStyleForDefinedFont_<'a> { let mut i = 0; let (s, _) = tag("TEXT_STYLE_FOR_DEFINED_FONT(")(strs[0])?; let (s, text_colour) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - text_colour, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + text_colour, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TextStyleForDefinedFont_<'a> { @@ -33727,10 +39184,11 @@ impl<'a> HasId for TextStyleForDefinedFont_<'a> { } } #[derive(Debug)] -pub struct TextStyleWithBoxCharacteristics_<'a> { // entity +pub struct TextStyleWithBoxCharacteristics_<'a> { + // entity pub name: Label<'a>, pub character_appearance: CharacterStyleSelect<'a>, - pub characteristics: ArrayVec::, 4>, + pub characteristics: ArrayVec, 4>, _marker: std::marker::PhantomData<&'a ()>, } pub type TextStyleWithBoxCharacteristics<'a> = Id>; @@ -33747,13 +39205,19 @@ impl<'a> ParseFromChunks<'a> for TextStyleWithBoxCharacteristics_<'a> { let mut i = 0; let (s, _) = tag("TEXT_STYLE_WITH_BOX_CHARACTERISTICS(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, character_appearance) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, characteristics) = param_from_chunks::, 4>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - character_appearance, - characteristics, - _marker: std::marker::PhantomData})) + let (s, character_appearance) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, characteristics) = + param_from_chunks::, 4>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + character_appearance, + characteristics, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TextStyleWithBoxCharacteristics_<'a> { @@ -33764,7 +39228,8 @@ impl<'a> HasId for TextStyleWithBoxCharacteristics_<'a> { } } #[derive(Debug)] -pub struct TextStyleWithMirror_<'a> { // entity +pub struct TextStyleWithMirror_<'a> { + // entity pub name: Label<'a>, pub character_appearance: CharacterStyleSelect<'a>, pub mirror_placement: Axis2Placement<'a>, @@ -33784,13 +39249,18 @@ impl<'a> ParseFromChunks<'a> for TextStyleWithMirror_<'a> { let mut i = 0; let (s, _) = tag("TEXT_STYLE_WITH_MIRROR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, character_appearance) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, character_appearance) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, mirror_placement) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - character_appearance, - mirror_placement, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + character_appearance, + mirror_placement, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TextStyleWithMirror_<'a> { @@ -33801,7 +39271,8 @@ impl<'a> HasId for TextStyleWithMirror_<'a> { } } #[derive(Debug)] -pub struct TextStyleWithSpacing_<'a> { // entity +pub struct TextStyleWithSpacing_<'a> { + // entity pub name: Label<'a>, pub character_appearance: CharacterStyleSelect<'a>, pub character_spacing: CharacterSpacingSelect<'a>, @@ -33821,13 +39292,19 @@ impl<'a> ParseFromChunks<'a> for TextStyleWithSpacing_<'a> { let mut i = 0; let (s, _) = tag("TEXT_STYLE_WITH_SPACING(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, character_appearance) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, character_spacing) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - character_appearance, - character_spacing, - _marker: std::marker::PhantomData})) + let (s, character_appearance) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, character_spacing) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + character_appearance, + character_spacing, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TextStyleWithSpacing_<'a> { @@ -33845,16 +39322,19 @@ impl<'a> Parse<'a> for ThermodynamicTemperatureMeasure<'a> { } } impl<'a> HasId for ThermodynamicTemperatureMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct ThermodynamicTemperatureMeasureWithUnit_<'a> { // entity +pub struct ThermodynamicTemperatureMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, } -pub type ThermodynamicTemperatureMeasureWithUnit<'a> = Id>; +pub type ThermodynamicTemperatureMeasureWithUnit<'a> = + Id>; impl<'a> FromEntity<'a> for ThermodynamicTemperatureMeasureWithUnit_<'a> { fn try_from_entity(e: &'a Entity<'a>) -> Option<&'a Self> { match e { @@ -33869,10 +39349,14 @@ impl<'a> ParseFromChunks<'a> for ThermodynamicTemperatureMeasureWithUnit_<'a> { let (s, _) = tag("THERMODYNAMIC_TEMPERATURE_MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ThermodynamicTemperatureMeasureWithUnit_<'a> { @@ -33882,7 +39366,8 @@ impl<'a> HasId for ThermodynamicTemperatureMeasureWithUnit_<'a> { } } #[derive(Debug)] -pub struct ThermodynamicTemperatureUnit_<'a> { // entity +pub struct ThermodynamicTemperatureUnit_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -33900,9 +39385,13 @@ impl<'a> ParseFromChunks<'a> for ThermodynamicTemperatureUnit_<'a> { let mut i = 0; let (s, _) = tag("THERMODYNAMIC_TEMPERATURE_UNIT(")(strs[0])?; let (s, dimensions) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ThermodynamicTemperatureUnit_<'a> { @@ -33911,7 +39400,8 @@ impl<'a> HasId for ThermodynamicTemperatureUnit_<'a> { } } #[derive(Debug)] -pub struct Thread_<'a> { // entity +pub struct Thread_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -33931,10 +39421,14 @@ impl<'a> ParseFromChunks<'a> for Thread_<'a> { let (s, _) = tag("THREAD(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Thread_<'a> { @@ -33944,7 +39438,8 @@ impl<'a> HasId for Thread_<'a> { } } #[derive(Debug)] -pub struct TimeInterval_<'a> { // entity +pub struct TimeInterval_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -33966,11 +39461,15 @@ impl<'a> ParseFromChunks<'a> for TimeInterval_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TimeInterval_<'a> { @@ -33981,7 +39480,8 @@ impl<'a> HasId for TimeInterval_<'a> { } } #[derive(Debug)] -pub struct TimeIntervalAssignment_<'a> { // entity +pub struct TimeIntervalAssignment_<'a> { + // entity pub assigned_time_interval: TimeInterval<'a>, pub role: TimeIntervalRole<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -33999,12 +39499,17 @@ impl<'a> ParseFromChunks<'a> for TimeIntervalAssignment_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("TIME_INTERVAL_ASSIGNMENT(")(strs[0])?; - let (s, assigned_time_interval) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, assigned_time_interval) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, role) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - assigned_time_interval, - role, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + assigned_time_interval, + role, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TimeIntervalAssignment_<'a> { @@ -34014,7 +39519,8 @@ impl<'a> HasId for TimeIntervalAssignment_<'a> { } } #[derive(Debug)] -pub struct TimeIntervalBasedEffectivity_<'a> { // entity +pub struct TimeIntervalBasedEffectivity_<'a> { + // entity pub id: Identifier<'a>, pub effectivity_period: TimeInterval<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -34034,10 +39540,14 @@ impl<'a> ParseFromChunks<'a> for TimeIntervalBasedEffectivity_<'a> { let (s, _) = tag("TIME_INTERVAL_BASED_EFFECTIVITY(")(strs[0])?; let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, effectivity_period) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - effectivity_period, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + effectivity_period, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TimeIntervalBasedEffectivity_<'a> { @@ -34051,7 +39561,8 @@ pub struct TimeIntervalItem_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous pub type TimeIntervalItem<'a> = Id>; #[derive(Debug)] -pub struct TimeIntervalRole_<'a> { // entity +pub struct TimeIntervalRole_<'a> { + // entity pub name: Label<'a>, pub description: Option>, _marker: std::marker::PhantomData<&'a ()>, @@ -34071,10 +39582,14 @@ impl<'a> ParseFromChunks<'a> for TimeIntervalRole_<'a> { let (s, _) = tag("TIME_INTERVAL_ROLE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TimeIntervalRole_<'a> { @@ -34084,7 +39599,8 @@ impl<'a> HasId for TimeIntervalRole_<'a> { } } #[derive(Debug)] -pub struct TimeIntervalWithBounds_<'a> { // entity +pub struct TimeIntervalWithBounds_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -34109,17 +39625,24 @@ impl<'a> ParseFromChunks<'a> for TimeIntervalWithBounds_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, primary_bound) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, secondary_bound) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, duration) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - primary_bound, - secondary_bound, - duration, - _marker: std::marker::PhantomData})) + let (s, primary_bound) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, secondary_bound) = + param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, duration) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + name, + description, + primary_bound, + secondary_bound, + duration, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TimeIntervalWithBounds_<'a> { @@ -34140,11 +39663,13 @@ impl<'a> Parse<'a> for TimeMeasure<'a> { } } impl<'a> HasId for TimeMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct TimeMeasureWithUnit_<'a> { // entity +pub struct TimeMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -34164,10 +39689,14 @@ impl<'a> ParseFromChunks<'a> for TimeMeasureWithUnit_<'a> { let (s, _) = tag("TIME_MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TimeMeasureWithUnit_<'a> { @@ -34177,7 +39706,8 @@ impl<'a> HasId for TimeMeasureWithUnit_<'a> { } } #[derive(Debug)] -pub struct TimeUnit_<'a> { // entity +pub struct TimeUnit_<'a> { + // entity pub dimensions: DimensionalExponents<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -34195,9 +39725,13 @@ impl<'a> ParseFromChunks<'a> for TimeUnit_<'a> { let mut i = 0; let (s, _) = tag("TIME_UNIT(")(strs[0])?; let (s, dimensions) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - dimensions, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + dimensions, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TimeUnit_<'a> { @@ -34206,16 +39740,31 @@ impl<'a> HasId for TimeUnit_<'a> { } } #[derive(Debug)] -pub enum ToleranceDeviationSelect<'a> { // select +pub enum ToleranceDeviationSelect<'a> { + // select CurveToleranceDeviation(CurveToleranceDeviation<'a>), SurfaceToleranceDeviation(SurfaceToleranceDeviation<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for ToleranceDeviationSelect<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("CURVE_TOLERANCE_DEVIATION("), >::parse, char(')')), ToleranceDeviationSelect::CurveToleranceDeviation), - map(delimited(tag("SURFACE_TOLERANCE_DEVIATION("), >::parse, char(')')), ToleranceDeviationSelect::SurfaceToleranceDeviation), + map( + delimited( + tag("CURVE_TOLERANCE_DEVIATION("), + >::parse, + char(')'), + ), + ToleranceDeviationSelect::CurveToleranceDeviation, + ), + map( + delimited( + tag("SURFACE_TOLERANCE_DEVIATION("), + >::parse, + char(')'), + ), + ToleranceDeviationSelect::SurfaceToleranceDeviation, + ), ))(s) } } @@ -34233,16 +39782,31 @@ pub struct ToleranceMethodDefinition_<'a>(std::marker::PhantomData<&'a ()>); // pub type ToleranceMethodDefinition<'a> = Id>; #[derive(Debug)] -pub enum ToleranceParameterSelect<'a> { // select +pub enum ToleranceParameterSelect<'a> { + // select CurveToleranceParameter(CurveToleranceParameter<'a>), SurfaceToleranceParameter(SurfaceToleranceParameter<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for ToleranceParameterSelect<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("CURVE_TOLERANCE_PARAMETER("), >::parse, char(')')), ToleranceParameterSelect::CurveToleranceParameter), - map(delimited(tag("SURFACE_TOLERANCE_PARAMETER("), >::parse, char(')')), ToleranceParameterSelect::SurfaceToleranceParameter), + map( + delimited( + tag("CURVE_TOLERANCE_PARAMETER("), + >::parse, + char(')'), + ), + ToleranceParameterSelect::CurveToleranceParameter, + ), + map( + delimited( + tag("SURFACE_TOLERANCE_PARAMETER("), + >::parse, + char(')'), + ), + ToleranceParameterSelect::SurfaceToleranceParameter, + ), ))(s) } } @@ -34260,7 +39824,8 @@ pub struct ToleranceSelect_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous pub type ToleranceSelect<'a> = Id>; #[derive(Debug)] -pub struct ToleranceValue_<'a> { // entity +pub struct ToleranceValue_<'a> { + // entity pub lower_bound: MeasureWithUnit<'a>, pub upper_bound: MeasureWithUnit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -34280,10 +39845,14 @@ impl<'a> ParseFromChunks<'a> for ToleranceValue_<'a> { let (s, _) = tag("TOLERANCE_VALUE(")(strs[0])?; let (s, lower_bound) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, upper_bound) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - lower_bound, - upper_bound, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + lower_bound, + upper_bound, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ToleranceValue_<'a> { @@ -34293,7 +39862,8 @@ impl<'a> HasId for ToleranceValue_<'a> { } } #[derive(Debug)] -pub struct ToleranceZone_<'a> { // entity +pub struct ToleranceZone_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -34317,18 +39887,24 @@ impl<'a> ParseFromChunks<'a> for ToleranceZone_<'a> { let (s, _) = tag("TOLERANCE_ZONE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, defining_tolerance) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, defining_tolerance) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, form) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - defining_tolerance, - form, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + defining_tolerance, + form, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ToleranceZone_<'a> { @@ -34342,7 +39918,8 @@ impl<'a> HasId for ToleranceZone_<'a> { } } #[derive(Debug)] -pub struct ToleranceZoneDefinition_<'a> { // entity +pub struct ToleranceZoneDefinition_<'a> { + // entity pub zone: ToleranceZone<'a>, pub boundaries: Vec>, _marker: std::marker::PhantomData<&'a ()>, @@ -34362,10 +39939,14 @@ impl<'a> ParseFromChunks<'a> for ToleranceZoneDefinition_<'a> { let (s, _) = tag("TOLERANCE_ZONE_DEFINITION(")(strs[0])?; let (s, zone) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, boundaries) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - zone, - boundaries, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + zone, + boundaries, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ToleranceZoneDefinition_<'a> { @@ -34375,7 +39956,8 @@ impl<'a> HasId for ToleranceZoneDefinition_<'a> { } } #[derive(Debug)] -pub struct ToleranceZoneForm_<'a> { // entity +pub struct ToleranceZoneForm_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -34393,9 +39975,13 @@ impl<'a> ParseFromChunks<'a> for ToleranceZoneForm_<'a> { let mut i = 0; let (s, _) = tag("TOLERANCE_ZONE_FORM(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ToleranceZoneForm_<'a> { @@ -34404,7 +39990,8 @@ impl<'a> HasId for ToleranceZoneForm_<'a> { } } #[derive(Debug)] -pub struct TopologicalRepresentationItem_<'a> { // entity +pub struct TopologicalRepresentationItem_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -34422,9 +40009,13 @@ impl<'a> ParseFromChunks<'a> for TopologicalRepresentationItem_<'a> { let mut i = 0; let (s, _) = tag("TOPOLOGICAL_REPRESENTATION_ITEM(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TopologicalRepresentationItem_<'a> { @@ -34433,7 +40024,8 @@ impl<'a> HasId for TopologicalRepresentationItem_<'a> { } } #[derive(Debug)] -pub struct ToroidalSurface_<'a> { // entity +pub struct ToroidalSurface_<'a> { + // entity pub name: Label<'a>, pub position: Axis2Placement3d<'a>, pub major_radius: PositiveLengthMeasure<'a>, @@ -34455,14 +40047,20 @@ impl<'a> ParseFromChunks<'a> for ToroidalSurface_<'a> { let (s, _) = tag("TOROIDAL_SURFACE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, position) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, major_radius) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, minor_radius) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - major_radius, - minor_radius, - _marker: std::marker::PhantomData})) + let (s, major_radius) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, minor_radius) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + position, + major_radius, + minor_radius, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ToroidalSurface_<'a> { @@ -34474,7 +40072,8 @@ impl<'a> HasId for ToroidalSurface_<'a> { } } #[derive(Debug)] -pub struct Torus_<'a> { // entity +pub struct Torus_<'a> { + // entity pub name: Label<'a>, pub position: Axis1Placement<'a>, pub major_radius: PositiveLengthMeasure<'a>, @@ -34496,14 +40095,20 @@ impl<'a> ParseFromChunks<'a> for Torus_<'a> { let (s, _) = tag("TORUS(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, position) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, major_radius) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, minor_radius) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - position, - major_radius, - minor_radius, - _marker: std::marker::PhantomData})) + let (s, major_radius) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, minor_radius) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + position, + major_radius, + minor_radius, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Torus_<'a> { @@ -34515,7 +40120,8 @@ impl<'a> HasId for Torus_<'a> { } } #[derive(Debug)] -pub struct TotalRunoutTolerance_<'a> { // entity +pub struct TotalRunoutTolerance_<'a> { + // entity pub name: Label<'a>, pub description: Text<'a>, pub magnitude: MeasureWithUnit<'a>, @@ -34539,15 +40145,21 @@ impl<'a> ParseFromChunks<'a> for TotalRunoutTolerance_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, toleranced_shape_aspect) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, datum_system) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - magnitude, - toleranced_shape_aspect, - datum_system, - _marker: std::marker::PhantomData})) + let (s, toleranced_shape_aspect) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, datum_system) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + magnitude, + toleranced_shape_aspect, + datum_system, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TotalRunoutTolerance_<'a> { @@ -34564,7 +40176,8 @@ pub struct Transformation_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous s pub type Transformation<'a> = Id>; #[derive(Debug)] -pub enum TransitionCode<'a> { // enum +pub enum TransitionCode<'a> { + // enum Discontinuous, Continuous, ContSameGradient, @@ -34586,11 +40199,13 @@ impl<'a> Parse<'a> for TransitionCode<'a> { } } impl<'a> HasId for TransitionCode<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct TransitionFeature_<'a> { // entity +pub struct TransitionFeature_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -34612,14 +40227,19 @@ impl<'a> ParseFromChunks<'a> for TransitionFeature_<'a> { let (s, _) = tag("TRANSITION_FEATURE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TransitionFeature_<'a> { @@ -34631,16 +40251,31 @@ impl<'a> HasId for TransitionFeature_<'a> { } } #[derive(Debug)] -pub enum TranslationalRangeMeasure<'a> { // select +pub enum TranslationalRangeMeasure<'a> { + // select LengthMeasure(LengthMeasure<'a>), UnlimitedRange(UnlimitedRange<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for TranslationalRangeMeasure<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( - map(delimited(tag("LENGTH_MEASURE("), >::parse, char(')')), TranslationalRangeMeasure::LengthMeasure), - map(delimited(tag("UNLIMITED_RANGE("), >::parse, char(')')), TranslationalRangeMeasure::UnlimitedRange), + map( + delimited( + tag("LENGTH_MEASURE("), + >::parse, + char(')'), + ), + TranslationalRangeMeasure::LengthMeasure, + ), + map( + delimited( + tag("UNLIMITED_RANGE("), + >::parse, + char(')'), + ), + TranslationalRangeMeasure::UnlimitedRange, + ), ))(s) } } @@ -34654,11 +40289,12 @@ impl<'a> HasId for TranslationalRangeMeasure<'a> { } } #[derive(Debug)] -pub struct TrimmedCurve_<'a> { // entity +pub struct TrimmedCurve_<'a> { + // entity pub name: Label<'a>, pub basis_curve: Curve<'a>, - pub trim_1: ArrayVec::, 2>, - pub trim_2: ArrayVec::, 2>, + pub trim_1: ArrayVec, 2>, + pub trim_2: ArrayVec, 2>, pub sense_agreement: bool, pub master_representation: TrimmingPreference<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -34678,18 +40314,25 @@ impl<'a> ParseFromChunks<'a> for TrimmedCurve_<'a> { let (s, _) = tag("TRIMMED_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, basis_curve) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, trim_1) = param_from_chunks::, 2>>(false, s, &mut i, strs)?; - let (s, trim_2) = param_from_chunks::, 2>>(false, s, &mut i, strs)?; + let (s, trim_1) = + param_from_chunks::, 2>>(false, s, &mut i, strs)?; + let (s, trim_2) = + param_from_chunks::, 2>>(false, s, &mut i, strs)?; let (s, sense_agreement) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, master_representation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - basis_curve, - trim_1, - trim_2, - sense_agreement, - master_representation, - _marker: std::marker::PhantomData})) + let (s, master_representation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + basis_curve, + trim_1, + trim_2, + sense_agreement, + master_representation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TrimmedCurve_<'a> { @@ -34703,7 +40346,8 @@ impl<'a> HasId for TrimmedCurve_<'a> { } } #[derive(Debug)] -pub enum TrimmingPreference<'a> { // enum +pub enum TrimmingPreference<'a> { + // enum Cartesian, Parameter, Unspecified, @@ -34723,20 +40367,29 @@ impl<'a> Parse<'a> for TrimmingPreference<'a> { } } impl<'a> HasId for TrimmingPreference<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub enum TrimmingSelect<'a> { // select +pub enum TrimmingSelect<'a> { + // select CartesianPoint(CartesianPoint<'a>), ParameterValue(ParameterValue<'a>), - _Unused(std::marker::PhantomData<&'a ()>) + _Unused(std::marker::PhantomData<&'a ()>), } impl<'a> Parse<'a> for TrimmingSelect<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { alt(( map(>::parse, TrimmingSelect::CartesianPoint), - map(delimited(tag("PARAMETER_VALUE("), >::parse, char(')')), TrimmingSelect::ParameterValue), + map( + delimited( + tag("PARAMETER_VALUE("), + >::parse, + char(')'), + ), + TrimmingSelect::ParameterValue, + ), ))(s) } } @@ -34750,7 +40403,8 @@ impl<'a> HasId for TrimmingSelect<'a> { } } #[derive(Debug)] -pub struct TwoDirectionRepeatFactor_<'a> { // entity +pub struct TwoDirectionRepeatFactor_<'a> { + // entity pub name: Label<'a>, pub repeat_factor: Vector<'a>, pub second_repeat_factor: Vector<'a>, @@ -34772,11 +40426,15 @@ impl<'a> ParseFromChunks<'a> for TwoDirectionRepeatFactor_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, repeat_factor) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, second_repeat_factor) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - repeat_factor, - second_repeat_factor, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + repeat_factor, + second_repeat_factor, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TwoDirectionRepeatFactor_<'a> { @@ -34787,7 +40445,8 @@ impl<'a> HasId for TwoDirectionRepeatFactor_<'a> { } } #[derive(Debug)] -pub struct TypeQualifier_<'a> { // entity +pub struct TypeQualifier_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -34805,9 +40464,13 @@ impl<'a> ParseFromChunks<'a> for TypeQualifier_<'a> { let mut i = 0; let (s, _) = tag("TYPE_QUALIFIER(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for TypeQualifier_<'a> { @@ -34823,11 +40486,13 @@ impl<'a> Parse<'a> for UDirectionCount<'a> { } } impl<'a> HasId for UDirectionCount<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct UnaryBooleanExpression_<'a> { // entity +pub struct UnaryBooleanExpression_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -34845,9 +40510,13 @@ impl<'a> ParseFromChunks<'a> for UnaryBooleanExpression_<'a> { let mut i = 0; let (s, _) = tag("UNARY_BOOLEAN_EXPRESSION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UnaryBooleanExpression_<'a> { @@ -34856,7 +40525,8 @@ impl<'a> HasId for UnaryBooleanExpression_<'a> { } } #[derive(Debug)] -pub struct UnaryFunctionCall_<'a> { // entity +pub struct UnaryFunctionCall_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -34874,9 +40544,13 @@ impl<'a> ParseFromChunks<'a> for UnaryFunctionCall_<'a> { let mut i = 0; let (s, _) = tag("UNARY_FUNCTION_CALL(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UnaryFunctionCall_<'a> { @@ -34885,7 +40559,8 @@ impl<'a> HasId for UnaryFunctionCall_<'a> { } } #[derive(Debug)] -pub struct UnaryGenericExpression_<'a> { // entity +pub struct UnaryGenericExpression_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -34903,9 +40578,13 @@ impl<'a> ParseFromChunks<'a> for UnaryGenericExpression_<'a> { let mut i = 0; let (s, _) = tag("UNARY_GENERIC_EXPRESSION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UnaryGenericExpression_<'a> { @@ -34914,7 +40593,8 @@ impl<'a> HasId for UnaryGenericExpression_<'a> { } } #[derive(Debug)] -pub struct UnaryNumericExpression_<'a> { // entity +pub struct UnaryNumericExpression_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -34932,9 +40612,13 @@ impl<'a> ParseFromChunks<'a> for UnaryNumericExpression_<'a> { let mut i = 0; let (s, _) = tag("UNARY_NUMERIC_EXPRESSION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UnaryNumericExpression_<'a> { @@ -34943,7 +40627,8 @@ impl<'a> HasId for UnaryNumericExpression_<'a> { } } #[derive(Debug)] -pub struct UncertaintyAssignedRepresentation_<'a> { // entity +pub struct UncertaintyAssignedRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -34965,14 +40650,20 @@ impl<'a> ParseFromChunks<'a> for UncertaintyAssignedRepresentation_<'a> { let (s, _) = tag("UNCERTAINTY_ASSIGNED_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, uncertainty) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - uncertainty, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, uncertainty) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + uncertainty, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UncertaintyAssignedRepresentation_<'a> { @@ -34984,7 +40675,8 @@ impl<'a> HasId for UncertaintyAssignedRepresentation_<'a> { } } #[derive(Debug)] -pub struct UncertaintyMeasureWithUnit_<'a> { // entity +pub struct UncertaintyMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, pub name: Label<'a>, @@ -35008,12 +40700,16 @@ impl<'a> ParseFromChunks<'a> for UncertaintyMeasureWithUnit_<'a> { let (s, unit_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UncertaintyMeasureWithUnit_<'a> { @@ -35025,7 +40721,8 @@ impl<'a> HasId for UncertaintyMeasureWithUnit_<'a> { } } #[derive(Debug)] -pub struct UncertaintyQualifier_<'a> { // entity +pub struct UncertaintyQualifier_<'a> { + // entity pub measure_name: Label<'a>, pub description: Text<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -35045,10 +40742,14 @@ impl<'a> ParseFromChunks<'a> for UncertaintyQualifier_<'a> { let (s, _) = tag("UNCERTAINTY_QUALIFIER(")(strs[0])?; let (s, measure_name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - measure_name, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + measure_name, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UncertaintyQualifier_<'a> { @@ -35058,7 +40759,8 @@ impl<'a> HasId for UncertaintyQualifier_<'a> { } } #[derive(Debug)] -pub struct UnconstrainedPair_<'a> { // entity +pub struct UnconstrainedPair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -35081,16 +40783,22 @@ impl<'a> ParseFromChunks<'a> for UnconstrainedPair_<'a> { let (s, _) = tag("UNCONSTRAINED_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UnconstrainedPair_<'a> { @@ -35103,7 +40811,8 @@ impl<'a> HasId for UnconstrainedPair_<'a> { } } #[derive(Debug)] -pub struct UnconstrainedPairValue_<'a> { // entity +pub struct UnconstrainedPairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub actual_placement: Axis2Placement3d<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -35122,11 +40831,16 @@ impl<'a> ParseFromChunks<'a> for UnconstrainedPairValue_<'a> { let mut i = 0; let (s, _) = tag("UNCONSTRAINED_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, actual_placement) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - actual_placement, - _marker: std::marker::PhantomData})) + let (s, actual_placement) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + actual_placement, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UnconstrainedPairValue_<'a> { @@ -35136,7 +40850,8 @@ impl<'a> HasId for UnconstrainedPairValue_<'a> { } } #[derive(Debug)] -pub struct UniformCurve_<'a> { // entity +pub struct UniformCurve_<'a> { + // entity pub name: Label<'a>, pub degree: i64, pub control_points_list: Vec>, @@ -35160,18 +40875,23 @@ impl<'a> ParseFromChunks<'a> for UniformCurve_<'a> { let (s, _) = tag("UNIFORM_CURVE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, degree) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, control_points_list) = param_from_chunks::>>(false, s, &mut i, strs)?; + let (s, control_points_list) = + param_from_chunks::>>(false, s, &mut i, strs)?; let (s, curve_form) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, closed_curve) = param_from_chunks::(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - degree, - control_points_list, - curve_form, - closed_curve, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + degree, + control_points_list, + curve_form, + closed_curve, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UniformCurve_<'a> { @@ -35185,7 +40905,8 @@ impl<'a> HasId for UniformCurve_<'a> { } } #[derive(Debug)] -pub struct UniformSurface_<'a> { // entity +pub struct UniformSurface_<'a> { + // entity pub name: Label<'a>, pub u_degree: i64, pub v_degree: i64, @@ -35212,21 +40933,27 @@ impl<'a> ParseFromChunks<'a> for UniformSurface_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, u_degree) = param_from_chunks::(false, s, &mut i, strs)?; let (s, v_degree) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, control_points_list) = param_from_chunks::>>>(false, s, &mut i, strs)?; - let (s, surface_form) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, control_points_list) = + param_from_chunks::>>>(false, s, &mut i, strs)?; + let (s, surface_form) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, u_closed) = param_from_chunks::(false, s, &mut i, strs)?; let (s, v_closed) = param_from_chunks::(false, s, &mut i, strs)?; let (s, self_intersect) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - u_degree, - v_degree, - control_points_list, - surface_form, - u_closed, - v_closed, - self_intersect, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + u_degree, + v_degree, + control_points_list, + surface_form, + u_closed, + v_closed, + self_intersect, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UniformSurface_<'a> { @@ -35246,7 +40973,8 @@ pub struct Unit_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous select pub type Unit<'a> = Id>; #[derive(Debug)] -pub struct UniversalPair_<'a> { // entity +pub struct UniversalPair_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub transform_item_1: RepresentationItem<'a>, @@ -35270,18 +40998,25 @@ impl<'a> ParseFromChunks<'a> for UniversalPair_<'a> { let (s, _) = tag("UNIVERSAL_PAIR(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, transform_item_1) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, transform_item_2) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_1) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, transform_item_2) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, joint) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, input_skew_angle) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - transform_item_1, - transform_item_2, - joint, - input_skew_angle, - _marker: std::marker::PhantomData})) + let (s, input_skew_angle) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + description, + transform_item_1, + transform_item_2, + joint, + input_skew_angle, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UniversalPair_<'a> { @@ -35295,7 +41030,8 @@ impl<'a> HasId for UniversalPair_<'a> { } } #[derive(Debug)] -pub struct UniversalPairRange_<'a> { // entity +pub struct UniversalPairRange_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub lower_limit_first_rotation: RotationalRangeMeasure<'a>, pub upper_limit_first_rotation: RotationalRangeMeasure<'a>, @@ -35317,17 +41053,25 @@ impl<'a> ParseFromChunks<'a> for UniversalPairRange_<'a> { let mut i = 0; let (s, _) = tag("UNIVERSAL_PAIR_RANGE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_first_rotation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_first_rotation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, lower_limit_second_rotation) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, upper_limit_second_rotation) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - lower_limit_first_rotation, - upper_limit_first_rotation, - lower_limit_second_rotation, - upper_limit_second_rotation, - _marker: std::marker::PhantomData})) + let (s, lower_limit_first_rotation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_first_rotation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, lower_limit_second_rotation) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, upper_limit_second_rotation) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + lower_limit_first_rotation, + upper_limit_first_rotation, + lower_limit_second_rotation, + upper_limit_second_rotation, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UniversalPairRange_<'a> { @@ -35340,7 +41084,8 @@ impl<'a> HasId for UniversalPairRange_<'a> { } } #[derive(Debug)] -pub struct UniversalPairValue_<'a> { // entity +pub struct UniversalPairValue_<'a> { + // entity pub applies_to_pair: KinematicPair<'a>, pub first_rotation_angle: PlaneAngleMeasure<'a>, pub second_rotation_angle: PlaneAngleMeasure<'a>, @@ -35360,13 +41105,19 @@ impl<'a> ParseFromChunks<'a> for UniversalPairValue_<'a> { let mut i = 0; let (s, _) = tag("UNIVERSAL_PAIR_VALUE(")(strs[0])?; let (s, applies_to_pair) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, first_rotation_angle) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, second_rotation_angle) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - applies_to_pair, - first_rotation_angle, - second_rotation_angle, - _marker: std::marker::PhantomData})) + let (s, first_rotation_angle) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, second_rotation_angle) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + applies_to_pair, + first_rotation_angle, + second_rotation_angle, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for UniversalPairValue_<'a> { @@ -35377,7 +41128,8 @@ impl<'a> HasId for UniversalPairValue_<'a> { } } #[derive(Debug)] -pub enum UnlimitedRange<'a> { // enum +pub enum UnlimitedRange<'a> { + // enum Unlimited, _Unused(std::marker::PhantomData<&'a ()>), } @@ -35393,7 +41145,8 @@ impl<'a> Parse<'a> for UnlimitedRange<'a> { } } impl<'a> HasId for UnlimitedRange<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] @@ -35404,11 +41157,13 @@ impl<'a> Parse<'a> for VDirectionCount<'a> { } } impl<'a> HasId for VDirectionCount<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct ValueFunction_<'a> { // entity +pub struct ValueFunction_<'a> { + // entity pub operand: GenericExpression<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -35426,9 +41181,13 @@ impl<'a> ParseFromChunks<'a> for ValueFunction_<'a> { let mut i = 0; let (s, _) = tag("VALUE_FUNCTION(")(strs[0])?; let (s, operand) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - operand, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + operand, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ValueFunction_<'a> { @@ -35441,7 +41200,8 @@ pub struct ValueQualifier_<'a>(std::marker::PhantomData<&'a ()>); // ambiguous s pub type ValueQualifier<'a> = Id>; #[derive(Debug)] -pub struct ValueRange_<'a> { // entity +pub struct ValueRange_<'a> { + // entity pub name: Label<'a>, pub item_element: CompoundItemDefinition<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -35460,11 +41220,16 @@ impl<'a> ParseFromChunks<'a> for ValueRange_<'a> { let mut i = 0; let (s, _) = tag("VALUE_RANGE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, item_element) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - item_element, - _marker: std::marker::PhantomData})) + let (s, item_element) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + item_element, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ValueRange_<'a> { @@ -35474,7 +41239,8 @@ impl<'a> HasId for ValueRange_<'a> { } } #[derive(Debug)] -pub struct ValueRepresentationItem_<'a> { // entity +pub struct ValueRepresentationItem_<'a> { + // entity pub name: Label<'a>, pub value_component: MeasureValue<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -35494,10 +41260,14 @@ impl<'a> ParseFromChunks<'a> for ValueRepresentationItem_<'a> { let (s, _) = tag("VALUE_REPRESENTATION_ITEM(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, value_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - value_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + value_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ValueRepresentationItem_<'a> { @@ -35507,7 +41277,8 @@ impl<'a> HasId for ValueRepresentationItem_<'a> { } } #[derive(Debug)] -pub struct Variable_<'a> { // entity +pub struct Variable_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type Variable<'a> = Id>; @@ -35522,16 +41293,20 @@ impl<'a> FromEntity<'a> for Variable_<'a> { impl<'a> ParseFromChunks<'a> for Variable_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("VARIABLE(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Variable_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct VariableSemantics_<'a> { // entity +pub struct VariableSemantics_<'a> { + // entity _marker: std::marker::PhantomData<&'a ()>, } pub type VariableSemantics<'a> = Id>; @@ -35546,16 +41321,20 @@ impl<'a> FromEntity<'a> for VariableSemantics_<'a> { impl<'a> ParseFromChunks<'a> for VariableSemantics_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let (s, _) = tag("VARIABLE_SEMANTICS(")(strs[0])?; - Ok((s, Self { - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for VariableSemantics_<'a> { - fn append_ids(&self, _v: &mut Vec) { - } + fn append_ids(&self, _v: &mut Vec) {} } #[derive(Debug)] -pub struct Vector_<'a> { // entity +pub struct Vector_<'a> { + // entity pub name: Label<'a>, pub orientation: Direction<'a>, pub magnitude: LengthMeasure<'a>, @@ -35577,11 +41356,15 @@ impl<'a> ParseFromChunks<'a> for Vector_<'a> { let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, orientation) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, magnitude) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - orientation, - magnitude, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + orientation, + magnitude, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Vector_<'a> { @@ -35597,7 +41380,8 @@ pub type VectorOrDirection<'a> = Id>; #[allow(non_snake_case)] #[derive(Debug)] -pub struct VectorStyle_<'a> { // entity +pub struct VectorStyle_<'a> { + // entity pub pre_defined_item__name: Label<'a>, pub curve_style__name: Label<'a>, pub curve_font: CurveFontOrScaledCurveFontSelect<'a>, @@ -35622,16 +41406,21 @@ impl<'a> ParseFromChunks<'a> for VectorStyle_<'a> { let (s, pre_defined_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; #[allow(non_snake_case)] let (s, curve_style__name) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, curve_font) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, curve_font) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_width) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, curve_colour) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - pre_defined_item__name, - curve_style__name, - curve_font, - curve_width, - curve_colour, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + pre_defined_item__name, + curve_style__name, + curve_font, + curve_width, + curve_colour, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for VectorStyle_<'a> { @@ -35644,7 +41433,8 @@ impl<'a> HasId for VectorStyle_<'a> { } } #[derive(Debug)] -pub struct VeeProfile_<'a> { // entity +pub struct VeeProfile_<'a> { + // entity pub name: Label<'a>, pub description: Option>, pub of_shape: ProductDefinitionShape<'a>, @@ -35666,14 +41456,19 @@ impl<'a> ParseFromChunks<'a> for VeeProfile_<'a> { let (s, _) = tag("VEE_PROFILE(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, of_shape) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, of_shape) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, product_definitional) = param_from_chunks::(true, s, &mut i, strs)?; - Ok((s, Self { - name, - description, - of_shape, - product_definitional, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + description, + of_shape, + product_definitional, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for VeeProfile_<'a> { @@ -35685,7 +41480,8 @@ impl<'a> HasId for VeeProfile_<'a> { } } #[derive(Debug)] -pub struct VersionedActionRequest_<'a> { // entity +pub struct VersionedActionRequest_<'a> { + // entity pub id: Identifier<'a>, pub version: Label<'a>, pub purpose: Text<'a>, @@ -35709,12 +41505,16 @@ impl<'a> ParseFromChunks<'a> for VersionedActionRequest_<'a> { let (s, version) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, purpose) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - version, - purpose, - description, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + id, + version, + purpose, + description, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for VersionedActionRequest_<'a> { @@ -35726,7 +41526,8 @@ impl<'a> HasId for VersionedActionRequest_<'a> { } } #[derive(Debug)] -pub struct VersionedActionRequestRelationship_<'a> { // entity +pub struct VersionedActionRequestRelationship_<'a> { + // entity pub id: Identifier<'a>, pub name: Label<'a>, pub description: Option>, @@ -35750,15 +41551,21 @@ impl<'a> ParseFromChunks<'a> for VersionedActionRequestRelationship_<'a> { let (s, id) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, description) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, relating_versioned_action_request) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, related_versioned_action_request) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - id, - name, - description, - relating_versioned_action_request, - related_versioned_action_request, - _marker: std::marker::PhantomData})) + let (s, relating_versioned_action_request) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, related_versioned_action_request) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + id, + name, + description, + relating_versioned_action_request, + related_versioned_action_request, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for VersionedActionRequestRelationship_<'a> { @@ -35771,7 +41578,8 @@ impl<'a> HasId for VersionedActionRequestRelationship_<'a> { } } #[derive(Debug)] -pub struct Vertex_<'a> { // entity +pub struct Vertex_<'a> { + // entity pub name: Label<'a>, _marker: std::marker::PhantomData<&'a ()>, } @@ -35789,9 +41597,13 @@ impl<'a> ParseFromChunks<'a> for Vertex_<'a> { let mut i = 0; let (s, _) = tag("VERTEX(")(strs[0])?; let (s, name) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for Vertex_<'a> { @@ -35800,7 +41612,8 @@ impl<'a> HasId for Vertex_<'a> { } } #[derive(Debug)] -pub struct VertexLoop_<'a> { // entity +pub struct VertexLoop_<'a> { + // entity pub name: Label<'a>, pub loop_vertex: Vertex<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -35820,10 +41633,14 @@ impl<'a> ParseFromChunks<'a> for VertexLoop_<'a> { let (s, _) = tag("VERTEX_LOOP(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, loop_vertex) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - loop_vertex, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + name, + loop_vertex, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for VertexLoop_<'a> { @@ -35834,7 +41651,8 @@ impl<'a> HasId for VertexLoop_<'a> { } #[allow(non_snake_case)] #[derive(Debug)] -pub struct VertexPoint_<'a> { // entity +pub struct VertexPoint_<'a> { + // entity pub representation_item__name: Label<'a>, pub vertex_geometry: Point<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -35853,12 +41671,17 @@ impl<'a> ParseFromChunks<'a> for VertexPoint_<'a> { let mut i = 0; let (s, _) = tag("VERTEX_POINT(")(strs[0])?; #[allow(non_snake_case)] - let (s, representation_item__name) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, representation_item__name) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, vertex_geometry) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - representation_item__name, - vertex_geometry, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + representation_item__name, + vertex_geometry, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for VertexPoint_<'a> { @@ -35868,7 +41691,8 @@ impl<'a> HasId for VertexPoint_<'a> { } } #[derive(Debug)] -pub struct ViewVolume_<'a> { // entity +pub struct ViewVolume_<'a> { + // entity pub projection_type: CentralOrParallel<'a>, pub projection_point: CartesianPoint<'a>, pub view_plane_distance: LengthMeasure<'a>, @@ -35893,26 +41717,35 @@ impl<'a> ParseFromChunks<'a> for ViewVolume_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("VIEW_VOLUME(")(strs[0])?; - let (s, projection_type) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, projection_point) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, view_plane_distance) = param_from_chunks::>(false, s, &mut i, strs)?; - let (s, front_plane_distance) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, projection_type) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, projection_point) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, view_plane_distance) = + param_from_chunks::>(false, s, &mut i, strs)?; + let (s, front_plane_distance) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, front_plane_clipping) = param_from_chunks::(false, s, &mut i, strs)?; - let (s, back_plane_distance) = param_from_chunks::>(false, s, &mut i, strs)?; + let (s, back_plane_distance) = + param_from_chunks::>(false, s, &mut i, strs)?; let (s, back_plane_clipping) = param_from_chunks::(false, s, &mut i, strs)?; let (s, view_volume_sides_clipping) = param_from_chunks::(false, s, &mut i, strs)?; let (s, view_window) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - projection_type, - projection_point, - view_plane_distance, - front_plane_distance, - front_plane_clipping, - back_plane_distance, - back_plane_clipping, - view_volume_sides_clipping, - view_window, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + projection_type, + projection_point, + view_plane_distance, + front_plane_distance, + front_plane_clipping, + back_plane_distance, + back_plane_clipping, + view_volume_sides_clipping, + view_window, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for ViewVolume_<'a> { @@ -35929,7 +41762,8 @@ impl<'a> HasId for ViewVolume_<'a> { } } #[derive(Debug)] -pub struct VisualAppearanceRepresentation_<'a> { // entity +pub struct VisualAppearanceRepresentation_<'a> { + // entity pub name: Label<'a>, pub items: Vec>, pub context_of_items: RepresentationContext<'a>, @@ -35950,12 +41784,17 @@ impl<'a> ParseFromChunks<'a> for VisualAppearanceRepresentation_<'a> { let (s, _) = tag("VISUAL_APPEARANCE_REPRESENTATION(")(strs[0])?; let (s, name) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, items) = param_from_chunks::>>(false, s, &mut i, strs)?; - let (s, context_of_items) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - name, - items, - context_of_items, - _marker: std::marker::PhantomData})) + let (s, context_of_items) = + param_from_chunks::>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + name, + items, + context_of_items, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for VisualAppearanceRepresentation_<'a> { @@ -35973,11 +41812,13 @@ impl<'a> Parse<'a> for VolumeMeasure<'a> { } } impl<'a> HasId for VolumeMeasure<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub struct VolumeMeasureWithUnit_<'a> { // entity +pub struct VolumeMeasureWithUnit_<'a> { + // entity pub value_component: MeasureValue<'a>, pub unit_component: Unit<'a>, _marker: std::marker::PhantomData<&'a ()>, @@ -35997,10 +41838,14 @@ impl<'a> ParseFromChunks<'a> for VolumeMeasureWithUnit_<'a> { let (s, _) = tag("VOLUME_MEASURE_WITH_UNIT(")(strs[0])?; let (s, value_component) = param_from_chunks::>(false, s, &mut i, strs)?; let (s, unit_component) = param_from_chunks::>(true, s, &mut i, strs)?; - Ok((s, Self { - value_component, - unit_component, - _marker: std::marker::PhantomData})) + Ok(( + s, + Self { + value_component, + unit_component, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for VolumeMeasureWithUnit_<'a> { @@ -36010,7 +41855,8 @@ impl<'a> HasId for VolumeMeasureWithUnit_<'a> { } } #[derive(Debug)] -pub struct VolumeUnit_<'a> { // entity +pub struct VolumeUnit_<'a> { + // entity pub elements: Vec>, _marker: std::marker::PhantomData<&'a ()>, } @@ -36027,10 +41873,15 @@ impl<'a> ParseFromChunks<'a> for VolumeUnit_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("VOLUME_UNIT(")(strs[0])?; - let (s, elements) = param_from_chunks::>>(true, s, &mut i, strs)?; - Ok((s, Self { - elements, - _marker: std::marker::PhantomData})) + let (s, elements) = + param_from_chunks::>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + elements, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for VolumeUnit_<'a> { @@ -36039,8 +41890,9 @@ impl<'a> HasId for VolumeUnit_<'a> { } } #[derive(Debug)] -pub struct XorExpression_<'a> { // entity - pub operands: ArrayVec::, 2>, +pub struct XorExpression_<'a> { + // entity + pub operands: ArrayVec, 2>, _marker: std::marker::PhantomData<&'a ()>, } pub type XorExpression<'a> = Id>; @@ -36056,10 +41908,15 @@ impl<'a> ParseFromChunks<'a> for XorExpression_<'a> { fn parse_chunks(strs: &[&'a str]) -> IResult<'a, Self> { let mut i = 0; let (s, _) = tag("XOR_EXPRESSION(")(strs[0])?; - let (s, operands) = param_from_chunks::, 2>>(true, s, &mut i, strs)?; - Ok((s, Self { - operands, - _marker: std::marker::PhantomData})) + let (s, operands) = + param_from_chunks::, 2>>(true, s, &mut i, strs)?; + Ok(( + s, + Self { + operands, + _marker: std::marker::PhantomData, + }, + )) } } impl<'a> HasId for XorExpression_<'a> { @@ -36075,11 +41932,13 @@ impl<'a> Parse<'a> for YearNumber<'a> { } } impl<'a> HasId for YearNumber<'a> { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } #[derive(Debug)] -pub enum YprEnumeration<'a> { // enum +pub enum YprEnumeration<'a> { + // enum Yaw, Pitch, Roll, @@ -36099,14 +41958,20 @@ impl<'a> Parse<'a> for YprEnumeration<'a> { } } impl<'a> HasId for YprEnumeration<'a> { - fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* nothing to do here */ + } } #[derive(Debug)] -pub struct YprRotation<'a>(pub Vec>, std::marker::PhantomData<&'a ()>); // aggregation +pub struct YprRotation<'a>( + pub Vec>, + std::marker::PhantomData<&'a ()>, +); // aggregation impl<'a> Parse<'a> for YprRotation<'a> { fn parse(s: &'a str) -> IResult<'a, Self> { - map(many0(>::parse), |r| Self(r, std::marker::PhantomData))(s) + map(many0(>::parse), |r| { + Self(r, std::marker::PhantomData) + })(s) } } impl<'a> HasId for YprRotation<'a> { @@ -36321,7 +42186,9 @@ pub enum Entity<'a> { ConnectedFaceSet(ConnectedFaceSet_<'a>), ConnectedFaceSubSet(ConnectedFaceSubSet_<'a>), ConstructiveGeometryRepresentation(ConstructiveGeometryRepresentation_<'a>), - ConstructiveGeometryRepresentationRelationship(ConstructiveGeometryRepresentationRelationship_<'a>), + ConstructiveGeometryRepresentationRelationship( + ConstructiveGeometryRepresentationRelationship_<'a>, + ), ContactRatioRepresentation(ContactRatioRepresentation_<'a>), ContextDependentInvisibility(ContextDependentInvisibility_<'a>), ContextDependentOverRidingStyledItem(ContextDependentOverRidingStyledItem_<'a>), @@ -36527,9 +42394,15 @@ pub enum Entity<'a> { GeometricToleranceWithDatumReference(GeometricToleranceWithDatumReference_<'a>), GeometricToleranceWithDefinedUnit(GeometricToleranceWithDefinedUnit_<'a>), GeometricalToleranceCallout(GeometricalToleranceCallout_<'a>), - GeometricallyBounded2dWireframeRepresentation(GeometricallyBounded2dWireframeRepresentation_<'a>), - GeometricallyBoundedSurfaceShapeRepresentation(GeometricallyBoundedSurfaceShapeRepresentation_<'a>), - GeometricallyBoundedWireframeShapeRepresentation(GeometricallyBoundedWireframeShapeRepresentation_<'a>), + GeometricallyBounded2dWireframeRepresentation( + GeometricallyBounded2dWireframeRepresentation_<'a>, + ), + GeometricallyBoundedSurfaceShapeRepresentation( + GeometricallyBoundedSurfaceShapeRepresentation_<'a>, + ), + GeometricallyBoundedWireframeShapeRepresentation( + GeometricallyBoundedWireframeShapeRepresentation_<'a>, + ), GlobalUncertaintyAssignedContext(GlobalUncertaintyAssignedContext_<'a>), GlobalUnitAssignedContext(GlobalUnitAssignedContext_<'a>), Group(Group_<'a>), @@ -36565,7 +42438,9 @@ pub enum Entity<'a> { KinematicAnalysisResult(KinematicAnalysisResult_<'a>), KinematicControl(KinematicControl_<'a>), KinematicFrameBackgroundRepresentation(KinematicFrameBackgroundRepresentation_<'a>), - KinematicFrameBackgroundRepresentationAssociation(KinematicFrameBackgroundRepresentationAssociation_<'a>), + KinematicFrameBackgroundRepresentationAssociation( + KinematicFrameBackgroundRepresentationAssociation_<'a>, + ), KinematicFrameBasedTransformation(KinematicFrameBasedTransformation_<'a>), KinematicGroundRepresentation(KinematicGroundRepresentation_<'a>), KinematicJoint(KinematicJoint_<'a>), @@ -36625,7 +42500,9 @@ pub enum Entity<'a> { MeasureRepresentationItem(MeasureRepresentationItem_<'a>), MeasureWithUnit(MeasureWithUnit_<'a>), MechanicalDesignGeometricPresentationArea(MechanicalDesignGeometricPresentationArea_<'a>), - MechanicalDesignGeometricPresentationRepresentation(MechanicalDesignGeometricPresentationRepresentation_<'a>), + MechanicalDesignGeometricPresentationRepresentation( + MechanicalDesignGeometricPresentationRepresentation_<'a>, + ), Mechanism(Mechanism_<'a>), MechanismBasePlacement(MechanismBasePlacement_<'a>), MinimumFunction(MinimumFunction_<'a>), @@ -36786,7 +42663,9 @@ pub enum Entity<'a> { ProductDefinitionEffectivity(ProductDefinitionEffectivity_<'a>), ProductDefinitionFormation(ProductDefinitionFormation_<'a>), ProductDefinitionFormationRelationship(ProductDefinitionFormationRelationship_<'a>), - ProductDefinitionFormationWithSpecifiedSource(ProductDefinitionFormationWithSpecifiedSource_<'a>), + ProductDefinitionFormationWithSpecifiedSource( + ProductDefinitionFormationWithSpecifiedSource_<'a>, + ), ProductDefinitionOccurrenceRelationship(ProductDefinitionOccurrenceRelationship_<'a>), ProductDefinitionProcess(ProductDefinitionProcess_<'a>), ProductDefinitionRelationship(ProductDefinitionRelationship_<'a>), @@ -36944,7 +42823,9 @@ pub enum Entity<'a> { SurfaceStyleParameterLine(SurfaceStyleParameterLine_<'a>), SurfaceStyleReflectanceAmbient(SurfaceStyleReflectanceAmbient_<'a>), SurfaceStyleReflectanceAmbientDiffuse(SurfaceStyleReflectanceAmbientDiffuse_<'a>), - SurfaceStyleReflectanceAmbientDiffuseSpecular(SurfaceStyleReflectanceAmbientDiffuseSpecular_<'a>), + SurfaceStyleReflectanceAmbientDiffuseSpecular( + SurfaceStyleReflectanceAmbientDiffuseSpecular_<'a>, + ), SurfaceStyleRendering(SurfaceStyleRendering_<'a>), SurfaceStyleRenderingWithProperties(SurfaceStyleRenderingWithProperties_<'a>), SurfaceStyleSegmentationCurve(SurfaceStyleSegmentationCurve_<'a>), @@ -37045,921 +42926,2318 @@ impl<'a> ParseFromChunks<'a> for Entity<'a> { many0(alt((alphanumeric1, tag("_")))), ))(strs[0])?; match r { - "ABS_FUNCTION" => AbsFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::AbsFunction(v))), - "ACOS_FUNCTION" => AcosFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::AcosFunction(v))), + "ABS_FUNCTION" => { + AbsFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::AbsFunction(v))) + } + "ACOS_FUNCTION" => { + AcosFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::AcosFunction(v))) + } "ACTION" => Action_::parse_chunks(strs).map(|(s, v)| (s, Entity::Action(v))), - "ACTION_ASSIGNMENT" => ActionAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionAssignment(v))), - "ACTION_DIRECTIVE" => ActionDirective_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionDirective(v))), - "ACTION_METHOD" => ActionMethod_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionMethod(v))), - "ACTION_METHOD_RELATIONSHIP" => ActionMethodRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionMethodRelationship(v))), - "ACTION_PROPERTY" => ActionProperty_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionProperty(v))), - "ACTION_PROPERTY_REPRESENTATION" => ActionPropertyRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionPropertyRepresentation(v))), - "ACTION_RELATIONSHIP" => ActionRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionRelationship(v))), - "ACTION_REQUEST_ASSIGNMENT" => ActionRequestAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionRequestAssignment(v))), - "ACTION_REQUEST_SOLUTION" => ActionRequestSolution_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionRequestSolution(v))), - "ACTION_REQUEST_STATUS" => ActionRequestStatus_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionRequestStatus(v))), - "ACTION_RESOURCE" => ActionResource_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionResource(v))), - "ACTION_RESOURCE_REQUIREMENT" => ActionResourceRequirement_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionResourceRequirement(v))), - "ACTION_RESOURCE_TYPE" => ActionResourceType_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionResourceType(v))), - "ACTION_STATUS" => ActionStatus_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionStatus(v))), + "ACTION_ASSIGNMENT" => { + ActionAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionAssignment(v))) + } + "ACTION_DIRECTIVE" => { + ActionDirective_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionDirective(v))) + } + "ACTION_METHOD" => { + ActionMethod_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionMethod(v))) + } + "ACTION_METHOD_RELATIONSHIP" => ActionMethodRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ActionMethodRelationship(v))), + "ACTION_PROPERTY" => { + ActionProperty_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionProperty(v))) + } + "ACTION_PROPERTY_REPRESENTATION" => ActionPropertyRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ActionPropertyRepresentation(v))), + "ACTION_RELATIONSHIP" => ActionRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ActionRelationship(v))), + "ACTION_REQUEST_ASSIGNMENT" => ActionRequestAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ActionRequestAssignment(v))), + "ACTION_REQUEST_SOLUTION" => ActionRequestSolution_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ActionRequestSolution(v))), + "ACTION_REQUEST_STATUS" => ActionRequestStatus_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ActionRequestStatus(v))), + "ACTION_RESOURCE" => { + ActionResource_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionResource(v))) + } + "ACTION_RESOURCE_REQUIREMENT" => ActionResourceRequirement_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ActionResourceRequirement(v))), + "ACTION_RESOURCE_TYPE" => ActionResourceType_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ActionResourceType(v))), + "ACTION_STATUS" => { + ActionStatus_::parse_chunks(strs).map(|(s, v)| (s, Entity::ActionStatus(v))) + } "ADDRESS" => Address_::parse_chunks(strs).map(|(s, v)| (s, Entity::Address(v))), - "ADVANCED_BREP_SHAPE_REPRESENTATION" => AdvancedBrepShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::AdvancedBrepShapeRepresentation(v))), - "ADVANCED_FACE" => AdvancedFace_::parse_chunks(strs).map(|(s, v)| (s, Entity::AdvancedFace(v))), - "ALTERNATE_PRODUCT_RELATIONSHIP" => AlternateProductRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::AlternateProductRelationship(v))), - "AMOUNT_OF_SUBSTANCE_MEASURE_WITH_UNIT" => AmountOfSubstanceMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::AmountOfSubstanceMeasureWithUnit(v))), - "AMOUNT_OF_SUBSTANCE_UNIT" => AmountOfSubstanceUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::AmountOfSubstanceUnit(v))), - "AND_EXPRESSION" => AndExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::AndExpression(v))), - "ANGULAR_DIMENSION" => AngularDimension_::parse_chunks(strs).map(|(s, v)| (s, Entity::AngularDimension(v))), - "ANGULAR_LOCATION" => AngularLocation_::parse_chunks(strs).map(|(s, v)| (s, Entity::AngularLocation(v))), - "ANGULAR_SIZE" => AngularSize_::parse_chunks(strs).map(|(s, v)| (s, Entity::AngularSize(v))), - "ANGULARITY_TOLERANCE" => AngularityTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::AngularityTolerance(v))), - "ANNOTATION_CURVE_OCCURRENCE" => AnnotationCurveOccurrence_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationCurveOccurrence(v))), - "ANNOTATION_FILL_AREA" => AnnotationFillArea_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationFillArea(v))), - "ANNOTATION_FILL_AREA_OCCURRENCE" => AnnotationFillAreaOccurrence_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationFillAreaOccurrence(v))), - "ANNOTATION_OCCURRENCE" => AnnotationOccurrence_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationOccurrence(v))), - "ANNOTATION_OCCURRENCE_ASSOCIATIVITY" => AnnotationOccurrenceAssociativity_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationOccurrenceAssociativity(v))), - "ANNOTATION_OCCURRENCE_RELATIONSHIP" => AnnotationOccurrenceRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationOccurrenceRelationship(v))), - "ANNOTATION_PLANE" => AnnotationPlane_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationPlane(v))), - "ANNOTATION_SUBFIGURE_OCCURRENCE" => AnnotationSubfigureOccurrence_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationSubfigureOccurrence(v))), - "ANNOTATION_SYMBOL" => AnnotationSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationSymbol(v))), - "ANNOTATION_SYMBOL_OCCURRENCE" => AnnotationSymbolOccurrence_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationSymbolOccurrence(v))), - "ANNOTATION_TEXT" => AnnotationText_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationText(v))), - "ANNOTATION_TEXT_CHARACTER" => AnnotationTextCharacter_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationTextCharacter(v))), - "ANNOTATION_TEXT_OCCURRENCE" => AnnotationTextOccurrence_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationTextOccurrence(v))), + "ADVANCED_BREP_SHAPE_REPRESENTATION" => { + AdvancedBrepShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AdvancedBrepShapeRepresentation(v))) + } + "ADVANCED_FACE" => { + AdvancedFace_::parse_chunks(strs).map(|(s, v)| (s, Entity::AdvancedFace(v))) + } + "ALTERNATE_PRODUCT_RELATIONSHIP" => AlternateProductRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AlternateProductRelationship(v))), + "AMOUNT_OF_SUBSTANCE_MEASURE_WITH_UNIT" => { + AmountOfSubstanceMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AmountOfSubstanceMeasureWithUnit(v))) + } + "AMOUNT_OF_SUBSTANCE_UNIT" => AmountOfSubstanceUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AmountOfSubstanceUnit(v))), + "AND_EXPRESSION" => { + AndExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::AndExpression(v))) + } + "ANGULAR_DIMENSION" => { + AngularDimension_::parse_chunks(strs).map(|(s, v)| (s, Entity::AngularDimension(v))) + } + "ANGULAR_LOCATION" => { + AngularLocation_::parse_chunks(strs).map(|(s, v)| (s, Entity::AngularLocation(v))) + } + "ANGULAR_SIZE" => { + AngularSize_::parse_chunks(strs).map(|(s, v)| (s, Entity::AngularSize(v))) + } + "ANGULARITY_TOLERANCE" => AngularityTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AngularityTolerance(v))), + "ANNOTATION_CURVE_OCCURRENCE" => AnnotationCurveOccurrence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AnnotationCurveOccurrence(v))), + "ANNOTATION_FILL_AREA" => AnnotationFillArea_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AnnotationFillArea(v))), + "ANNOTATION_FILL_AREA_OCCURRENCE" => AnnotationFillAreaOccurrence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AnnotationFillAreaOccurrence(v))), + "ANNOTATION_OCCURRENCE" => AnnotationOccurrence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AnnotationOccurrence(v))), + "ANNOTATION_OCCURRENCE_ASSOCIATIVITY" => { + AnnotationOccurrenceAssociativity_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AnnotationOccurrenceAssociativity(v))) + } + "ANNOTATION_OCCURRENCE_RELATIONSHIP" => { + AnnotationOccurrenceRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AnnotationOccurrenceRelationship(v))) + } + "ANNOTATION_PLANE" => { + AnnotationPlane_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationPlane(v))) + } + "ANNOTATION_SUBFIGURE_OCCURRENCE" => AnnotationSubfigureOccurrence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AnnotationSubfigureOccurrence(v))), + "ANNOTATION_SYMBOL" => { + AnnotationSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationSymbol(v))) + } + "ANNOTATION_SYMBOL_OCCURRENCE" => AnnotationSymbolOccurrence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AnnotationSymbolOccurrence(v))), + "ANNOTATION_TEXT" => { + AnnotationText_::parse_chunks(strs).map(|(s, v)| (s, Entity::AnnotationText(v))) + } + "ANNOTATION_TEXT_CHARACTER" => AnnotationTextCharacter_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AnnotationTextCharacter(v))), + "ANNOTATION_TEXT_OCCURRENCE" => AnnotationTextOccurrence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AnnotationTextOccurrence(v))), "APEX" => Apex_::parse_chunks(strs).map(|(s, v)| (s, Entity::Apex(v))), - "APPLICATION_CONTEXT" => ApplicationContext_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApplicationContext(v))), - "APPLICATION_CONTEXT_ELEMENT" => ApplicationContextElement_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApplicationContextElement(v))), - "APPLICATION_CONTEXT_RELATIONSHIP" => ApplicationContextRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApplicationContextRelationship(v))), - "APPLICATION_PROTOCOL_DEFINITION" => ApplicationProtocolDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApplicationProtocolDefinition(v))), - "APPLIED_ACTION_ASSIGNMENT" => AppliedActionAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedActionAssignment(v))), - "APPLIED_ACTION_REQUEST_ASSIGNMENT" => AppliedActionRequestAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedActionRequestAssignment(v))), - "APPLIED_APPROVAL_ASSIGNMENT" => AppliedApprovalAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedApprovalAssignment(v))), - "APPLIED_AREA" => AppliedArea_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedArea(v))), - "APPLIED_CERTIFICATION_ASSIGNMENT" => AppliedCertificationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedCertificationAssignment(v))), - "APPLIED_CLASSIFICATION_ASSIGNMENT" => AppliedClassificationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedClassificationAssignment(v))), - "APPLIED_CONTRACT_ASSIGNMENT" => AppliedContractAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedContractAssignment(v))), - "APPLIED_DATE_AND_TIME_ASSIGNMENT" => AppliedDateAndTimeAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedDateAndTimeAssignment(v))), - "APPLIED_DATE_ASSIGNMENT" => AppliedDateAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedDateAssignment(v))), - "APPLIED_DOCUMENT_REFERENCE" => AppliedDocumentReference_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedDocumentReference(v))), - "APPLIED_DOCUMENT_USAGE_CONSTRAINT_ASSIGNMENT" => AppliedDocumentUsageConstraintAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedDocumentUsageConstraintAssignment(v))), - "APPLIED_EFFECTIVITY_ASSIGNMENT" => AppliedEffectivityAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedEffectivityAssignment(v))), - "APPLIED_EVENT_OCCURRENCE_ASSIGNMENT" => AppliedEventOccurrenceAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedEventOccurrenceAssignment(v))), - "APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT" => AppliedExternalIdentificationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedExternalIdentificationAssignment(v))), - "APPLIED_GROUP_ASSIGNMENT" => AppliedGroupAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedGroupAssignment(v))), - "APPLIED_IDENTIFICATION_ASSIGNMENT" => AppliedIdentificationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedIdentificationAssignment(v))), - "APPLIED_INEFFECTIVITY_ASSIGNMENT" => AppliedIneffectivityAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedIneffectivityAssignment(v))), - "APPLIED_NAME_ASSIGNMENT" => AppliedNameAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedNameAssignment(v))), - "APPLIED_ORGANIZATION_ASSIGNMENT" => AppliedOrganizationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedOrganizationAssignment(v))), - "APPLIED_ORGANIZATIONAL_PROJECT_ASSIGNMENT" => AppliedOrganizationalProjectAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedOrganizationalProjectAssignment(v))), - "APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT" => AppliedPersonAndOrganizationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedPersonAndOrganizationAssignment(v))), - "APPLIED_PRESENTED_ITEM" => AppliedPresentedItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedPresentedItem(v))), - "APPLIED_SECURITY_CLASSIFICATION_ASSIGNMENT" => AppliedSecurityClassificationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedSecurityClassificationAssignment(v))), - "APPLIED_TIME_INTERVAL_ASSIGNMENT" => AppliedTimeIntervalAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedTimeIntervalAssignment(v))), + "APPLICATION_CONTEXT" => ApplicationContext_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ApplicationContext(v))), + "APPLICATION_CONTEXT_ELEMENT" => ApplicationContextElement_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ApplicationContextElement(v))), + "APPLICATION_CONTEXT_RELATIONSHIP" => { + ApplicationContextRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ApplicationContextRelationship(v))) + } + "APPLICATION_PROTOCOL_DEFINITION" => ApplicationProtocolDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ApplicationProtocolDefinition(v))), + "APPLIED_ACTION_ASSIGNMENT" => AppliedActionAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedActionAssignment(v))), + "APPLIED_ACTION_REQUEST_ASSIGNMENT" => { + AppliedActionRequestAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedActionRequestAssignment(v))) + } + "APPLIED_APPROVAL_ASSIGNMENT" => AppliedApprovalAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedApprovalAssignment(v))), + "APPLIED_AREA" => { + AppliedArea_::parse_chunks(strs).map(|(s, v)| (s, Entity::AppliedArea(v))) + } + "APPLIED_CERTIFICATION_ASSIGNMENT" => { + AppliedCertificationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedCertificationAssignment(v))) + } + "APPLIED_CLASSIFICATION_ASSIGNMENT" => { + AppliedClassificationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedClassificationAssignment(v))) + } + "APPLIED_CONTRACT_ASSIGNMENT" => AppliedContractAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedContractAssignment(v))), + "APPLIED_DATE_AND_TIME_ASSIGNMENT" => AppliedDateAndTimeAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedDateAndTimeAssignment(v))), + "APPLIED_DATE_ASSIGNMENT" => AppliedDateAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedDateAssignment(v))), + "APPLIED_DOCUMENT_REFERENCE" => AppliedDocumentReference_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedDocumentReference(v))), + "APPLIED_DOCUMENT_USAGE_CONSTRAINT_ASSIGNMENT" => { + AppliedDocumentUsageConstraintAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedDocumentUsageConstraintAssignment(v))) + } + "APPLIED_EFFECTIVITY_ASSIGNMENT" => AppliedEffectivityAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedEffectivityAssignment(v))), + "APPLIED_EVENT_OCCURRENCE_ASSIGNMENT" => { + AppliedEventOccurrenceAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedEventOccurrenceAssignment(v))) + } + "APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT" => { + AppliedExternalIdentificationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedExternalIdentificationAssignment(v))) + } + "APPLIED_GROUP_ASSIGNMENT" => AppliedGroupAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedGroupAssignment(v))), + "APPLIED_IDENTIFICATION_ASSIGNMENT" => { + AppliedIdentificationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedIdentificationAssignment(v))) + } + "APPLIED_INEFFECTIVITY_ASSIGNMENT" => { + AppliedIneffectivityAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedIneffectivityAssignment(v))) + } + "APPLIED_NAME_ASSIGNMENT" => AppliedNameAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedNameAssignment(v))), + "APPLIED_ORGANIZATION_ASSIGNMENT" => AppliedOrganizationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedOrganizationAssignment(v))), + "APPLIED_ORGANIZATIONAL_PROJECT_ASSIGNMENT" => { + AppliedOrganizationalProjectAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedOrganizationalProjectAssignment(v))) + } + "APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT" => { + AppliedPersonAndOrganizationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedPersonAndOrganizationAssignment(v))) + } + "APPLIED_PRESENTED_ITEM" => AppliedPresentedItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedPresentedItem(v))), + "APPLIED_SECURITY_CLASSIFICATION_ASSIGNMENT" => { + AppliedSecurityClassificationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedSecurityClassificationAssignment(v))) + } + "APPLIED_TIME_INTERVAL_ASSIGNMENT" => { + AppliedTimeIntervalAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AppliedTimeIntervalAssignment(v))) + } "APPROVAL" => Approval_::parse_chunks(strs).map(|(s, v)| (s, Entity::Approval(v))), - "APPROVAL_ASSIGNMENT" => ApprovalAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApprovalAssignment(v))), - "APPROVAL_DATE_TIME" => ApprovalDateTime_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApprovalDateTime(v))), - "APPROVAL_PERSON_ORGANIZATION" => ApprovalPersonOrganization_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApprovalPersonOrganization(v))), - "APPROVAL_RELATIONSHIP" => ApprovalRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApprovalRelationship(v))), - "APPROVAL_ROLE" => ApprovalRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApprovalRole(v))), - "APPROVAL_STATUS" => ApprovalStatus_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApprovalStatus(v))), - "APPROXIMATION_TOLERANCE" => ApproximationTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApproximationTolerance(v))), - "APPROXIMATION_TOLERANCE_DEVIATION" => ApproximationToleranceDeviation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApproximationToleranceDeviation(v))), - "APPROXIMATION_TOLERANCE_PARAMETER" => ApproximationToleranceParameter_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApproximationToleranceParameter(v))), + "APPROVAL_ASSIGNMENT" => ApprovalAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ApprovalAssignment(v))), + "APPROVAL_DATE_TIME" => { + ApprovalDateTime_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApprovalDateTime(v))) + } + "APPROVAL_PERSON_ORGANIZATION" => ApprovalPersonOrganization_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ApprovalPersonOrganization(v))), + "APPROVAL_RELATIONSHIP" => ApprovalRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ApprovalRelationship(v))), + "APPROVAL_ROLE" => { + ApprovalRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApprovalRole(v))) + } + "APPROVAL_STATUS" => { + ApprovalStatus_::parse_chunks(strs).map(|(s, v)| (s, Entity::ApprovalStatus(v))) + } + "APPROXIMATION_TOLERANCE" => ApproximationTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ApproximationTolerance(v))), + "APPROXIMATION_TOLERANCE_DEVIATION" => { + ApproximationToleranceDeviation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ApproximationToleranceDeviation(v))) + } + "APPROXIMATION_TOLERANCE_PARAMETER" => { + ApproximationToleranceParameter_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ApproximationToleranceParameter(v))) + } "AREA_IN_SET" => AreaInSet_::parse_chunks(strs).map(|(s, v)| (s, Entity::AreaInSet(v))), - "AREA_MEASURE_WITH_UNIT" => AreaMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::AreaMeasureWithUnit(v))), + "AREA_MEASURE_WITH_UNIT" => AreaMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AreaMeasureWithUnit(v))), "AREA_UNIT" => AreaUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::AreaUnit(v))), - "ASIN_FUNCTION" => AsinFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::AsinFunction(v))), - "ASSEMBLY_COMPONENT_USAGE" => AssemblyComponentUsage_::parse_chunks(strs).map(|(s, v)| (s, Entity::AssemblyComponentUsage(v))), - "ASSEMBLY_COMPONENT_USAGE_SUBSTITUTE" => AssemblyComponentUsageSubstitute_::parse_chunks(strs).map(|(s, v)| (s, Entity::AssemblyComponentUsageSubstitute(v))), - "ATAN_FUNCTION" => AtanFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::AtanFunction(v))), - "ATTRIBUTE_CLASSIFICATION_ASSIGNMENT" => AttributeClassificationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AttributeClassificationAssignment(v))), - "ATTRIBUTE_LANGUAGE_ASSIGNMENT" => AttributeLanguageAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AttributeLanguageAssignment(v))), - "ATTRIBUTE_VALUE_ASSIGNMENT" => AttributeValueAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::AttributeValueAssignment(v))), - "ATTRIBUTE_VALUE_ROLE" => AttributeValueRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::AttributeValueRole(v))), - "AXIS1_PLACEMENT" => Axis1Placement_::parse_chunks(strs).map(|(s, v)| (s, Entity::Axis1Placement(v))), - "AXIS2_PLACEMENT_2D" => Axis2Placement2d_::parse_chunks(strs).map(|(s, v)| (s, Entity::Axis2Placement2d(v))), - "AXIS2_PLACEMENT_3D" => Axis2Placement3d_::parse_chunks(strs).map(|(s, v)| (s, Entity::Axis2Placement3d(v))), - "B_SPLINE_CURVE" => BSplineCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::BSplineCurve(v))), - "B_SPLINE_CURVE_WITH_KNOTS" => BSplineCurveWithKnots_::parse_chunks(strs).map(|(s, v)| (s, Entity::BSplineCurveWithKnots(v))), - "B_SPLINE_SURFACE" => BSplineSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::BSplineSurface(v))), - "B_SPLINE_SURFACE_WITH_KNOTS" => BSplineSurfaceWithKnots_::parse_chunks(strs).map(|(s, v)| (s, Entity::BSplineSurfaceWithKnots(v))), - "BACKGROUND_COLOUR" => BackgroundColour_::parse_chunks(strs).map(|(s, v)| (s, Entity::BackgroundColour(v))), - "BARRING_HOLE" => BarringHole_::parse_chunks(strs).map(|(s, v)| (s, Entity::BarringHole(v))), + "ASIN_FUNCTION" => { + AsinFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::AsinFunction(v))) + } + "ASSEMBLY_COMPONENT_USAGE" => AssemblyComponentUsage_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AssemblyComponentUsage(v))), + "ASSEMBLY_COMPONENT_USAGE_SUBSTITUTE" => { + AssemblyComponentUsageSubstitute_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AssemblyComponentUsageSubstitute(v))) + } + "ATAN_FUNCTION" => { + AtanFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::AtanFunction(v))) + } + "ATTRIBUTE_CLASSIFICATION_ASSIGNMENT" => { + AttributeClassificationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AttributeClassificationAssignment(v))) + } + "ATTRIBUTE_LANGUAGE_ASSIGNMENT" => AttributeLanguageAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AttributeLanguageAssignment(v))), + "ATTRIBUTE_VALUE_ASSIGNMENT" => AttributeValueAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AttributeValueAssignment(v))), + "ATTRIBUTE_VALUE_ROLE" => AttributeValueRole_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::AttributeValueRole(v))), + "AXIS1_PLACEMENT" => { + Axis1Placement_::parse_chunks(strs).map(|(s, v)| (s, Entity::Axis1Placement(v))) + } + "AXIS2_PLACEMENT_2D" => { + Axis2Placement2d_::parse_chunks(strs).map(|(s, v)| (s, Entity::Axis2Placement2d(v))) + } + "AXIS2_PLACEMENT_3D" => { + Axis2Placement3d_::parse_chunks(strs).map(|(s, v)| (s, Entity::Axis2Placement3d(v))) + } + "B_SPLINE_CURVE" => { + BSplineCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::BSplineCurve(v))) + } + "B_SPLINE_CURVE_WITH_KNOTS" => BSplineCurveWithKnots_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::BSplineCurveWithKnots(v))), + "B_SPLINE_SURFACE" => { + BSplineSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::BSplineSurface(v))) + } + "B_SPLINE_SURFACE_WITH_KNOTS" => BSplineSurfaceWithKnots_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::BSplineSurfaceWithKnots(v))), + "BACKGROUND_COLOUR" => { + BackgroundColour_::parse_chunks(strs).map(|(s, v)| (s, Entity::BackgroundColour(v))) + } + "BARRING_HOLE" => { + BarringHole_::parse_chunks(strs).map(|(s, v)| (s, Entity::BarringHole(v))) + } "BEAD" => Bead_::parse_chunks(strs).map(|(s, v)| (s, Entity::Bead(v))), "BEAD_END" => BeadEnd_::parse_chunks(strs).map(|(s, v)| (s, Entity::BeadEnd(v))), - "BEZIER_CURVE" => BezierCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::BezierCurve(v))), - "BEZIER_SURFACE" => BezierSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::BezierSurface(v))), - "BINARY_BOOLEAN_EXPRESSION" => BinaryBooleanExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::BinaryBooleanExpression(v))), - "BINARY_FUNCTION_CALL" => BinaryFunctionCall_::parse_chunks(strs).map(|(s, v)| (s, Entity::BinaryFunctionCall(v))), - "BINARY_GENERIC_EXPRESSION" => BinaryGenericExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::BinaryGenericExpression(v))), - "BINARY_NUMERIC_EXPRESSION" => BinaryNumericExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::BinaryNumericExpression(v))), + "BEZIER_CURVE" => { + BezierCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::BezierCurve(v))) + } + "BEZIER_SURFACE" => { + BezierSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::BezierSurface(v))) + } + "BINARY_BOOLEAN_EXPRESSION" => BinaryBooleanExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::BinaryBooleanExpression(v))), + "BINARY_FUNCTION_CALL" => BinaryFunctionCall_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::BinaryFunctionCall(v))), + "BINARY_GENERIC_EXPRESSION" => BinaryGenericExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::BinaryGenericExpression(v))), + "BINARY_NUMERIC_EXPRESSION" => BinaryNumericExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::BinaryNumericExpression(v))), "BLOCK" => Block_::parse_chunks(strs).map(|(s, v)| (s, Entity::Block(v))), - "BOOLEAN_DEFINED_FUNCTION" => BooleanDefinedFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::BooleanDefinedFunction(v))), - "BOOLEAN_EXPRESSION" => BooleanExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::BooleanExpression(v))), - "BOOLEAN_LITERAL" => BooleanLiteral_::parse_chunks(strs).map(|(s, v)| (s, Entity::BooleanLiteral(v))), - "BOOLEAN_RESULT" => BooleanResult_::parse_chunks(strs).map(|(s, v)| (s, Entity::BooleanResult(v))), - "BOOLEAN_VARIABLE" => BooleanVariable_::parse_chunks(strs).map(|(s, v)| (s, Entity::BooleanVariable(v))), + "BOOLEAN_DEFINED_FUNCTION" => BooleanDefinedFunction_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::BooleanDefinedFunction(v))), + "BOOLEAN_EXPRESSION" => BooleanExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::BooleanExpression(v))), + "BOOLEAN_LITERAL" => { + BooleanLiteral_::parse_chunks(strs).map(|(s, v)| (s, Entity::BooleanLiteral(v))) + } + "BOOLEAN_RESULT" => { + BooleanResult_::parse_chunks(strs).map(|(s, v)| (s, Entity::BooleanResult(v))) + } + "BOOLEAN_VARIABLE" => { + BooleanVariable_::parse_chunks(strs).map(|(s, v)| (s, Entity::BooleanVariable(v))) + } "BOSS" => Boss_::parse_chunks(strs).map(|(s, v)| (s, Entity::Boss(v))), "BOSS_TOP" => BossTop_::parse_chunks(strs).map(|(s, v)| (s, Entity::BossTop(v))), - "BOUNDARY_CURVE" => BoundaryCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::BoundaryCurve(v))), - "BOUNDED_CURVE" => BoundedCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::BoundedCurve(v))), - "BOUNDED_PCURVE" => BoundedPcurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::BoundedPcurve(v))), - "BOUNDED_SURFACE" => BoundedSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::BoundedSurface(v))), - "BOUNDED_SURFACE_CURVE" => BoundedSurfaceCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::BoundedSurfaceCurve(v))), + "BOUNDARY_CURVE" => { + BoundaryCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::BoundaryCurve(v))) + } + "BOUNDED_CURVE" => { + BoundedCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::BoundedCurve(v))) + } + "BOUNDED_PCURVE" => { + BoundedPcurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::BoundedPcurve(v))) + } + "BOUNDED_SURFACE" => { + BoundedSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::BoundedSurface(v))) + } + "BOUNDED_SURFACE_CURVE" => BoundedSurfaceCurve_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::BoundedSurfaceCurve(v))), "BOX_DOMAIN" => BoxDomain_::parse_chunks(strs).map(|(s, v)| (s, Entity::BoxDomain(v))), - "BOXED_HALF_SPACE" => BoxedHalfSpace_::parse_chunks(strs).map(|(s, v)| (s, Entity::BoxedHalfSpace(v))), - "BREP_WITH_VOIDS" => BrepWithVoids_::parse_chunks(strs).map(|(s, v)| (s, Entity::BrepWithVoids(v))), - "CALENDAR_DATE" => CalendarDate_::parse_chunks(strs).map(|(s, v)| (s, Entity::CalendarDate(v))), - "CAMERA_IMAGE" => CameraImage_::parse_chunks(strs).map(|(s, v)| (s, Entity::CameraImage(v))), - "CAMERA_IMAGE_2D_WITH_SCALE" => CameraImage2dWithScale_::parse_chunks(strs).map(|(s, v)| (s, Entity::CameraImage2dWithScale(v))), - "CAMERA_IMAGE_3D_WITH_SCALE" => CameraImage3dWithScale_::parse_chunks(strs).map(|(s, v)| (s, Entity::CameraImage3dWithScale(v))), - "CAMERA_MODEL" => CameraModel_::parse_chunks(strs).map(|(s, v)| (s, Entity::CameraModel(v))), - "CAMERA_MODEL_D2" => CameraModelD2_::parse_chunks(strs).map(|(s, v)| (s, Entity::CameraModelD2(v))), - "CAMERA_MODEL_D3" => CameraModelD3_::parse_chunks(strs).map(|(s, v)| (s, Entity::CameraModelD3(v))), - "CAMERA_MODEL_D3_WITH_HLHSR" => CameraModelD3WithHlhsr_::parse_chunks(strs).map(|(s, v)| (s, Entity::CameraModelD3WithHlhsr(v))), - "CAMERA_USAGE" => CameraUsage_::parse_chunks(strs).map(|(s, v)| (s, Entity::CameraUsage(v))), - "CARTESIAN_POINT" => CartesianPoint_::parse_chunks(strs).map(|(s, v)| (s, Entity::CartesianPoint(v))), - "CARTESIAN_TRANSFORMATION_OPERATOR" => CartesianTransformationOperator_::parse_chunks(strs).map(|(s, v)| (s, Entity::CartesianTransformationOperator(v))), - "CARTESIAN_TRANSFORMATION_OPERATOR_2D" => CartesianTransformationOperator2d_::parse_chunks(strs).map(|(s, v)| (s, Entity::CartesianTransformationOperator2d(v))), - "CARTESIAN_TRANSFORMATION_OPERATOR_3D" => CartesianTransformationOperator3d_::parse_chunks(strs).map(|(s, v)| (s, Entity::CartesianTransformationOperator3d(v))), - "CELSIUS_TEMPERATURE_MEASURE_WITH_UNIT" => CelsiusTemperatureMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::CelsiusTemperatureMeasureWithUnit(v))), - "CENTRE_OF_SYMMETRY" => CentreOfSymmetry_::parse_chunks(strs).map(|(s, v)| (s, Entity::CentreOfSymmetry(v))), - "CERTIFICATION" => Certification_::parse_chunks(strs).map(|(s, v)| (s, Entity::Certification(v))), - "CERTIFICATION_ASSIGNMENT" => CertificationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::CertificationAssignment(v))), - "CERTIFICATION_TYPE" => CertificationType_::parse_chunks(strs).map(|(s, v)| (s, Entity::CertificationType(v))), + "BOXED_HALF_SPACE" => { + BoxedHalfSpace_::parse_chunks(strs).map(|(s, v)| (s, Entity::BoxedHalfSpace(v))) + } + "BREP_WITH_VOIDS" => { + BrepWithVoids_::parse_chunks(strs).map(|(s, v)| (s, Entity::BrepWithVoids(v))) + } + "CALENDAR_DATE" => { + CalendarDate_::parse_chunks(strs).map(|(s, v)| (s, Entity::CalendarDate(v))) + } + "CAMERA_IMAGE" => { + CameraImage_::parse_chunks(strs).map(|(s, v)| (s, Entity::CameraImage(v))) + } + "CAMERA_IMAGE_2D_WITH_SCALE" => CameraImage2dWithScale_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CameraImage2dWithScale(v))), + "CAMERA_IMAGE_3D_WITH_SCALE" => CameraImage3dWithScale_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CameraImage3dWithScale(v))), + "CAMERA_MODEL" => { + CameraModel_::parse_chunks(strs).map(|(s, v)| (s, Entity::CameraModel(v))) + } + "CAMERA_MODEL_D2" => { + CameraModelD2_::parse_chunks(strs).map(|(s, v)| (s, Entity::CameraModelD2(v))) + } + "CAMERA_MODEL_D3" => { + CameraModelD3_::parse_chunks(strs).map(|(s, v)| (s, Entity::CameraModelD3(v))) + } + "CAMERA_MODEL_D3_WITH_HLHSR" => CameraModelD3WithHlhsr_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CameraModelD3WithHlhsr(v))), + "CAMERA_USAGE" => { + CameraUsage_::parse_chunks(strs).map(|(s, v)| (s, Entity::CameraUsage(v))) + } + "CARTESIAN_POINT" => { + CartesianPoint_::parse_chunks(strs).map(|(s, v)| (s, Entity::CartesianPoint(v))) + } + "CARTESIAN_TRANSFORMATION_OPERATOR" => { + CartesianTransformationOperator_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CartesianTransformationOperator(v))) + } + "CARTESIAN_TRANSFORMATION_OPERATOR_2D" => { + CartesianTransformationOperator2d_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CartesianTransformationOperator2d(v))) + } + "CARTESIAN_TRANSFORMATION_OPERATOR_3D" => { + CartesianTransformationOperator3d_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CartesianTransformationOperator3d(v))) + } + "CELSIUS_TEMPERATURE_MEASURE_WITH_UNIT" => { + CelsiusTemperatureMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CelsiusTemperatureMeasureWithUnit(v))) + } + "CENTRE_OF_SYMMETRY" => { + CentreOfSymmetry_::parse_chunks(strs).map(|(s, v)| (s, Entity::CentreOfSymmetry(v))) + } + "CERTIFICATION" => { + Certification_::parse_chunks(strs).map(|(s, v)| (s, Entity::Certification(v))) + } + "CERTIFICATION_ASSIGNMENT" => CertificationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CertificationAssignment(v))), + "CERTIFICATION_TYPE" => CertificationType_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CertificationType(v))), "CHAMFER" => Chamfer_::parse_chunks(strs).map(|(s, v)| (s, Entity::Chamfer(v))), - "CHAMFER_OFFSET" => ChamferOffset_::parse_chunks(strs).map(|(s, v)| (s, Entity::ChamferOffset(v))), - "CHARACTER_GLYPH_SYMBOL" => CharacterGlyphSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::CharacterGlyphSymbol(v))), - "CHARACTERIZED_CLASS" => CharacterizedClass_::parse_chunks(strs).map(|(s, v)| (s, Entity::CharacterizedClass(v))), - "CHARACTERIZED_OBJECT" => CharacterizedObject_::parse_chunks(strs).map(|(s, v)| (s, Entity::CharacterizedObject(v))), + "CHAMFER_OFFSET" => { + ChamferOffset_::parse_chunks(strs).map(|(s, v)| (s, Entity::ChamferOffset(v))) + } + "CHARACTER_GLYPH_SYMBOL" => CharacterGlyphSymbol_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CharacterGlyphSymbol(v))), + "CHARACTERIZED_CLASS" => CharacterizedClass_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CharacterizedClass(v))), + "CHARACTERIZED_OBJECT" => CharacterizedObject_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CharacterizedObject(v))), "CIRCLE" => Circle_::parse_chunks(strs).map(|(s, v)| (s, Entity::Circle(v))), - "CIRCULAR_CLOSED_PROFILE" => CircularClosedProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::CircularClosedProfile(v))), - "CIRCULAR_PATTERN" => CircularPattern_::parse_chunks(strs).map(|(s, v)| (s, Entity::CircularPattern(v))), - "CIRCULAR_RUNOUT_TOLERANCE" => CircularRunoutTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::CircularRunoutTolerance(v))), + "CIRCULAR_CLOSED_PROFILE" => CircularClosedProfile_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CircularClosedProfile(v))), + "CIRCULAR_PATTERN" => { + CircularPattern_::parse_chunks(strs).map(|(s, v)| (s, Entity::CircularPattern(v))) + } + "CIRCULAR_RUNOUT_TOLERANCE" => CircularRunoutTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CircularRunoutTolerance(v))), "CLASS" => Class_::parse_chunks(strs).map(|(s, v)| (s, Entity::Class(v))), - "CLASS_SYSTEM" => ClassSystem_::parse_chunks(strs).map(|(s, v)| (s, Entity::ClassSystem(v))), - "CLASS_USAGE_EFFECTIVITY_CONTEXT_ASSIGNMENT" => ClassUsageEffectivityContextAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::ClassUsageEffectivityContextAssignment(v))), - "CLASSIFICATION_ASSIGNMENT" => ClassificationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::ClassificationAssignment(v))), - "CLASSIFICATION_ROLE" => ClassificationRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::ClassificationRole(v))), - "CLOSED_PATH_PROFILE" => ClosedPathProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::ClosedPathProfile(v))), - "CLOSED_SHELL" => ClosedShell_::parse_chunks(strs).map(|(s, v)| (s, Entity::ClosedShell(v))), - "COAXIALITY_TOLERANCE" => CoaxialityTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::CoaxialityTolerance(v))), + "CLASS_SYSTEM" => { + ClassSystem_::parse_chunks(strs).map(|(s, v)| (s, Entity::ClassSystem(v))) + } + "CLASS_USAGE_EFFECTIVITY_CONTEXT_ASSIGNMENT" => { + ClassUsageEffectivityContextAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ClassUsageEffectivityContextAssignment(v))) + } + "CLASSIFICATION_ASSIGNMENT" => ClassificationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ClassificationAssignment(v))), + "CLASSIFICATION_ROLE" => ClassificationRole_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ClassificationRole(v))), + "CLOSED_PATH_PROFILE" => ClosedPathProfile_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ClosedPathProfile(v))), + "CLOSED_SHELL" => { + ClosedShell_::parse_chunks(strs).map(|(s, v)| (s, Entity::ClosedShell(v))) + } + "COAXIALITY_TOLERANCE" => CoaxialityTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CoaxialityTolerance(v))), "COLOUR" => Colour_::parse_chunks(strs).map(|(s, v)| (s, Entity::Colour(v))), "COLOUR_RGB" => ColourRgb_::parse_chunks(strs).map(|(s, v)| (s, Entity::ColourRgb(v))), - "COLOUR_SPECIFICATION" => ColourSpecification_::parse_chunks(strs).map(|(s, v)| (s, Entity::ColourSpecification(v))), - "COMMON_DATUM" => CommonDatum_::parse_chunks(strs).map(|(s, v)| (s, Entity::CommonDatum(v))), - "COMPARISON_EQUAL" => ComparisonEqual_::parse_chunks(strs).map(|(s, v)| (s, Entity::ComparisonEqual(v))), - "COMPARISON_EXPRESSION" => ComparisonExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::ComparisonExpression(v))), - "COMPARISON_GREATER" => ComparisonGreater_::parse_chunks(strs).map(|(s, v)| (s, Entity::ComparisonGreater(v))), - "COMPARISON_GREATER_EQUAL" => ComparisonGreaterEqual_::parse_chunks(strs).map(|(s, v)| (s, Entity::ComparisonGreaterEqual(v))), - "COMPARISON_LESS" => ComparisonLess_::parse_chunks(strs).map(|(s, v)| (s, Entity::ComparisonLess(v))), - "COMPARISON_LESS_EQUAL" => ComparisonLessEqual_::parse_chunks(strs).map(|(s, v)| (s, Entity::ComparisonLessEqual(v))), - "COMPARISON_NOT_EQUAL" => ComparisonNotEqual_::parse_chunks(strs).map(|(s, v)| (s, Entity::ComparisonNotEqual(v))), - "COMPOSITE_CURVE" => CompositeCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompositeCurve(v))), - "COMPOSITE_CURVE_ON_SURFACE" => CompositeCurveOnSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompositeCurveOnSurface(v))), - "COMPOSITE_CURVE_SEGMENT" => CompositeCurveSegment_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompositeCurveSegment(v))), - "COMPOSITE_HOLE" => CompositeHole_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompositeHole(v))), - "COMPOSITE_SHAPE_ASPECT" => CompositeShapeAspect_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompositeShapeAspect(v))), - "COMPOSITE_TEXT" => CompositeText_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompositeText(v))), - "COMPOSITE_TEXT_WITH_ASSOCIATED_CURVES" => CompositeTextWithAssociatedCurves_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompositeTextWithAssociatedCurves(v))), - "COMPOSITE_TEXT_WITH_BLANKING_BOX" => CompositeTextWithBlankingBox_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompositeTextWithBlankingBox(v))), - "COMPOSITE_TEXT_WITH_EXTENT" => CompositeTextWithExtent_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompositeTextWithExtent(v))), - "COMPOUND_FEATURE" => CompoundFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompoundFeature(v))), - "COMPOUND_REPRESENTATION_ITEM" => CompoundRepresentationItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompoundRepresentationItem(v))), - "COMPOUND_SHAPE_REPRESENTATION" => CompoundShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompoundShapeRepresentation(v))), - "CONCAT_EXPRESSION" => ConcatExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConcatExpression(v))), - "CONCENTRICITY_TOLERANCE" => ConcentricityTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConcentricityTolerance(v))), - "CONCEPT_FEATURE_OPERATOR" => ConceptFeatureOperator_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConceptFeatureOperator(v))), - "CONCEPT_FEATURE_RELATIONSHIP" => ConceptFeatureRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConceptFeatureRelationship(v))), - "CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION" => ConceptFeatureRelationshipWithCondition_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConceptFeatureRelationshipWithCondition(v))), - "CONDITIONAL_CONCEPT_FEATURE" => ConditionalConceptFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConditionalConceptFeature(v))), - "CONFIGURABLE_ITEM" => ConfigurableItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConfigurableItem(v))), - "CONFIGURATION_DEFINITION" => ConfigurationDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConfigurationDefinition(v))), - "CONFIGURATION_DESIGN" => ConfigurationDesign_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConfigurationDesign(v))), - "CONFIGURATION_EFFECTIVITY" => ConfigurationEffectivity_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConfigurationEffectivity(v))), - "CONFIGURATION_INTERPOLATION" => ConfigurationInterpolation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConfigurationInterpolation(v))), - "CONFIGURATION_ITEM" => ConfigurationItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConfigurationItem(v))), - "CONFIGURED_EFFECTIVITY_ASSIGNMENT" => ConfiguredEffectivityAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConfiguredEffectivityAssignment(v))), - "CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT" => ConfiguredEffectivityContextAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConfiguredEffectivityContextAssignment(v))), + "COLOUR_SPECIFICATION" => ColourSpecification_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ColourSpecification(v))), + "COMMON_DATUM" => { + CommonDatum_::parse_chunks(strs).map(|(s, v)| (s, Entity::CommonDatum(v))) + } + "COMPARISON_EQUAL" => { + ComparisonEqual_::parse_chunks(strs).map(|(s, v)| (s, Entity::ComparisonEqual(v))) + } + "COMPARISON_EXPRESSION" => ComparisonExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ComparisonExpression(v))), + "COMPARISON_GREATER" => ComparisonGreater_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ComparisonGreater(v))), + "COMPARISON_GREATER_EQUAL" => ComparisonGreaterEqual_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ComparisonGreaterEqual(v))), + "COMPARISON_LESS" => { + ComparisonLess_::parse_chunks(strs).map(|(s, v)| (s, Entity::ComparisonLess(v))) + } + "COMPARISON_LESS_EQUAL" => ComparisonLessEqual_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ComparisonLessEqual(v))), + "COMPARISON_NOT_EQUAL" => ComparisonNotEqual_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ComparisonNotEqual(v))), + "COMPOSITE_CURVE" => { + CompositeCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompositeCurve(v))) + } + "COMPOSITE_CURVE_ON_SURFACE" => CompositeCurveOnSurface_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CompositeCurveOnSurface(v))), + "COMPOSITE_CURVE_SEGMENT" => CompositeCurveSegment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CompositeCurveSegment(v))), + "COMPOSITE_HOLE" => { + CompositeHole_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompositeHole(v))) + } + "COMPOSITE_SHAPE_ASPECT" => CompositeShapeAspect_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CompositeShapeAspect(v))), + "COMPOSITE_TEXT" => { + CompositeText_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompositeText(v))) + } + "COMPOSITE_TEXT_WITH_ASSOCIATED_CURVES" => { + CompositeTextWithAssociatedCurves_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CompositeTextWithAssociatedCurves(v))) + } + "COMPOSITE_TEXT_WITH_BLANKING_BOX" => CompositeTextWithBlankingBox_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CompositeTextWithBlankingBox(v))), + "COMPOSITE_TEXT_WITH_EXTENT" => CompositeTextWithExtent_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CompositeTextWithExtent(v))), + "COMPOUND_FEATURE" => { + CompoundFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::CompoundFeature(v))) + } + "COMPOUND_REPRESENTATION_ITEM" => CompoundRepresentationItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CompoundRepresentationItem(v))), + "COMPOUND_SHAPE_REPRESENTATION" => CompoundShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CompoundShapeRepresentation(v))), + "CONCAT_EXPRESSION" => { + ConcatExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConcatExpression(v))) + } + "CONCENTRICITY_TOLERANCE" => ConcentricityTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConcentricityTolerance(v))), + "CONCEPT_FEATURE_OPERATOR" => ConceptFeatureOperator_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConceptFeatureOperator(v))), + "CONCEPT_FEATURE_RELATIONSHIP" => ConceptFeatureRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConceptFeatureRelationship(v))), + "CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION" => { + ConceptFeatureRelationshipWithCondition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConceptFeatureRelationshipWithCondition(v))) + } + "CONDITIONAL_CONCEPT_FEATURE" => ConditionalConceptFeature_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConditionalConceptFeature(v))), + "CONFIGURABLE_ITEM" => { + ConfigurableItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConfigurableItem(v))) + } + "CONFIGURATION_DEFINITION" => ConfigurationDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConfigurationDefinition(v))), + "CONFIGURATION_DESIGN" => ConfigurationDesign_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConfigurationDesign(v))), + "CONFIGURATION_EFFECTIVITY" => ConfigurationEffectivity_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConfigurationEffectivity(v))), + "CONFIGURATION_INTERPOLATION" => ConfigurationInterpolation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConfigurationInterpolation(v))), + "CONFIGURATION_ITEM" => ConfigurationItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConfigurationItem(v))), + "CONFIGURED_EFFECTIVITY_ASSIGNMENT" => { + ConfiguredEffectivityAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConfiguredEffectivityAssignment(v))) + } + "CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT" => { + ConfiguredEffectivityContextAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConfiguredEffectivityContextAssignment(v))) + } "CONIC" => Conic_::parse_chunks(strs).map(|(s, v)| (s, Entity::Conic(v))), - "CONICAL_SURFACE" => ConicalSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConicalSurface(v))), - "CONNECTED_EDGE_SET" => ConnectedEdgeSet_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConnectedEdgeSet(v))), - "CONNECTED_FACE_SET" => ConnectedFaceSet_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConnectedFaceSet(v))), - "CONNECTED_FACE_SUB_SET" => ConnectedFaceSubSet_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConnectedFaceSubSet(v))), - "CONSTRUCTIVE_GEOMETRY_REPRESENTATION" => ConstructiveGeometryRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConstructiveGeometryRepresentation(v))), - "CONSTRUCTIVE_GEOMETRY_REPRESENTATION_RELATIONSHIP" => ConstructiveGeometryRepresentationRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConstructiveGeometryRepresentationRelationship(v))), - "CONTACT_RATIO_REPRESENTATION" => ContactRatioRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ContactRatioRepresentation(v))), - "CONTEXT_DEPENDENT_INVISIBILITY" => ContextDependentInvisibility_::parse_chunks(strs).map(|(s, v)| (s, Entity::ContextDependentInvisibility(v))), - "CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM" => ContextDependentOverRidingStyledItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::ContextDependentOverRidingStyledItem(v))), - "CONTEXT_DEPENDENT_SHAPE_REPRESENTATION" => ContextDependentShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ContextDependentShapeRepresentation(v))), - "CONTEXT_DEPENDENT_UNIT" => ContextDependentUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::ContextDependentUnit(v))), + "CONICAL_SURFACE" => { + ConicalSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConicalSurface(v))) + } + "CONNECTED_EDGE_SET" => { + ConnectedEdgeSet_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConnectedEdgeSet(v))) + } + "CONNECTED_FACE_SET" => { + ConnectedFaceSet_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConnectedFaceSet(v))) + } + "CONNECTED_FACE_SUB_SET" => ConnectedFaceSubSet_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConnectedFaceSubSet(v))), + "CONSTRUCTIVE_GEOMETRY_REPRESENTATION" => { + ConstructiveGeometryRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConstructiveGeometryRepresentation(v))) + } + "CONSTRUCTIVE_GEOMETRY_REPRESENTATION_RELATIONSHIP" => { + ConstructiveGeometryRepresentationRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConstructiveGeometryRepresentationRelationship(v))) + } + "CONTACT_RATIO_REPRESENTATION" => ContactRatioRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ContactRatioRepresentation(v))), + "CONTEXT_DEPENDENT_INVISIBILITY" => ContextDependentInvisibility_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ContextDependentInvisibility(v))), + "CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM" => { + ContextDependentOverRidingStyledItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ContextDependentOverRidingStyledItem(v))) + } + "CONTEXT_DEPENDENT_SHAPE_REPRESENTATION" => { + ContextDependentShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ContextDependentShapeRepresentation(v))) + } + "CONTEXT_DEPENDENT_UNIT" => ContextDependentUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ContextDependentUnit(v))), "CONTRACT" => Contract_::parse_chunks(strs).map(|(s, v)| (s, Entity::Contract(v))), - "CONTRACT_ASSIGNMENT" => ContractAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::ContractAssignment(v))), - "CONTRACT_TYPE" => ContractType_::parse_chunks(strs).map(|(s, v)| (s, Entity::ContractType(v))), - "CONVERSION_BASED_UNIT" => ConversionBasedUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::ConversionBasedUnit(v))), - "COORDINATED_UNIVERSAL_TIME_OFFSET" => CoordinatedUniversalTimeOffset_::parse_chunks(strs).map(|(s, v)| (s, Entity::CoordinatedUniversalTimeOffset(v))), - "COS_FUNCTION" => CosFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::CosFunction(v))), - "CSG_SHAPE_REPRESENTATION" => CsgShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::CsgShapeRepresentation(v))), + "CONTRACT_ASSIGNMENT" => ContractAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ContractAssignment(v))), + "CONTRACT_TYPE" => { + ContractType_::parse_chunks(strs).map(|(s, v)| (s, Entity::ContractType(v))) + } + "CONVERSION_BASED_UNIT" => ConversionBasedUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ConversionBasedUnit(v))), + "COORDINATED_UNIVERSAL_TIME_OFFSET" => { + CoordinatedUniversalTimeOffset_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CoordinatedUniversalTimeOffset(v))) + } + "COS_FUNCTION" => { + CosFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::CosFunction(v))) + } + "CSG_SHAPE_REPRESENTATION" => CsgShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CsgShapeRepresentation(v))), "CSG_SOLID" => CsgSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::CsgSolid(v))), "CURVE" => Curve_::parse_chunks(strs).map(|(s, v)| (s, Entity::Curve(v))), - "CURVE_BOUNDED_SURFACE" => CurveBoundedSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::CurveBoundedSurface(v))), - "CURVE_DIMENSION" => CurveDimension_::parse_chunks(strs).map(|(s, v)| (s, Entity::CurveDimension(v))), - "CURVE_REPLICA" => CurveReplica_::parse_chunks(strs).map(|(s, v)| (s, Entity::CurveReplica(v))), - "CURVE_STYLE" => CurveStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::CurveStyle(v))), - "CURVE_STYLE_FONT" => CurveStyleFont_::parse_chunks(strs).map(|(s, v)| (s, Entity::CurveStyleFont(v))), - "CURVE_STYLE_FONT_PATTERN" => CurveStyleFontPattern_::parse_chunks(strs).map(|(s, v)| (s, Entity::CurveStyleFontPattern(v))), - "CURVE_STYLE_RENDERING" => CurveStyleRendering_::parse_chunks(strs).map(|(s, v)| (s, Entity::CurveStyleRendering(v))), - "CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION" => CurveSweptSolidShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::CurveSweptSolidShapeRepresentation(v))), - "CYLINDRICAL_PAIR" => CylindricalPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::CylindricalPair(v))), - "CYLINDRICAL_PAIR_RANGE" => CylindricalPairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::CylindricalPairRange(v))), - "CYLINDRICAL_PAIR_VALUE" => CylindricalPairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::CylindricalPairValue(v))), - "CYLINDRICAL_SURFACE" => CylindricalSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::CylindricalSurface(v))), - "CYLINDRICITY_TOLERANCE" => CylindricityTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::CylindricityTolerance(v))), - "DATA_ENVIRONMENT" => DataEnvironment_::parse_chunks(strs).map(|(s, v)| (s, Entity::DataEnvironment(v))), + "CURVE_BOUNDED_SURFACE" => CurveBoundedSurface_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CurveBoundedSurface(v))), + "CURVE_DIMENSION" => { + CurveDimension_::parse_chunks(strs).map(|(s, v)| (s, Entity::CurveDimension(v))) + } + "CURVE_REPLICA" => { + CurveReplica_::parse_chunks(strs).map(|(s, v)| (s, Entity::CurveReplica(v))) + } + "CURVE_STYLE" => { + CurveStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::CurveStyle(v))) + } + "CURVE_STYLE_FONT" => { + CurveStyleFont_::parse_chunks(strs).map(|(s, v)| (s, Entity::CurveStyleFont(v))) + } + "CURVE_STYLE_FONT_PATTERN" => CurveStyleFontPattern_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CurveStyleFontPattern(v))), + "CURVE_STYLE_RENDERING" => CurveStyleRendering_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CurveStyleRendering(v))), + "CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION" => { + CurveSweptSolidShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CurveSweptSolidShapeRepresentation(v))) + } + "CYLINDRICAL_PAIR" => { + CylindricalPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::CylindricalPair(v))) + } + "CYLINDRICAL_PAIR_RANGE" => CylindricalPairRange_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CylindricalPairRange(v))), + "CYLINDRICAL_PAIR_VALUE" => CylindricalPairValue_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CylindricalPairValue(v))), + "CYLINDRICAL_SURFACE" => CylindricalSurface_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CylindricalSurface(v))), + "CYLINDRICITY_TOLERANCE" => CylindricityTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::CylindricityTolerance(v))), + "DATA_ENVIRONMENT" => { + DataEnvironment_::parse_chunks(strs).map(|(s, v)| (s, Entity::DataEnvironment(v))) + } "DATE" => Date_::parse_chunks(strs).map(|(s, v)| (s, Entity::Date(v))), - "DATE_AND_TIME" => DateAndTime_::parse_chunks(strs).map(|(s, v)| (s, Entity::DateAndTime(v))), - "DATE_AND_TIME_ASSIGNMENT" => DateAndTimeAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::DateAndTimeAssignment(v))), - "DATE_ASSIGNMENT" => DateAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::DateAssignment(v))), + "DATE_AND_TIME" => { + DateAndTime_::parse_chunks(strs).map(|(s, v)| (s, Entity::DateAndTime(v))) + } + "DATE_AND_TIME_ASSIGNMENT" => DateAndTimeAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DateAndTimeAssignment(v))), + "DATE_ASSIGNMENT" => { + DateAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::DateAssignment(v))) + } "DATE_ROLE" => DateRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::DateRole(v))), - "DATE_TIME_ROLE" => DateTimeRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::DateTimeRole(v))), - "DATED_EFFECTIVITY" => DatedEffectivity_::parse_chunks(strs).map(|(s, v)| (s, Entity::DatedEffectivity(v))), + "DATE_TIME_ROLE" => { + DateTimeRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::DateTimeRole(v))) + } + "DATED_EFFECTIVITY" => { + DatedEffectivity_::parse_chunks(strs).map(|(s, v)| (s, Entity::DatedEffectivity(v))) + } "DATUM" => Datum_::parse_chunks(strs).map(|(s, v)| (s, Entity::Datum(v))), - "DATUM_FEATURE" => DatumFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::DatumFeature(v))), - "DATUM_FEATURE_CALLOUT" => DatumFeatureCallout_::parse_chunks(strs).map(|(s, v)| (s, Entity::DatumFeatureCallout(v))), - "DATUM_REFERENCE" => DatumReference_::parse_chunks(strs).map(|(s, v)| (s, Entity::DatumReference(v))), - "DATUM_TARGET" => DatumTarget_::parse_chunks(strs).map(|(s, v)| (s, Entity::DatumTarget(v))), - "DATUM_TARGET_CALLOUT" => DatumTargetCallout_::parse_chunks(strs).map(|(s, v)| (s, Entity::DatumTargetCallout(v))), - "DEFAULT_TOLERANCE_TABLE" => DefaultToleranceTable_::parse_chunks(strs).map(|(s, v)| (s, Entity::DefaultToleranceTable(v))), - "DEFAULT_TOLERANCE_TABLE_CELL" => DefaultToleranceTableCell_::parse_chunks(strs).map(|(s, v)| (s, Entity::DefaultToleranceTableCell(v))), - "DEFINED_CHARACTER_GLYPH" => DefinedCharacterGlyph_::parse_chunks(strs).map(|(s, v)| (s, Entity::DefinedCharacterGlyph(v))), - "DEFINED_FUNCTION" => DefinedFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::DefinedFunction(v))), - "DEFINED_SYMBOL" => DefinedSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::DefinedSymbol(v))), - "DEFINITIONAL_REPRESENTATION" => DefinitionalRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::DefinitionalRepresentation(v))), - "DEGENERATE_PCURVE" => DegeneratePcurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::DegeneratePcurve(v))), - "DEGENERATE_TOROIDAL_SURFACE" => DegenerateToroidalSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::DegenerateToroidalSurface(v))), - "DERIVED_SHAPE_ASPECT" => DerivedShapeAspect_::parse_chunks(strs).map(|(s, v)| (s, Entity::DerivedShapeAspect(v))), - "DERIVED_UNIT" => DerivedUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::DerivedUnit(v))), - "DERIVED_UNIT_ELEMENT" => DerivedUnitElement_::parse_chunks(strs).map(|(s, v)| (s, Entity::DerivedUnitElement(v))), - "DERIVED_UNIT_VARIABLE" => DerivedUnitVariable_::parse_chunks(strs).map(|(s, v)| (s, Entity::DerivedUnitVariable(v))), - "DESCRIPTION_ATTRIBUTE" => DescriptionAttribute_::parse_chunks(strs).map(|(s, v)| (s, Entity::DescriptionAttribute(v))), - "DESCRIPTIVE_REPRESENTATION_ITEM" => DescriptiveRepresentationItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::DescriptiveRepresentationItem(v))), - "DIAMETER_DIMENSION" => DiameterDimension_::parse_chunks(strs).map(|(s, v)| (s, Entity::DiameterDimension(v))), - "DIMENSION_CALLOUT" => DimensionCallout_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionCallout(v))), - "DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP" => DimensionCalloutComponentRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionCalloutComponentRelationship(v))), - "DIMENSION_CALLOUT_RELATIONSHIP" => DimensionCalloutRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionCalloutRelationship(v))), - "DIMENSION_CURVE" => DimensionCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionCurve(v))), - "DIMENSION_CURVE_DIRECTED_CALLOUT" => DimensionCurveDirectedCallout_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionCurveDirectedCallout(v))), - "DIMENSION_CURVE_TERMINATOR" => DimensionCurveTerminator_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionCurveTerminator(v))), - "DIMENSION_PAIR" => DimensionPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionPair(v))), - "DIMENSION_RELATED_TOLERANCE_ZONE_ELEMENT" => DimensionRelatedToleranceZoneElement_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionRelatedToleranceZoneElement(v))), - "DIMENSION_TEXT_ASSOCIATIVITY" => DimensionTextAssociativity_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionTextAssociativity(v))), - "DIMENSIONAL_CHARACTERISTIC_REPRESENTATION" => DimensionalCharacteristicRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionalCharacteristicRepresentation(v))), - "DIMENSIONAL_EXPONENTS" => DimensionalExponents_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionalExponents(v))), - "DIMENSIONAL_LOCATION" => DimensionalLocation_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionalLocation(v))), - "DIMENSIONAL_LOCATION_WITH_PATH" => DimensionalLocationWithPath_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionalLocationWithPath(v))), - "DIMENSIONAL_SIZE" => DimensionalSize_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionalSize(v))), - "DIMENSIONAL_SIZE_WITH_PATH" => DimensionalSizeWithPath_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionalSizeWithPath(v))), - "DIRECTED_ACTION" => DirectedAction_::parse_chunks(strs).map(|(s, v)| (s, Entity::DirectedAction(v))), - "DIRECTED_ANGLE" => DirectedAngle_::parse_chunks(strs).map(|(s, v)| (s, Entity::DirectedAngle(v))), - "DIRECTED_DIMENSIONAL_LOCATION" => DirectedDimensionalLocation_::parse_chunks(strs).map(|(s, v)| (s, Entity::DirectedDimensionalLocation(v))), + "DATUM_FEATURE" => { + DatumFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::DatumFeature(v))) + } + "DATUM_FEATURE_CALLOUT" => DatumFeatureCallout_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DatumFeatureCallout(v))), + "DATUM_REFERENCE" => { + DatumReference_::parse_chunks(strs).map(|(s, v)| (s, Entity::DatumReference(v))) + } + "DATUM_TARGET" => { + DatumTarget_::parse_chunks(strs).map(|(s, v)| (s, Entity::DatumTarget(v))) + } + "DATUM_TARGET_CALLOUT" => DatumTargetCallout_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DatumTargetCallout(v))), + "DEFAULT_TOLERANCE_TABLE" => DefaultToleranceTable_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DefaultToleranceTable(v))), + "DEFAULT_TOLERANCE_TABLE_CELL" => DefaultToleranceTableCell_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DefaultToleranceTableCell(v))), + "DEFINED_CHARACTER_GLYPH" => DefinedCharacterGlyph_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DefinedCharacterGlyph(v))), + "DEFINED_FUNCTION" => { + DefinedFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::DefinedFunction(v))) + } + "DEFINED_SYMBOL" => { + DefinedSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::DefinedSymbol(v))) + } + "DEFINITIONAL_REPRESENTATION" => DefinitionalRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DefinitionalRepresentation(v))), + "DEGENERATE_PCURVE" => { + DegeneratePcurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::DegeneratePcurve(v))) + } + "DEGENERATE_TOROIDAL_SURFACE" => DegenerateToroidalSurface_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DegenerateToroidalSurface(v))), + "DERIVED_SHAPE_ASPECT" => DerivedShapeAspect_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DerivedShapeAspect(v))), + "DERIVED_UNIT" => { + DerivedUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::DerivedUnit(v))) + } + "DERIVED_UNIT_ELEMENT" => DerivedUnitElement_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DerivedUnitElement(v))), + "DERIVED_UNIT_VARIABLE" => DerivedUnitVariable_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DerivedUnitVariable(v))), + "DESCRIPTION_ATTRIBUTE" => DescriptionAttribute_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DescriptionAttribute(v))), + "DESCRIPTIVE_REPRESENTATION_ITEM" => DescriptiveRepresentationItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DescriptiveRepresentationItem(v))), + "DIAMETER_DIMENSION" => DiameterDimension_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DiameterDimension(v))), + "DIMENSION_CALLOUT" => { + DimensionCallout_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionCallout(v))) + } + "DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP" => { + DimensionCalloutComponentRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DimensionCalloutComponentRelationship(v))) + } + "DIMENSION_CALLOUT_RELATIONSHIP" => DimensionCalloutRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DimensionCalloutRelationship(v))), + "DIMENSION_CURVE" => { + DimensionCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionCurve(v))) + } + "DIMENSION_CURVE_DIRECTED_CALLOUT" => { + DimensionCurveDirectedCallout_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DimensionCurveDirectedCallout(v))) + } + "DIMENSION_CURVE_TERMINATOR" => DimensionCurveTerminator_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DimensionCurveTerminator(v))), + "DIMENSION_PAIR" => { + DimensionPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionPair(v))) + } + "DIMENSION_RELATED_TOLERANCE_ZONE_ELEMENT" => { + DimensionRelatedToleranceZoneElement_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DimensionRelatedToleranceZoneElement(v))) + } + "DIMENSION_TEXT_ASSOCIATIVITY" => DimensionTextAssociativity_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DimensionTextAssociativity(v))), + "DIMENSIONAL_CHARACTERISTIC_REPRESENTATION" => { + DimensionalCharacteristicRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DimensionalCharacteristicRepresentation(v))) + } + "DIMENSIONAL_EXPONENTS" => DimensionalExponents_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DimensionalExponents(v))), + "DIMENSIONAL_LOCATION" => DimensionalLocation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DimensionalLocation(v))), + "DIMENSIONAL_LOCATION_WITH_PATH" => DimensionalLocationWithPath_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DimensionalLocationWithPath(v))), + "DIMENSIONAL_SIZE" => { + DimensionalSize_::parse_chunks(strs).map(|(s, v)| (s, Entity::DimensionalSize(v))) + } + "DIMENSIONAL_SIZE_WITH_PATH" => DimensionalSizeWithPath_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DimensionalSizeWithPath(v))), + "DIRECTED_ACTION" => { + DirectedAction_::parse_chunks(strs).map(|(s, v)| (s, Entity::DirectedAction(v))) + } + "DIRECTED_ANGLE" => { + DirectedAngle_::parse_chunks(strs).map(|(s, v)| (s, Entity::DirectedAngle(v))) + } + "DIRECTED_DIMENSIONAL_LOCATION" => DirectedDimensionalLocation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DirectedDimensionalLocation(v))), "DIRECTION" => Direction_::parse_chunks(strs).map(|(s, v)| (s, Entity::Direction(v))), - "DIRECTION_SHAPE_REPRESENTATION" => DirectionShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::DirectionShapeRepresentation(v))), - "DIV_EXPRESSION" => DivExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::DivExpression(v))), + "DIRECTION_SHAPE_REPRESENTATION" => DirectionShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DirectionShapeRepresentation(v))), + "DIV_EXPRESSION" => { + DivExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::DivExpression(v))) + } "DOCUMENT" => Document_::parse_chunks(strs).map(|(s, v)| (s, Entity::Document(v))), - "DOCUMENT_FILE" => DocumentFile_::parse_chunks(strs).map(|(s, v)| (s, Entity::DocumentFile(v))), - "DOCUMENT_PRODUCT_ASSOCIATION" => DocumentProductAssociation_::parse_chunks(strs).map(|(s, v)| (s, Entity::DocumentProductAssociation(v))), - "DOCUMENT_PRODUCT_EQUIVALENCE" => DocumentProductEquivalence_::parse_chunks(strs).map(|(s, v)| (s, Entity::DocumentProductEquivalence(v))), - "DOCUMENT_REFERENCE" => DocumentReference_::parse_chunks(strs).map(|(s, v)| (s, Entity::DocumentReference(v))), - "DOCUMENT_RELATIONSHIP" => DocumentRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::DocumentRelationship(v))), - "DOCUMENT_REPRESENTATION_TYPE" => DocumentRepresentationType_::parse_chunks(strs).map(|(s, v)| (s, Entity::DocumentRepresentationType(v))), - "DOCUMENT_TYPE" => DocumentType_::parse_chunks(strs).map(|(s, v)| (s, Entity::DocumentType(v))), - "DOCUMENT_USAGE_CONSTRAINT" => DocumentUsageConstraint_::parse_chunks(strs).map(|(s, v)| (s, Entity::DocumentUsageConstraint(v))), - "DOCUMENT_USAGE_CONSTRAINT_ASSIGNMENT" => DocumentUsageConstraintAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::DocumentUsageConstraintAssignment(v))), - "DOCUMENT_USAGE_ROLE" => DocumentUsageRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::DocumentUsageRole(v))), - "DRAUGHTING_ANNOTATION_OCCURRENCE" => DraughtingAnnotationOccurrence_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingAnnotationOccurrence(v))), - "DRAUGHTING_CALLOUT" => DraughtingCallout_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingCallout(v))), - "DRAUGHTING_CALLOUT_RELATIONSHIP" => DraughtingCalloutRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingCalloutRelationship(v))), - "DRAUGHTING_ELEMENTS" => DraughtingElements_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingElements(v))), - "DRAUGHTING_MODEL" => DraughtingModel_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingModel(v))), - "DRAUGHTING_MODEL_ITEM_ASSOCIATION" => DraughtingModelItemAssociation_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingModelItemAssociation(v))), - "DRAUGHTING_PRE_DEFINED_COLOUR" => DraughtingPreDefinedColour_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingPreDefinedColour(v))), - "DRAUGHTING_PRE_DEFINED_CURVE_FONT" => DraughtingPreDefinedCurveFont_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingPreDefinedCurveFont(v))), - "DRAUGHTING_PRE_DEFINED_TEXT_FONT" => DraughtingPreDefinedTextFont_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingPreDefinedTextFont(v))), - "DRAUGHTING_SPECIFICATION_REFERENCE" => DraughtingSpecificationReference_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingSpecificationReference(v))), - "DRAUGHTING_SUBFIGURE_REPRESENTATION" => DraughtingSubfigureRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingSubfigureRepresentation(v))), - "DRAUGHTING_SYMBOL_REPRESENTATION" => DraughtingSymbolRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingSymbolRepresentation(v))), - "DRAUGHTING_TEXT_LITERAL_WITH_DELINEATION" => DraughtingTextLiteralWithDelineation_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingTextLiteralWithDelineation(v))), - "DRAUGHTING_TITLE" => DraughtingTitle_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingTitle(v))), - "DRAWING_DEFINITION" => DrawingDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::DrawingDefinition(v))), - "DRAWING_REVISION" => DrawingRevision_::parse_chunks(strs).map(|(s, v)| (s, Entity::DrawingRevision(v))), - "DRAWING_REVISION_SEQUENCE" => DrawingRevisionSequence_::parse_chunks(strs).map(|(s, v)| (s, Entity::DrawingRevisionSequence(v))), - "DRAWING_SHEET_LAYOUT" => DrawingSheetLayout_::parse_chunks(strs).map(|(s, v)| (s, Entity::DrawingSheetLayout(v))), - "DRAWING_SHEET_REVISION" => DrawingSheetRevision_::parse_chunks(strs).map(|(s, v)| (s, Entity::DrawingSheetRevision(v))), - "DRAWING_SHEET_REVISION_USAGE" => DrawingSheetRevisionUsage_::parse_chunks(strs).map(|(s, v)| (s, Entity::DrawingSheetRevisionUsage(v))), + "DOCUMENT_FILE" => { + DocumentFile_::parse_chunks(strs).map(|(s, v)| (s, Entity::DocumentFile(v))) + } + "DOCUMENT_PRODUCT_ASSOCIATION" => DocumentProductAssociation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DocumentProductAssociation(v))), + "DOCUMENT_PRODUCT_EQUIVALENCE" => DocumentProductEquivalence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DocumentProductEquivalence(v))), + "DOCUMENT_REFERENCE" => DocumentReference_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DocumentReference(v))), + "DOCUMENT_RELATIONSHIP" => DocumentRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DocumentRelationship(v))), + "DOCUMENT_REPRESENTATION_TYPE" => DocumentRepresentationType_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DocumentRepresentationType(v))), + "DOCUMENT_TYPE" => { + DocumentType_::parse_chunks(strs).map(|(s, v)| (s, Entity::DocumentType(v))) + } + "DOCUMENT_USAGE_CONSTRAINT" => DocumentUsageConstraint_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DocumentUsageConstraint(v))), + "DOCUMENT_USAGE_CONSTRAINT_ASSIGNMENT" => { + DocumentUsageConstraintAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DocumentUsageConstraintAssignment(v))) + } + "DOCUMENT_USAGE_ROLE" => DocumentUsageRole_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DocumentUsageRole(v))), + "DRAUGHTING_ANNOTATION_OCCURRENCE" => { + DraughtingAnnotationOccurrence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DraughtingAnnotationOccurrence(v))) + } + "DRAUGHTING_CALLOUT" => DraughtingCallout_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DraughtingCallout(v))), + "DRAUGHTING_CALLOUT_RELATIONSHIP" => DraughtingCalloutRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DraughtingCalloutRelationship(v))), + "DRAUGHTING_ELEMENTS" => DraughtingElements_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DraughtingElements(v))), + "DRAUGHTING_MODEL" => { + DraughtingModel_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingModel(v))) + } + "DRAUGHTING_MODEL_ITEM_ASSOCIATION" => { + DraughtingModelItemAssociation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DraughtingModelItemAssociation(v))) + } + "DRAUGHTING_PRE_DEFINED_COLOUR" => DraughtingPreDefinedColour_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DraughtingPreDefinedColour(v))), + "DRAUGHTING_PRE_DEFINED_CURVE_FONT" => { + DraughtingPreDefinedCurveFont_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DraughtingPreDefinedCurveFont(v))) + } + "DRAUGHTING_PRE_DEFINED_TEXT_FONT" => DraughtingPreDefinedTextFont_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DraughtingPreDefinedTextFont(v))), + "DRAUGHTING_SPECIFICATION_REFERENCE" => { + DraughtingSpecificationReference_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DraughtingSpecificationReference(v))) + } + "DRAUGHTING_SUBFIGURE_REPRESENTATION" => { + DraughtingSubfigureRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DraughtingSubfigureRepresentation(v))) + } + "DRAUGHTING_SYMBOL_REPRESENTATION" => { + DraughtingSymbolRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DraughtingSymbolRepresentation(v))) + } + "DRAUGHTING_TEXT_LITERAL_WITH_DELINEATION" => { + DraughtingTextLiteralWithDelineation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DraughtingTextLiteralWithDelineation(v))) + } + "DRAUGHTING_TITLE" => { + DraughtingTitle_::parse_chunks(strs).map(|(s, v)| (s, Entity::DraughtingTitle(v))) + } + "DRAWING_DEFINITION" => DrawingDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DrawingDefinition(v))), + "DRAWING_REVISION" => { + DrawingRevision_::parse_chunks(strs).map(|(s, v)| (s, Entity::DrawingRevision(v))) + } + "DRAWING_REVISION_SEQUENCE" => DrawingRevisionSequence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DrawingRevisionSequence(v))), + "DRAWING_SHEET_LAYOUT" => DrawingSheetLayout_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DrawingSheetLayout(v))), + "DRAWING_SHEET_REVISION" => DrawingSheetRevision_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DrawingSheetRevision(v))), + "DRAWING_SHEET_REVISION_USAGE" => DrawingSheetRevisionUsage_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::DrawingSheetRevisionUsage(v))), "EDGE" => Edge_::parse_chunks(strs).map(|(s, v)| (s, Entity::Edge(v))), - "EDGE_BASED_WIREFRAME_MODEL" => EdgeBasedWireframeModel_::parse_chunks(strs).map(|(s, v)| (s, Entity::EdgeBasedWireframeModel(v))), - "EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION" => EdgeBasedWireframeShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::EdgeBasedWireframeShapeRepresentation(v))), + "EDGE_BASED_WIREFRAME_MODEL" => EdgeBasedWireframeModel_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::EdgeBasedWireframeModel(v))), + "EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION" => { + EdgeBasedWireframeShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::EdgeBasedWireframeShapeRepresentation(v))) + } "EDGE_CURVE" => EdgeCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::EdgeCurve(v))), "EDGE_LOOP" => EdgeLoop_::parse_chunks(strs).map(|(s, v)| (s, Entity::EdgeLoop(v))), "EDGE_ROUND" => EdgeRound_::parse_chunks(strs).map(|(s, v)| (s, Entity::EdgeRound(v))), - "EFFECTIVITY" => Effectivity_::parse_chunks(strs).map(|(s, v)| (s, Entity::Effectivity(v))), - "EFFECTIVITY_ASSIGNMENT" => EffectivityAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::EffectivityAssignment(v))), - "EFFECTIVITY_CONTEXT_ASSIGNMENT" => EffectivityContextAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::EffectivityContextAssignment(v))), - "EFFECTIVITY_CONTEXT_ROLE" => EffectivityContextRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::EffectivityContextRole(v))), - "EFFECTIVITY_RELATIONSHIP" => EffectivityRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::EffectivityRelationship(v))), - "ELECTRIC_CURRENT_MEASURE_WITH_UNIT" => ElectricCurrentMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::ElectricCurrentMeasureWithUnit(v))), - "ELECTRIC_CURRENT_UNIT" => ElectricCurrentUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::ElectricCurrentUnit(v))), - "ELEMENT_DELIVERY" => ElementDelivery_::parse_chunks(strs).map(|(s, v)| (s, Entity::ElementDelivery(v))), - "ELEMENTARY_SURFACE" => ElementarySurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::ElementarySurface(v))), + "EFFECTIVITY" => { + Effectivity_::parse_chunks(strs).map(|(s, v)| (s, Entity::Effectivity(v))) + } + "EFFECTIVITY_ASSIGNMENT" => EffectivityAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::EffectivityAssignment(v))), + "EFFECTIVITY_CONTEXT_ASSIGNMENT" => EffectivityContextAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::EffectivityContextAssignment(v))), + "EFFECTIVITY_CONTEXT_ROLE" => EffectivityContextRole_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::EffectivityContextRole(v))), + "EFFECTIVITY_RELATIONSHIP" => EffectivityRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::EffectivityRelationship(v))), + "ELECTRIC_CURRENT_MEASURE_WITH_UNIT" => { + ElectricCurrentMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ElectricCurrentMeasureWithUnit(v))) + } + "ELECTRIC_CURRENT_UNIT" => ElectricCurrentUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ElectricCurrentUnit(v))), + "ELEMENT_DELIVERY" => { + ElementDelivery_::parse_chunks(strs).map(|(s, v)| (s, Entity::ElementDelivery(v))) + } + "ELEMENTARY_SURFACE" => ElementarySurface_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ElementarySurface(v))), "ELLIPSE" => Ellipse_::parse_chunks(strs).map(|(s, v)| (s, Entity::Ellipse(v))), - "ENVIRONMENT" => Environment_::parse_chunks(strs).map(|(s, v)| (s, Entity::Environment(v))), - "EQUALS_EXPRESSION" => EqualsExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::EqualsExpression(v))), - "EVALUATED_DEGENERATE_PCURVE" => EvaluatedDegeneratePcurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::EvaluatedDegeneratePcurve(v))), - "EVENT_OCCURRENCE" => EventOccurrence_::parse_chunks(strs).map(|(s, v)| (s, Entity::EventOccurrence(v))), - "EVENT_OCCURRENCE_ASSIGNMENT" => EventOccurrenceAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::EventOccurrenceAssignment(v))), - "EVENT_OCCURRENCE_CONTEXT_ASSIGNMENT" => EventOccurrenceContextAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::EventOccurrenceContextAssignment(v))), - "EVENT_OCCURRENCE_CONTEXT_ROLE" => EventOccurrenceContextRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::EventOccurrenceContextRole(v))), - "EVENT_OCCURRENCE_ROLE" => EventOccurrenceRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::EventOccurrenceRole(v))), - "EXCLUSIVE_PRODUCT_CONCEPT_FEATURE_CATEGORY" => ExclusiveProductConceptFeatureCategory_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExclusiveProductConceptFeatureCategory(v))), - "EXECUTED_ACTION" => ExecutedAction_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExecutedAction(v))), - "EXP_FUNCTION" => ExpFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExpFunction(v))), - "EXPRESSION" => Expression_::parse_chunks(strs).map(|(s, v)| (s, Entity::Expression(v))), - "EXPRESSION_CONVERSION_BASED_UNIT" => ExpressionConversionBasedUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExpressionConversionBasedUnit(v))), + "ENVIRONMENT" => { + Environment_::parse_chunks(strs).map(|(s, v)| (s, Entity::Environment(v))) + } + "EQUALS_EXPRESSION" => { + EqualsExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::EqualsExpression(v))) + } + "EVALUATED_DEGENERATE_PCURVE" => EvaluatedDegeneratePcurve_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::EvaluatedDegeneratePcurve(v))), + "EVENT_OCCURRENCE" => { + EventOccurrence_::parse_chunks(strs).map(|(s, v)| (s, Entity::EventOccurrence(v))) + } + "EVENT_OCCURRENCE_ASSIGNMENT" => EventOccurrenceAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::EventOccurrenceAssignment(v))), + "EVENT_OCCURRENCE_CONTEXT_ASSIGNMENT" => { + EventOccurrenceContextAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::EventOccurrenceContextAssignment(v))) + } + "EVENT_OCCURRENCE_CONTEXT_ROLE" => EventOccurrenceContextRole_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::EventOccurrenceContextRole(v))), + "EVENT_OCCURRENCE_ROLE" => EventOccurrenceRole_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::EventOccurrenceRole(v))), + "EXCLUSIVE_PRODUCT_CONCEPT_FEATURE_CATEGORY" => { + ExclusiveProductConceptFeatureCategory_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExclusiveProductConceptFeatureCategory(v))) + } + "EXECUTED_ACTION" => { + ExecutedAction_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExecutedAction(v))) + } + "EXP_FUNCTION" => { + ExpFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExpFunction(v))) + } + "EXPRESSION" => { + Expression_::parse_chunks(strs).map(|(s, v)| (s, Entity::Expression(v))) + } + "EXPRESSION_CONVERSION_BASED_UNIT" => { + ExpressionConversionBasedUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExpressionConversionBasedUnit(v))) + } "EXTENSION" => Extension_::parse_chunks(strs).map(|(s, v)| (s, Entity::Extension(v))), - "EXTERNAL_IDENTIFICATION_ASSIGNMENT" => ExternalIdentificationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternalIdentificationAssignment(v))), - "EXTERNAL_SOURCE" => ExternalSource_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternalSource(v))), - "EXTERNALLY_DEFINED_CHARACTER_GLYPH" => ExternallyDefinedCharacterGlyph_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternallyDefinedCharacterGlyph(v))), - "EXTERNALLY_DEFINED_CLASS" => ExternallyDefinedClass_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternallyDefinedClass(v))), - "EXTERNALLY_DEFINED_CURVE_FONT" => ExternallyDefinedCurveFont_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternallyDefinedCurveFont(v))), - "EXTERNALLY_DEFINED_DIMENSION_DEFINITION" => ExternallyDefinedDimensionDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternallyDefinedDimensionDefinition(v))), - "EXTERNALLY_DEFINED_FEATURE_DEFINITION" => ExternallyDefinedFeatureDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternallyDefinedFeatureDefinition(v))), - "EXTERNALLY_DEFINED_GENERAL_PROPERTY" => ExternallyDefinedGeneralProperty_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternallyDefinedGeneralProperty(v))), - "EXTERNALLY_DEFINED_HATCH_STYLE" => ExternallyDefinedHatchStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternallyDefinedHatchStyle(v))), - "EXTERNALLY_DEFINED_ITEM" => ExternallyDefinedItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternallyDefinedItem(v))), - "EXTERNALLY_DEFINED_ITEM_RELATIONSHIP" => ExternallyDefinedItemRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternallyDefinedItemRelationship(v))), - "EXTERNALLY_DEFINED_STYLE" => ExternallyDefinedStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternallyDefinedStyle(v))), - "EXTERNALLY_DEFINED_SYMBOL" => ExternallyDefinedSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternallyDefinedSymbol(v))), - "EXTERNALLY_DEFINED_TEXT_FONT" => ExternallyDefinedTextFont_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternallyDefinedTextFont(v))), - "EXTERNALLY_DEFINED_TILE_STYLE" => ExternallyDefinedTileStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternallyDefinedTileStyle(v))), - "EXTRUDED_AREA_SOLID" => ExtrudedAreaSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExtrudedAreaSolid(v))), - "EXTRUDED_FACE_SOLID" => ExtrudedFaceSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExtrudedFaceSolid(v))), + "EXTERNAL_IDENTIFICATION_ASSIGNMENT" => { + ExternalIdentificationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternalIdentificationAssignment(v))) + } + "EXTERNAL_SOURCE" => { + ExternalSource_::parse_chunks(strs).map(|(s, v)| (s, Entity::ExternalSource(v))) + } + "EXTERNALLY_DEFINED_CHARACTER_GLYPH" => { + ExternallyDefinedCharacterGlyph_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternallyDefinedCharacterGlyph(v))) + } + "EXTERNALLY_DEFINED_CLASS" => ExternallyDefinedClass_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternallyDefinedClass(v))), + "EXTERNALLY_DEFINED_CURVE_FONT" => ExternallyDefinedCurveFont_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternallyDefinedCurveFont(v))), + "EXTERNALLY_DEFINED_DIMENSION_DEFINITION" => { + ExternallyDefinedDimensionDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternallyDefinedDimensionDefinition(v))) + } + "EXTERNALLY_DEFINED_FEATURE_DEFINITION" => { + ExternallyDefinedFeatureDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternallyDefinedFeatureDefinition(v))) + } + "EXTERNALLY_DEFINED_GENERAL_PROPERTY" => { + ExternallyDefinedGeneralProperty_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternallyDefinedGeneralProperty(v))) + } + "EXTERNALLY_DEFINED_HATCH_STYLE" => ExternallyDefinedHatchStyle_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternallyDefinedHatchStyle(v))), + "EXTERNALLY_DEFINED_ITEM" => ExternallyDefinedItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternallyDefinedItem(v))), + "EXTERNALLY_DEFINED_ITEM_RELATIONSHIP" => { + ExternallyDefinedItemRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternallyDefinedItemRelationship(v))) + } + "EXTERNALLY_DEFINED_STYLE" => ExternallyDefinedStyle_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternallyDefinedStyle(v))), + "EXTERNALLY_DEFINED_SYMBOL" => ExternallyDefinedSymbol_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternallyDefinedSymbol(v))), + "EXTERNALLY_DEFINED_TEXT_FONT" => ExternallyDefinedTextFont_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternallyDefinedTextFont(v))), + "EXTERNALLY_DEFINED_TILE_STYLE" => ExternallyDefinedTileStyle_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExternallyDefinedTileStyle(v))), + "EXTRUDED_AREA_SOLID" => ExtrudedAreaSolid_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExtrudedAreaSolid(v))), + "EXTRUDED_FACE_SOLID" => ExtrudedFaceSolid_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ExtrudedFaceSolid(v))), "FACE" => Face_::parse_chunks(strs).map(|(s, v)| (s, Entity::Face(v))), - "FACE_BASED_SURFACE_MODEL" => FaceBasedSurfaceModel_::parse_chunks(strs).map(|(s, v)| (s, Entity::FaceBasedSurfaceModel(v))), + "FACE_BASED_SURFACE_MODEL" => FaceBasedSurfaceModel_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FaceBasedSurfaceModel(v))), "FACE_BOUND" => FaceBound_::parse_chunks(strs).map(|(s, v)| (s, Entity::FaceBound(v))), - "FACE_OUTER_BOUND" => FaceOuterBound_::parse_chunks(strs).map(|(s, v)| (s, Entity::FaceOuterBound(v))), - "FACE_SHAPE_REPRESENTATION" => FaceShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::FaceShapeRepresentation(v))), - "FACE_SURFACE" => FaceSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::FaceSurface(v))), - "FACETED_BREP" => FacetedBrep_::parse_chunks(strs).map(|(s, v)| (s, Entity::FacetedBrep(v))), - "FACETED_BREP_SHAPE_REPRESENTATION" => FacetedBrepShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::FacetedBrepShapeRepresentation(v))), - "FEATURE_COMPONENT_DEFINITION" => FeatureComponentDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::FeatureComponentDefinition(v))), - "FEATURE_COMPONENT_RELATIONSHIP" => FeatureComponentRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::FeatureComponentRelationship(v))), - "FEATURE_DEFINITION" => FeatureDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::FeatureDefinition(v))), - "FEATURE_IN_PANEL" => FeatureInPanel_::parse_chunks(strs).map(|(s, v)| (s, Entity::FeatureInPanel(v))), - "FEATURE_PATTERN" => FeaturePattern_::parse_chunks(strs).map(|(s, v)| (s, Entity::FeaturePattern(v))), - "FEATURED_SHAPE" => FeaturedShape_::parse_chunks(strs).map(|(s, v)| (s, Entity::FeaturedShape(v))), - "FILL_AREA_STYLE" => FillAreaStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::FillAreaStyle(v))), - "FILL_AREA_STYLE_COLOUR" => FillAreaStyleColour_::parse_chunks(strs).map(|(s, v)| (s, Entity::FillAreaStyleColour(v))), - "FILL_AREA_STYLE_HATCHING" => FillAreaStyleHatching_::parse_chunks(strs).map(|(s, v)| (s, Entity::FillAreaStyleHatching(v))), - "FILL_AREA_STYLE_TILE_SYMBOL_WITH_STYLE" => FillAreaStyleTileSymbolWithStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::FillAreaStyleTileSymbolWithStyle(v))), - "FILL_AREA_STYLE_TILES" => FillAreaStyleTiles_::parse_chunks(strs).map(|(s, v)| (s, Entity::FillAreaStyleTiles(v))), + "FACE_OUTER_BOUND" => { + FaceOuterBound_::parse_chunks(strs).map(|(s, v)| (s, Entity::FaceOuterBound(v))) + } + "FACE_SHAPE_REPRESENTATION" => FaceShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FaceShapeRepresentation(v))), + "FACE_SURFACE" => { + FaceSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::FaceSurface(v))) + } + "FACETED_BREP" => { + FacetedBrep_::parse_chunks(strs).map(|(s, v)| (s, Entity::FacetedBrep(v))) + } + "FACETED_BREP_SHAPE_REPRESENTATION" => { + FacetedBrepShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FacetedBrepShapeRepresentation(v))) + } + "FEATURE_COMPONENT_DEFINITION" => FeatureComponentDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FeatureComponentDefinition(v))), + "FEATURE_COMPONENT_RELATIONSHIP" => FeatureComponentRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FeatureComponentRelationship(v))), + "FEATURE_DEFINITION" => FeatureDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FeatureDefinition(v))), + "FEATURE_IN_PANEL" => { + FeatureInPanel_::parse_chunks(strs).map(|(s, v)| (s, Entity::FeatureInPanel(v))) + } + "FEATURE_PATTERN" => { + FeaturePattern_::parse_chunks(strs).map(|(s, v)| (s, Entity::FeaturePattern(v))) + } + "FEATURED_SHAPE" => { + FeaturedShape_::parse_chunks(strs).map(|(s, v)| (s, Entity::FeaturedShape(v))) + } + "FILL_AREA_STYLE" => { + FillAreaStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::FillAreaStyle(v))) + } + "FILL_AREA_STYLE_COLOUR" => FillAreaStyleColour_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FillAreaStyleColour(v))), + "FILL_AREA_STYLE_HATCHING" => FillAreaStyleHatching_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FillAreaStyleHatching(v))), + "FILL_AREA_STYLE_TILE_SYMBOL_WITH_STYLE" => { + FillAreaStyleTileSymbolWithStyle_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FillAreaStyleTileSymbolWithStyle(v))) + } + "FILL_AREA_STYLE_TILES" => FillAreaStyleTiles_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FillAreaStyleTiles(v))), "FILLET" => Fillet_::parse_chunks(strs).map(|(s, v)| (s, Entity::Fillet(v))), - "FLATNESS_TOLERANCE" => FlatnessTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::FlatnessTolerance(v))), - "FORMAT_FUNCTION" => FormatFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::FormatFunction(v))), - "FOUNDED_ITEM" => FoundedItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::FoundedItem(v))), - "FOUNDED_KINEMATIC_PATH" => FoundedKinematicPath_::parse_chunks(strs).map(|(s, v)| (s, Entity::FoundedKinematicPath(v))), - "FULLY_CONSTRAINED_PAIR" => FullyConstrainedPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::FullyConstrainedPair(v))), - "FUNCTIONALLY_DEFINED_TRANSFORMATION" => FunctionallyDefinedTransformation_::parse_chunks(strs).map(|(s, v)| (s, Entity::FunctionallyDefinedTransformation(v))), + "FLATNESS_TOLERANCE" => FlatnessTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FlatnessTolerance(v))), + "FORMAT_FUNCTION" => { + FormatFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::FormatFunction(v))) + } + "FOUNDED_ITEM" => { + FoundedItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::FoundedItem(v))) + } + "FOUNDED_KINEMATIC_PATH" => FoundedKinematicPath_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FoundedKinematicPath(v))), + "FULLY_CONSTRAINED_PAIR" => FullyConstrainedPair_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FullyConstrainedPair(v))), + "FUNCTIONALLY_DEFINED_TRANSFORMATION" => { + FunctionallyDefinedTransformation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::FunctionallyDefinedTransformation(v))) + } "GEAR_PAIR" => GearPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::GearPair(v))), - "GEAR_PAIR_RANGE" => GearPairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::GearPairRange(v))), - "GEAR_PAIR_VALUE" => GearPairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::GearPairValue(v))), - "GENERAL_FEATURE" => GeneralFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeneralFeature(v))), - "GENERAL_MATERIAL_PROPERTY" => GeneralMaterialProperty_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeneralMaterialProperty(v))), - "GENERAL_PROPERTY" => GeneralProperty_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeneralProperty(v))), - "GENERAL_PROPERTY_ASSOCIATION" => GeneralPropertyAssociation_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeneralPropertyAssociation(v))), - "GENERAL_PROPERTY_RELATIONSHIP" => GeneralPropertyRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeneralPropertyRelationship(v))), - "GENERIC_CHARACTER_GLYPH_SYMBOL" => GenericCharacterGlyphSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::GenericCharacterGlyphSymbol(v))), - "GENERIC_EXPRESSION" => GenericExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::GenericExpression(v))), - "GENERIC_LITERAL" => GenericLiteral_::parse_chunks(strs).map(|(s, v)| (s, Entity::GenericLiteral(v))), - "GENERIC_VARIABLE" => GenericVariable_::parse_chunks(strs).map(|(s, v)| (s, Entity::GenericVariable(v))), - "GEOMETRIC_ALIGNMENT" => GeometricAlignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricAlignment(v))), - "GEOMETRIC_CURVE_SET" => GeometricCurveSet_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricCurveSet(v))), - "GEOMETRIC_INTERSECTION" => GeometricIntersection_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricIntersection(v))), - "GEOMETRIC_ITEM_SPECIFIC_USAGE" => GeometricItemSpecificUsage_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricItemSpecificUsage(v))), - "GEOMETRIC_REPRESENTATION_CONTEXT" => GeometricRepresentationContext_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricRepresentationContext(v))), - "GEOMETRIC_REPRESENTATION_ITEM" => GeometricRepresentationItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricRepresentationItem(v))), - "GEOMETRIC_SET" => GeometricSet_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricSet(v))), - "GEOMETRIC_TOLERANCE" => GeometricTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricTolerance(v))), - "GEOMETRIC_TOLERANCE_RELATIONSHIP" => GeometricToleranceRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricToleranceRelationship(v))), - "GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE" => GeometricToleranceWithDatumReference_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricToleranceWithDatumReference(v))), - "GEOMETRIC_TOLERANCE_WITH_DEFINED_UNIT" => GeometricToleranceWithDefinedUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricToleranceWithDefinedUnit(v))), - "GEOMETRICAL_TOLERANCE_CALLOUT" => GeometricalToleranceCallout_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricalToleranceCallout(v))), - "GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION" => GeometricallyBounded2dWireframeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricallyBounded2dWireframeRepresentation(v))), - "GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION" => GeometricallyBoundedSurfaceShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricallyBoundedSurfaceShapeRepresentation(v))), - "GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION" => GeometricallyBoundedWireframeShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricallyBoundedWireframeShapeRepresentation(v))), - "GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT" => GlobalUncertaintyAssignedContext_::parse_chunks(strs).map(|(s, v)| (s, Entity::GlobalUncertaintyAssignedContext(v))), - "GLOBAL_UNIT_ASSIGNED_CONTEXT" => GlobalUnitAssignedContext_::parse_chunks(strs).map(|(s, v)| (s, Entity::GlobalUnitAssignedContext(v))), + "GEAR_PAIR_RANGE" => { + GearPairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::GearPairRange(v))) + } + "GEAR_PAIR_VALUE" => { + GearPairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::GearPairValue(v))) + } + "GENERAL_FEATURE" => { + GeneralFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeneralFeature(v))) + } + "GENERAL_MATERIAL_PROPERTY" => GeneralMaterialProperty_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeneralMaterialProperty(v))), + "GENERAL_PROPERTY" => { + GeneralProperty_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeneralProperty(v))) + } + "GENERAL_PROPERTY_ASSOCIATION" => GeneralPropertyAssociation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeneralPropertyAssociation(v))), + "GENERAL_PROPERTY_RELATIONSHIP" => GeneralPropertyRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeneralPropertyRelationship(v))), + "GENERIC_CHARACTER_GLYPH_SYMBOL" => GenericCharacterGlyphSymbol_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GenericCharacterGlyphSymbol(v))), + "GENERIC_EXPRESSION" => GenericExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GenericExpression(v))), + "GENERIC_LITERAL" => { + GenericLiteral_::parse_chunks(strs).map(|(s, v)| (s, Entity::GenericLiteral(v))) + } + "GENERIC_VARIABLE" => { + GenericVariable_::parse_chunks(strs).map(|(s, v)| (s, Entity::GenericVariable(v))) + } + "GEOMETRIC_ALIGNMENT" => GeometricAlignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeometricAlignment(v))), + "GEOMETRIC_CURVE_SET" => GeometricCurveSet_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeometricCurveSet(v))), + "GEOMETRIC_INTERSECTION" => GeometricIntersection_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeometricIntersection(v))), + "GEOMETRIC_ITEM_SPECIFIC_USAGE" => GeometricItemSpecificUsage_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeometricItemSpecificUsage(v))), + "GEOMETRIC_REPRESENTATION_CONTEXT" => { + GeometricRepresentationContext_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeometricRepresentationContext(v))) + } + "GEOMETRIC_REPRESENTATION_ITEM" => GeometricRepresentationItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeometricRepresentationItem(v))), + "GEOMETRIC_SET" => { + GeometricSet_::parse_chunks(strs).map(|(s, v)| (s, Entity::GeometricSet(v))) + } + "GEOMETRIC_TOLERANCE" => GeometricTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeometricTolerance(v))), + "GEOMETRIC_TOLERANCE_RELATIONSHIP" => { + GeometricToleranceRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeometricToleranceRelationship(v))) + } + "GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE" => { + GeometricToleranceWithDatumReference_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeometricToleranceWithDatumReference(v))) + } + "GEOMETRIC_TOLERANCE_WITH_DEFINED_UNIT" => { + GeometricToleranceWithDefinedUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeometricToleranceWithDefinedUnit(v))) + } + "GEOMETRICAL_TOLERANCE_CALLOUT" => GeometricalToleranceCallout_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeometricalToleranceCallout(v))), + "GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION" => { + GeometricallyBounded2dWireframeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeometricallyBounded2dWireframeRepresentation(v))) + } + "GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION" => { + GeometricallyBoundedSurfaceShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GeometricallyBoundedSurfaceShapeRepresentation(v))) + } + "GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION" => { + GeometricallyBoundedWireframeShapeRepresentation_::parse_chunks(strs).map( + |(s, v)| { + ( + s, + Entity::GeometricallyBoundedWireframeShapeRepresentation(v), + ) + }, + ) + } + "GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT" => { + GlobalUncertaintyAssignedContext_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GlobalUncertaintyAssignedContext(v))) + } + "GLOBAL_UNIT_ASSIGNED_CONTEXT" => GlobalUnitAssignedContext_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GlobalUnitAssignedContext(v))), "GROUP" => Group_::parse_chunks(strs).map(|(s, v)| (s, Entity::Group(v))), - "GROUP_ASSIGNMENT" => GroupAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::GroupAssignment(v))), - "GROUP_RELATIONSHIP" => GroupRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::GroupRelationship(v))), - "HALF_SPACE_SOLID" => HalfSpaceSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::HalfSpaceSolid(v))), - "HARDNESS_REPRESENTATION" => HardnessRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::HardnessRepresentation(v))), - "HIDDEN_ELEMENT_OVER_RIDING_STYLED_ITEM" => HiddenElementOverRidingStyledItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::HiddenElementOverRidingStyledItem(v))), - "HOLE_BOTTOM" => HoleBottom_::parse_chunks(strs).map(|(s, v)| (s, Entity::HoleBottom(v))), - "HOLE_IN_PANEL" => HoleInPanel_::parse_chunks(strs).map(|(s, v)| (s, Entity::HoleInPanel(v))), - "HOMOKINETIC_PAIR" => HomokineticPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::HomokineticPair(v))), + "GROUP_ASSIGNMENT" => { + GroupAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::GroupAssignment(v))) + } + "GROUP_RELATIONSHIP" => GroupRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::GroupRelationship(v))), + "HALF_SPACE_SOLID" => { + HalfSpaceSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::HalfSpaceSolid(v))) + } + "HARDNESS_REPRESENTATION" => HardnessRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::HardnessRepresentation(v))), + "HIDDEN_ELEMENT_OVER_RIDING_STYLED_ITEM" => { + HiddenElementOverRidingStyledItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::HiddenElementOverRidingStyledItem(v))) + } + "HOLE_BOTTOM" => { + HoleBottom_::parse_chunks(strs).map(|(s, v)| (s, Entity::HoleBottom(v))) + } + "HOLE_IN_PANEL" => { + HoleInPanel_::parse_chunks(strs).map(|(s, v)| (s, Entity::HoleInPanel(v))) + } + "HOMOKINETIC_PAIR" => { + HomokineticPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::HomokineticPair(v))) + } "HYPERBOLA" => Hyperbola_::parse_chunks(strs).map(|(s, v)| (s, Entity::Hyperbola(v))), - "ID_ATTRIBUTE" => IdAttribute_::parse_chunks(strs).map(|(s, v)| (s, Entity::IdAttribute(v))), - "IDENTIFICATION_ASSIGNMENT" => IdentificationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::IdentificationAssignment(v))), - "IDENTIFICATION_ROLE" => IdentificationRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::IdentificationRole(v))), - "INCLUSION_PRODUCT_CONCEPT_FEATURE" => InclusionProductConceptFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::InclusionProductConceptFeature(v))), - "INDEX_EXPRESSION" => IndexExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::IndexExpression(v))), - "INITIAL_STATE" => InitialState_::parse_chunks(strs).map(|(s, v)| (s, Entity::InitialState(v))), - "INSTANCED_FEATURE" => InstancedFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::InstancedFeature(v))), - "INT_LITERAL" => IntLiteral_::parse_chunks(strs).map(|(s, v)| (s, Entity::IntLiteral(v))), - "INT_NUMERIC_VARIABLE" => IntNumericVariable_::parse_chunks(strs).map(|(s, v)| (s, Entity::IntNumericVariable(v))), - "INT_VALUE_FUNCTION" => IntValueFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::IntValueFunction(v))), - "INTEGER_DEFINED_FUNCTION" => IntegerDefinedFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::IntegerDefinedFunction(v))), - "INTERPOLATED_CONFIGURATION_SEQUENCE" => InterpolatedConfigurationSequence_::parse_chunks(strs).map(|(s, v)| (s, Entity::InterpolatedConfigurationSequence(v))), - "INTERSECTION_CURVE" => IntersectionCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::IntersectionCurve(v))), - "INTERVAL_EXPRESSION" => IntervalExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::IntervalExpression(v))), - "INVISIBILITY" => Invisibility_::parse_chunks(strs).map(|(s, v)| (s, Entity::Invisibility(v))), - "ITEM_DEFINED_TRANSFORMATION" => ItemDefinedTransformation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ItemDefinedTransformation(v))), - "ITEM_IDENTIFIED_REPRESENTATION_USAGE" => ItemIdentifiedRepresentationUsage_::parse_chunks(strs).map(|(s, v)| (s, Entity::ItemIdentifiedRepresentationUsage(v))), + "ID_ATTRIBUTE" => { + IdAttribute_::parse_chunks(strs).map(|(s, v)| (s, Entity::IdAttribute(v))) + } + "IDENTIFICATION_ASSIGNMENT" => IdentificationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::IdentificationAssignment(v))), + "IDENTIFICATION_ROLE" => IdentificationRole_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::IdentificationRole(v))), + "INCLUSION_PRODUCT_CONCEPT_FEATURE" => { + InclusionProductConceptFeature_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::InclusionProductConceptFeature(v))) + } + "INDEX_EXPRESSION" => { + IndexExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::IndexExpression(v))) + } + "INITIAL_STATE" => { + InitialState_::parse_chunks(strs).map(|(s, v)| (s, Entity::InitialState(v))) + } + "INSTANCED_FEATURE" => { + InstancedFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::InstancedFeature(v))) + } + "INT_LITERAL" => { + IntLiteral_::parse_chunks(strs).map(|(s, v)| (s, Entity::IntLiteral(v))) + } + "INT_NUMERIC_VARIABLE" => IntNumericVariable_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::IntNumericVariable(v))), + "INT_VALUE_FUNCTION" => { + IntValueFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::IntValueFunction(v))) + } + "INTEGER_DEFINED_FUNCTION" => IntegerDefinedFunction_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::IntegerDefinedFunction(v))), + "INTERPOLATED_CONFIGURATION_SEQUENCE" => { + InterpolatedConfigurationSequence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::InterpolatedConfigurationSequence(v))) + } + "INTERSECTION_CURVE" => IntersectionCurve_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::IntersectionCurve(v))), + "INTERVAL_EXPRESSION" => IntervalExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::IntervalExpression(v))), + "INVISIBILITY" => { + Invisibility_::parse_chunks(strs).map(|(s, v)| (s, Entity::Invisibility(v))) + } + "ITEM_DEFINED_TRANSFORMATION" => ItemDefinedTransformation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ItemDefinedTransformation(v))), + "ITEM_IDENTIFIED_REPRESENTATION_USAGE" => { + ItemIdentifiedRepresentationUsage_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ItemIdentifiedRepresentationUsage(v))) + } "JOGGLE" => Joggle_::parse_chunks(strs).map(|(s, v)| (s, Entity::Joggle(v))), - "JOGGLE_TERMINATION" => JoggleTermination_::parse_chunks(strs).map(|(s, v)| (s, Entity::JoggleTermination(v))), - "KINEMATIC_ANALYSIS_CONSISTENCY" => KinematicAnalysisConsistency_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicAnalysisConsistency(v))), - "KINEMATIC_ANALYSIS_RESULT" => KinematicAnalysisResult_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicAnalysisResult(v))), - "KINEMATIC_CONTROL" => KinematicControl_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicControl(v))), - "KINEMATIC_FRAME_BACKGROUND_REPRESENTATION" => KinematicFrameBackgroundRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicFrameBackgroundRepresentation(v))), - "KINEMATIC_FRAME_BACKGROUND_REPRESENTATION_ASSOCIATION" => KinematicFrameBackgroundRepresentationAssociation_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicFrameBackgroundRepresentationAssociation(v))), - "KINEMATIC_FRAME_BASED_TRANSFORMATION" => KinematicFrameBasedTransformation_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicFrameBasedTransformation(v))), - "KINEMATIC_GROUND_REPRESENTATION" => KinematicGroundRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicGroundRepresentation(v))), - "KINEMATIC_JOINT" => KinematicJoint_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicJoint(v))), - "KINEMATIC_LINK" => KinematicLink_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicLink(v))), - "KINEMATIC_LINK_REPRESENTATION" => KinematicLinkRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicLinkRepresentation(v))), - "KINEMATIC_LINK_REPRESENTATION_ASSOCIATION" => KinematicLinkRepresentationAssociation_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicLinkRepresentationAssociation(v))), - "KINEMATIC_LINK_REPRESENTATION_RELATION" => KinematicLinkRepresentationRelation_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicLinkRepresentationRelation(v))), - "KINEMATIC_PAIR" => KinematicPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicPair(v))), - "KINEMATIC_PATH" => KinematicPath_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicPath(v))), - "KINEMATIC_PROPERTY_DEFINITION" => KinematicPropertyDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicPropertyDefinition(v))), - "KINEMATIC_PROPERTY_REPRESENTATION_RELATION" => KinematicPropertyRepresentationRelation_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicPropertyRepresentationRelation(v))), - "KINEMATIC_STRUCTURE" => KinematicStructure_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicStructure(v))), - "KNOWN_SOURCE" => KnownSource_::parse_chunks(strs).map(|(s, v)| (s, Entity::KnownSource(v))), + "JOGGLE_TERMINATION" => JoggleTermination_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::JoggleTermination(v))), + "KINEMATIC_ANALYSIS_CONSISTENCY" => KinematicAnalysisConsistency_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::KinematicAnalysisConsistency(v))), + "KINEMATIC_ANALYSIS_RESULT" => KinematicAnalysisResult_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::KinematicAnalysisResult(v))), + "KINEMATIC_CONTROL" => { + KinematicControl_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicControl(v))) + } + "KINEMATIC_FRAME_BACKGROUND_REPRESENTATION" => { + KinematicFrameBackgroundRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::KinematicFrameBackgroundRepresentation(v))) + } + "KINEMATIC_FRAME_BACKGROUND_REPRESENTATION_ASSOCIATION" => { + KinematicFrameBackgroundRepresentationAssociation_::parse_chunks(strs).map( + |(s, v)| { + ( + s, + Entity::KinematicFrameBackgroundRepresentationAssociation(v), + ) + }, + ) + } + "KINEMATIC_FRAME_BASED_TRANSFORMATION" => { + KinematicFrameBasedTransformation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::KinematicFrameBasedTransformation(v))) + } + "KINEMATIC_GROUND_REPRESENTATION" => KinematicGroundRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::KinematicGroundRepresentation(v))), + "KINEMATIC_JOINT" => { + KinematicJoint_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicJoint(v))) + } + "KINEMATIC_LINK" => { + KinematicLink_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicLink(v))) + } + "KINEMATIC_LINK_REPRESENTATION" => KinematicLinkRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::KinematicLinkRepresentation(v))), + "KINEMATIC_LINK_REPRESENTATION_ASSOCIATION" => { + KinematicLinkRepresentationAssociation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::KinematicLinkRepresentationAssociation(v))) + } + "KINEMATIC_LINK_REPRESENTATION_RELATION" => { + KinematicLinkRepresentationRelation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::KinematicLinkRepresentationRelation(v))) + } + "KINEMATIC_PAIR" => { + KinematicPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicPair(v))) + } + "KINEMATIC_PATH" => { + KinematicPath_::parse_chunks(strs).map(|(s, v)| (s, Entity::KinematicPath(v))) + } + "KINEMATIC_PROPERTY_DEFINITION" => KinematicPropertyDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::KinematicPropertyDefinition(v))), + "KINEMATIC_PROPERTY_REPRESENTATION_RELATION" => { + KinematicPropertyRepresentationRelation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::KinematicPropertyRepresentationRelation(v))) + } + "KINEMATIC_STRUCTURE" => KinematicStructure_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::KinematicStructure(v))), + "KNOWN_SOURCE" => { + KnownSource_::parse_chunks(strs).map(|(s, v)| (s, Entity::KnownSource(v))) + } "LANGUAGE" => Language_::parse_chunks(strs).map(|(s, v)| (s, Entity::Language(v))), - "LANGUAGE_ASSIGNMENT" => LanguageAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::LanguageAssignment(v))), - "LEADER_CURVE" => LeaderCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::LeaderCurve(v))), - "LEADER_DIRECTED_CALLOUT" => LeaderDirectedCallout_::parse_chunks(strs).map(|(s, v)| (s, Entity::LeaderDirectedCallout(v))), - "LEADER_DIRECTED_DIMENSION" => LeaderDirectedDimension_::parse_chunks(strs).map(|(s, v)| (s, Entity::LeaderDirectedDimension(v))), - "LEADER_TERMINATOR" => LeaderTerminator_::parse_chunks(strs).map(|(s, v)| (s, Entity::LeaderTerminator(v))), - "LENGTH_FUNCTION" => LengthFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::LengthFunction(v))), - "LENGTH_MEASURE_WITH_UNIT" => LengthMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::LengthMeasureWithUnit(v))), - "LENGTH_UNIT" => LengthUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::LengthUnit(v))), - "LIGHT_SOURCE" => LightSource_::parse_chunks(strs).map(|(s, v)| (s, Entity::LightSource(v))), - "LIGHT_SOURCE_AMBIENT" => LightSourceAmbient_::parse_chunks(strs).map(|(s, v)| (s, Entity::LightSourceAmbient(v))), - "LIGHT_SOURCE_DIRECTIONAL" => LightSourceDirectional_::parse_chunks(strs).map(|(s, v)| (s, Entity::LightSourceDirectional(v))), - "LIGHT_SOURCE_POSITIONAL" => LightSourcePositional_::parse_chunks(strs).map(|(s, v)| (s, Entity::LightSourcePositional(v))), - "LIGHT_SOURCE_SPOT" => LightSourceSpot_::parse_chunks(strs).map(|(s, v)| (s, Entity::LightSourceSpot(v))), - "LIKE_EXPRESSION" => LikeExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::LikeExpression(v))), - "LIMITS_AND_FITS" => LimitsAndFits_::parse_chunks(strs).map(|(s, v)| (s, Entity::LimitsAndFits(v))), + "LANGUAGE_ASSIGNMENT" => LanguageAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::LanguageAssignment(v))), + "LEADER_CURVE" => { + LeaderCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::LeaderCurve(v))) + } + "LEADER_DIRECTED_CALLOUT" => LeaderDirectedCallout_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::LeaderDirectedCallout(v))), + "LEADER_DIRECTED_DIMENSION" => LeaderDirectedDimension_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::LeaderDirectedDimension(v))), + "LEADER_TERMINATOR" => { + LeaderTerminator_::parse_chunks(strs).map(|(s, v)| (s, Entity::LeaderTerminator(v))) + } + "LENGTH_FUNCTION" => { + LengthFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::LengthFunction(v))) + } + "LENGTH_MEASURE_WITH_UNIT" => LengthMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::LengthMeasureWithUnit(v))), + "LENGTH_UNIT" => { + LengthUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::LengthUnit(v))) + } + "LIGHT_SOURCE" => { + LightSource_::parse_chunks(strs).map(|(s, v)| (s, Entity::LightSource(v))) + } + "LIGHT_SOURCE_AMBIENT" => LightSourceAmbient_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::LightSourceAmbient(v))), + "LIGHT_SOURCE_DIRECTIONAL" => LightSourceDirectional_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::LightSourceDirectional(v))), + "LIGHT_SOURCE_POSITIONAL" => LightSourcePositional_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::LightSourcePositional(v))), + "LIGHT_SOURCE_SPOT" => { + LightSourceSpot_::parse_chunks(strs).map(|(s, v)| (s, Entity::LightSourceSpot(v))) + } + "LIKE_EXPRESSION" => { + LikeExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::LikeExpression(v))) + } + "LIMITS_AND_FITS" => { + LimitsAndFits_::parse_chunks(strs).map(|(s, v)| (s, Entity::LimitsAndFits(v))) + } "LINE" => Line_::parse_chunks(strs).map(|(s, v)| (s, Entity::Line(v))), - "LINE_PROFILE_TOLERANCE" => LineProfileTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::LineProfileTolerance(v))), - "LINEAR_DIMENSION" => LinearDimension_::parse_chunks(strs).map(|(s, v)| (s, Entity::LinearDimension(v))), - "LITERAL_NUMBER" => LiteralNumber_::parse_chunks(strs).map(|(s, v)| (s, Entity::LiteralNumber(v))), + "LINE_PROFILE_TOLERANCE" => LineProfileTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::LineProfileTolerance(v))), + "LINEAR_DIMENSION" => { + LinearDimension_::parse_chunks(strs).map(|(s, v)| (s, Entity::LinearDimension(v))) + } + "LITERAL_NUMBER" => { + LiteralNumber_::parse_chunks(strs).map(|(s, v)| (s, Entity::LiteralNumber(v))) + } "LOCAL_TIME" => LocalTime_::parse_chunks(strs).map(|(s, v)| (s, Entity::LocalTime(v))), - "LOCATION_SHAPE_REPRESENTATION" => LocationShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::LocationShapeRepresentation(v))), + "LOCATION_SHAPE_REPRESENTATION" => LocationShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::LocationShapeRepresentation(v))), "LOCATOR" => Locator_::parse_chunks(strs).map(|(s, v)| (s, Entity::Locator(v))), - "LOG10_FUNCTION" => Log10Function_::parse_chunks(strs).map(|(s, v)| (s, Entity::Log10Function(v))), - "LOG2_FUNCTION" => Log2Function_::parse_chunks(strs).map(|(s, v)| (s, Entity::Log2Function(v))), - "LOG_FUNCTION" => LogFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::LogFunction(v))), + "LOG10_FUNCTION" => { + Log10Function_::parse_chunks(strs).map(|(s, v)| (s, Entity::Log10Function(v))) + } + "LOG2_FUNCTION" => { + Log2Function_::parse_chunks(strs).map(|(s, v)| (s, Entity::Log2Function(v))) + } + "LOG_FUNCTION" => { + LogFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::LogFunction(v))) + } "LOOP" => Loop_::parse_chunks(strs).map(|(s, v)| (s, Entity::Loop(v))), - "LOT_EFFECTIVITY" => LotEffectivity_::parse_chunks(strs).map(|(s, v)| (s, Entity::LotEffectivity(v))), - "LUMINOUS_INTENSITY_MEASURE_WITH_UNIT" => LuminousIntensityMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::LuminousIntensityMeasureWithUnit(v))), - "LUMINOUS_INTENSITY_UNIT" => LuminousIntensityUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::LuminousIntensityUnit(v))), - "MAKE_FROM_USAGE_OPTION" => MakeFromUsageOption_::parse_chunks(strs).map(|(s, v)| (s, Entity::MakeFromUsageOption(v))), - "MANIFOLD_SOLID_BREP" => ManifoldSolidBrep_::parse_chunks(strs).map(|(s, v)| (s, Entity::ManifoldSolidBrep(v))), - "MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION" => ManifoldSubsurfaceShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ManifoldSubsurfaceShapeRepresentation(v))), - "MANIFOLD_SURFACE_SHAPE_REPRESENTATION" => ManifoldSurfaceShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ManifoldSurfaceShapeRepresentation(v))), - "MAPPED_ITEM" => MappedItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::MappedItem(v))), - "MASS_MEASURE_WITH_UNIT" => MassMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::MassMeasureWithUnit(v))), + "LOT_EFFECTIVITY" => { + LotEffectivity_::parse_chunks(strs).map(|(s, v)| (s, Entity::LotEffectivity(v))) + } + "LUMINOUS_INTENSITY_MEASURE_WITH_UNIT" => { + LuminousIntensityMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::LuminousIntensityMeasureWithUnit(v))) + } + "LUMINOUS_INTENSITY_UNIT" => LuminousIntensityUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::LuminousIntensityUnit(v))), + "MAKE_FROM_USAGE_OPTION" => MakeFromUsageOption_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MakeFromUsageOption(v))), + "MANIFOLD_SOLID_BREP" => ManifoldSolidBrep_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ManifoldSolidBrep(v))), + "MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION" => { + ManifoldSubsurfaceShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ManifoldSubsurfaceShapeRepresentation(v))) + } + "MANIFOLD_SURFACE_SHAPE_REPRESENTATION" => { + ManifoldSurfaceShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ManifoldSurfaceShapeRepresentation(v))) + } + "MAPPED_ITEM" => { + MappedItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::MappedItem(v))) + } + "MASS_MEASURE_WITH_UNIT" => MassMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MassMeasureWithUnit(v))), "MASS_UNIT" => MassUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::MassUnit(v))), - "MATERIAL_DESIGNATION" => MaterialDesignation_::parse_chunks(strs).map(|(s, v)| (s, Entity::MaterialDesignation(v))), - "MATERIAL_DESIGNATION_CHARACTERIZATION" => MaterialDesignationCharacterization_::parse_chunks(strs).map(|(s, v)| (s, Entity::MaterialDesignationCharacterization(v))), - "MATERIAL_PROPERTY" => MaterialProperty_::parse_chunks(strs).map(|(s, v)| (s, Entity::MaterialProperty(v))), - "MATERIAL_PROPERTY_REPRESENTATION" => MaterialPropertyRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::MaterialPropertyRepresentation(v))), - "MAXIMUM_FUNCTION" => MaximumFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::MaximumFunction(v))), - "MEASURE_QUALIFICATION" => MeasureQualification_::parse_chunks(strs).map(|(s, v)| (s, Entity::MeasureQualification(v))), - "MEASURE_REPRESENTATION_ITEM" => MeasureRepresentationItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::MeasureRepresentationItem(v))), - "MEASURE_WITH_UNIT" => MeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::MeasureWithUnit(v))), - "MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_AREA" => MechanicalDesignGeometricPresentationArea_::parse_chunks(strs).map(|(s, v)| (s, Entity::MechanicalDesignGeometricPresentationArea(v))), - "MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION" => MechanicalDesignGeometricPresentationRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::MechanicalDesignGeometricPresentationRepresentation(v))), + "MATERIAL_DESIGNATION" => MaterialDesignation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MaterialDesignation(v))), + "MATERIAL_DESIGNATION_CHARACTERIZATION" => { + MaterialDesignationCharacterization_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MaterialDesignationCharacterization(v))) + } + "MATERIAL_PROPERTY" => { + MaterialProperty_::parse_chunks(strs).map(|(s, v)| (s, Entity::MaterialProperty(v))) + } + "MATERIAL_PROPERTY_REPRESENTATION" => { + MaterialPropertyRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MaterialPropertyRepresentation(v))) + } + "MAXIMUM_FUNCTION" => { + MaximumFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::MaximumFunction(v))) + } + "MEASURE_QUALIFICATION" => MeasureQualification_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MeasureQualification(v))), + "MEASURE_REPRESENTATION_ITEM" => MeasureRepresentationItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MeasureRepresentationItem(v))), + "MEASURE_WITH_UNIT" => { + MeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::MeasureWithUnit(v))) + } + "MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_AREA" => { + MechanicalDesignGeometricPresentationArea_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MechanicalDesignGeometricPresentationArea(v))) + } + "MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION" => { + MechanicalDesignGeometricPresentationRepresentation_::parse_chunks(strs).map( + |(s, v)| { + ( + s, + Entity::MechanicalDesignGeometricPresentationRepresentation(v), + ) + }, + ) + } "MECHANISM" => Mechanism_::parse_chunks(strs).map(|(s, v)| (s, Entity::Mechanism(v))), - "MECHANISM_BASE_PLACEMENT" => MechanismBasePlacement_::parse_chunks(strs).map(|(s, v)| (s, Entity::MechanismBasePlacement(v))), - "MINIMUM_FUNCTION" => MinimumFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::MinimumFunction(v))), - "MINUS_EXPRESSION" => MinusExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::MinusExpression(v))), - "MINUS_FUNCTION" => MinusFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::MinusFunction(v))), - "MOD_EXPRESSION" => ModExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::ModExpression(v))), - "MODIFIED_GEOMETRIC_TOLERANCE" => ModifiedGeometricTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::ModifiedGeometricTolerance(v))), - "MODIFIED_PATTERN" => ModifiedPattern_::parse_chunks(strs).map(|(s, v)| (s, Entity::ModifiedPattern(v))), - "MOMENTS_OF_INERTIA_REPRESENTATION" => MomentsOfInertiaRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::MomentsOfInertiaRepresentation(v))), - "MOTION_LINK_RELATIONSHIP" => MotionLinkRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::MotionLinkRelationship(v))), - "MULT_EXPRESSION" => MultExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::MultExpression(v))), - "MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT" => MultiLanguageAttributeAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::MultiLanguageAttributeAssignment(v))), - "MULTIPLE_ARITY_BOOLEAN_EXPRESSION" => MultipleArityBooleanExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::MultipleArityBooleanExpression(v))), - "MULTIPLE_ARITY_FUNCTION_CALL" => MultipleArityFunctionCall_::parse_chunks(strs).map(|(s, v)| (s, Entity::MultipleArityFunctionCall(v))), - "MULTIPLE_ARITY_GENERIC_EXPRESSION" => MultipleArityGenericExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::MultipleArityGenericExpression(v))), - "MULTIPLE_ARITY_NUMERIC_EXPRESSION" => MultipleArityNumericExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::MultipleArityNumericExpression(v))), - "NAME_ASSIGNMENT" => NameAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::NameAssignment(v))), - "NAME_ATTRIBUTE" => NameAttribute_::parse_chunks(strs).map(|(s, v)| (s, Entity::NameAttribute(v))), + "MECHANISM_BASE_PLACEMENT" => MechanismBasePlacement_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MechanismBasePlacement(v))), + "MINIMUM_FUNCTION" => { + MinimumFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::MinimumFunction(v))) + } + "MINUS_EXPRESSION" => { + MinusExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::MinusExpression(v))) + } + "MINUS_FUNCTION" => { + MinusFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::MinusFunction(v))) + } + "MOD_EXPRESSION" => { + ModExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::ModExpression(v))) + } + "MODIFIED_GEOMETRIC_TOLERANCE" => ModifiedGeometricTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ModifiedGeometricTolerance(v))), + "MODIFIED_PATTERN" => { + ModifiedPattern_::parse_chunks(strs).map(|(s, v)| (s, Entity::ModifiedPattern(v))) + } + "MOMENTS_OF_INERTIA_REPRESENTATION" => { + MomentsOfInertiaRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MomentsOfInertiaRepresentation(v))) + } + "MOTION_LINK_RELATIONSHIP" => MotionLinkRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MotionLinkRelationship(v))), + "MULT_EXPRESSION" => { + MultExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::MultExpression(v))) + } + "MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT" => { + MultiLanguageAttributeAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MultiLanguageAttributeAssignment(v))) + } + "MULTIPLE_ARITY_BOOLEAN_EXPRESSION" => { + MultipleArityBooleanExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MultipleArityBooleanExpression(v))) + } + "MULTIPLE_ARITY_FUNCTION_CALL" => MultipleArityFunctionCall_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MultipleArityFunctionCall(v))), + "MULTIPLE_ARITY_GENERIC_EXPRESSION" => { + MultipleArityGenericExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MultipleArityGenericExpression(v))) + } + "MULTIPLE_ARITY_NUMERIC_EXPRESSION" => { + MultipleArityNumericExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::MultipleArityNumericExpression(v))) + } + "NAME_ASSIGNMENT" => { + NameAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::NameAssignment(v))) + } + "NAME_ATTRIBUTE" => { + NameAttribute_::parse_chunks(strs).map(|(s, v)| (s, Entity::NameAttribute(v))) + } "NAMED_UNIT" => NamedUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::NamedUnit(v))), - "NAMED_UNIT_VARIABLE" => NamedUnitVariable_::parse_chunks(strs).map(|(s, v)| (s, Entity::NamedUnitVariable(v))), - "NEXT_ASSEMBLY_USAGE_OCCURRENCE" => NextAssemblyUsageOccurrence_::parse_chunks(strs).map(|(s, v)| (s, Entity::NextAssemblyUsageOccurrence(v))), - "NGON_CLOSED_PROFILE" => NgonClosedProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::NgonClosedProfile(v))), - "NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION" => NonManifoldSurfaceShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::NonManifoldSurfaceShapeRepresentation(v))), - "NOT_EXPRESSION" => NotExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::NotExpression(v))), - "NUMERIC_DEFINED_FUNCTION" => NumericDefinedFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::NumericDefinedFunction(v))), - "NUMERIC_EXPRESSION" => NumericExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::NumericExpression(v))), - "NUMERIC_VARIABLE" => NumericVariable_::parse_chunks(strs).map(|(s, v)| (s, Entity::NumericVariable(v))), - "OBJECT_ROLE" => ObjectRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::ObjectRole(v))), - "ODD_FUNCTION" => OddFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::OddFunction(v))), - "OFFSET_CURVE_2D" => OffsetCurve2d_::parse_chunks(strs).map(|(s, v)| (s, Entity::OffsetCurve2d(v))), - "OFFSET_CURVE_3D" => OffsetCurve3d_::parse_chunks(strs).map(|(s, v)| (s, Entity::OffsetCurve3d(v))), - "OFFSET_SURFACE" => OffsetSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::OffsetSurface(v))), - "ONE_DIRECTION_REPEAT_FACTOR" => OneDirectionRepeatFactor_::parse_chunks(strs).map(|(s, v)| (s, Entity::OneDirectionRepeatFactor(v))), - "OPEN_PATH_PROFILE" => OpenPathProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::OpenPathProfile(v))), + "NAMED_UNIT_VARIABLE" => NamedUnitVariable_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::NamedUnitVariable(v))), + "NEXT_ASSEMBLY_USAGE_OCCURRENCE" => NextAssemblyUsageOccurrence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::NextAssemblyUsageOccurrence(v))), + "NGON_CLOSED_PROFILE" => NgonClosedProfile_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::NgonClosedProfile(v))), + "NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION" => { + NonManifoldSurfaceShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::NonManifoldSurfaceShapeRepresentation(v))) + } + "NOT_EXPRESSION" => { + NotExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::NotExpression(v))) + } + "NUMERIC_DEFINED_FUNCTION" => NumericDefinedFunction_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::NumericDefinedFunction(v))), + "NUMERIC_EXPRESSION" => NumericExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::NumericExpression(v))), + "NUMERIC_VARIABLE" => { + NumericVariable_::parse_chunks(strs).map(|(s, v)| (s, Entity::NumericVariable(v))) + } + "OBJECT_ROLE" => { + ObjectRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::ObjectRole(v))) + } + "ODD_FUNCTION" => { + OddFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::OddFunction(v))) + } + "OFFSET_CURVE_2D" => { + OffsetCurve2d_::parse_chunks(strs).map(|(s, v)| (s, Entity::OffsetCurve2d(v))) + } + "OFFSET_CURVE_3D" => { + OffsetCurve3d_::parse_chunks(strs).map(|(s, v)| (s, Entity::OffsetCurve3d(v))) + } + "OFFSET_SURFACE" => { + OffsetSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::OffsetSurface(v))) + } + "ONE_DIRECTION_REPEAT_FACTOR" => OneDirectionRepeatFactor_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::OneDirectionRepeatFactor(v))), + "OPEN_PATH_PROFILE" => { + OpenPathProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::OpenPathProfile(v))) + } "OPEN_SHELL" => OpenShell_::parse_chunks(strs).map(|(s, v)| (s, Entity::OpenShell(v))), - "OR_EXPRESSION" => OrExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrExpression(v))), - "ORDINATE_DIMENSION" => OrdinateDimension_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrdinateDimension(v))), - "ORGANIZATION" => Organization_::parse_chunks(strs).map(|(s, v)| (s, Entity::Organization(v))), - "ORGANIZATION_ASSIGNMENT" => OrganizationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrganizationAssignment(v))), - "ORGANIZATION_RELATIONSHIP" => OrganizationRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrganizationRelationship(v))), - "ORGANIZATION_ROLE" => OrganizationRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrganizationRole(v))), - "ORGANIZATIONAL_ADDRESS" => OrganizationalAddress_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrganizationalAddress(v))), - "ORGANIZATIONAL_PROJECT" => OrganizationalProject_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrganizationalProject(v))), - "ORGANIZATIONAL_PROJECT_ASSIGNMENT" => OrganizationalProjectAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrganizationalProjectAssignment(v))), - "ORGANIZATIONAL_PROJECT_RELATIONSHIP" => OrganizationalProjectRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrganizationalProjectRelationship(v))), - "ORGANIZATIONAL_PROJECT_ROLE" => OrganizationalProjectRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrganizationalProjectRole(v))), - "ORIENTED_CLOSED_SHELL" => OrientedClosedShell_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrientedClosedShell(v))), - "ORIENTED_EDGE" => OrientedEdge_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrientedEdge(v))), - "ORIENTED_FACE" => OrientedFace_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrientedFace(v))), - "ORIENTED_OPEN_SHELL" => OrientedOpenShell_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrientedOpenShell(v))), - "ORIENTED_PATH" => OrientedPath_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrientedPath(v))), - "ORIENTED_SURFACE" => OrientedSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrientedSurface(v))), - "OUTER_BOUNDARY_CURVE" => OuterBoundaryCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::OuterBoundaryCurve(v))), - "OVER_RIDING_STYLED_ITEM" => OverRidingStyledItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::OverRidingStyledItem(v))), - "PACKAGE_PRODUCT_CONCEPT_FEATURE" => PackageProductConceptFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::PackageProductConceptFeature(v))), - "PAIR_ACTUATOR" => PairActuator_::parse_chunks(strs).map(|(s, v)| (s, Entity::PairActuator(v))), + "OR_EXPRESSION" => { + OrExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrExpression(v))) + } + "ORDINATE_DIMENSION" => OrdinateDimension_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::OrdinateDimension(v))), + "ORGANIZATION" => { + Organization_::parse_chunks(strs).map(|(s, v)| (s, Entity::Organization(v))) + } + "ORGANIZATION_ASSIGNMENT" => OrganizationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::OrganizationAssignment(v))), + "ORGANIZATION_RELATIONSHIP" => OrganizationRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::OrganizationRelationship(v))), + "ORGANIZATION_ROLE" => { + OrganizationRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrganizationRole(v))) + } + "ORGANIZATIONAL_ADDRESS" => OrganizationalAddress_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::OrganizationalAddress(v))), + "ORGANIZATIONAL_PROJECT" => OrganizationalProject_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::OrganizationalProject(v))), + "ORGANIZATIONAL_PROJECT_ASSIGNMENT" => { + OrganizationalProjectAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::OrganizationalProjectAssignment(v))) + } + "ORGANIZATIONAL_PROJECT_RELATIONSHIP" => { + OrganizationalProjectRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::OrganizationalProjectRelationship(v))) + } + "ORGANIZATIONAL_PROJECT_ROLE" => OrganizationalProjectRole_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::OrganizationalProjectRole(v))), + "ORIENTED_CLOSED_SHELL" => OrientedClosedShell_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::OrientedClosedShell(v))), + "ORIENTED_EDGE" => { + OrientedEdge_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrientedEdge(v))) + } + "ORIENTED_FACE" => { + OrientedFace_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrientedFace(v))) + } + "ORIENTED_OPEN_SHELL" => OrientedOpenShell_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::OrientedOpenShell(v))), + "ORIENTED_PATH" => { + OrientedPath_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrientedPath(v))) + } + "ORIENTED_SURFACE" => { + OrientedSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::OrientedSurface(v))) + } + "OUTER_BOUNDARY_CURVE" => OuterBoundaryCurve_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::OuterBoundaryCurve(v))), + "OVER_RIDING_STYLED_ITEM" => OverRidingStyledItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::OverRidingStyledItem(v))), + "PACKAGE_PRODUCT_CONCEPT_FEATURE" => PackageProductConceptFeature_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PackageProductConceptFeature(v))), + "PAIR_ACTUATOR" => { + PairActuator_::parse_chunks(strs).map(|(s, v)| (s, Entity::PairActuator(v))) + } "PAIR_VALUE" => PairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::PairValue(v))), "PARABOLA" => Parabola_::parse_chunks(strs).map(|(s, v)| (s, Entity::Parabola(v))), - "PARALLEL_OFFSET" => ParallelOffset_::parse_chunks(strs).map(|(s, v)| (s, Entity::ParallelOffset(v))), - "PARALLELISM_TOLERANCE" => ParallelismTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::ParallelismTolerance(v))), - "PARAMETRIC_REPRESENTATION_CONTEXT" => ParametricRepresentationContext_::parse_chunks(strs).map(|(s, v)| (s, Entity::ParametricRepresentationContext(v))), - "PARTIAL_CIRCULAR_PROFILE" => PartialCircularProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::PartialCircularProfile(v))), + "PARALLEL_OFFSET" => { + ParallelOffset_::parse_chunks(strs).map(|(s, v)| (s, Entity::ParallelOffset(v))) + } + "PARALLELISM_TOLERANCE" => ParallelismTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ParallelismTolerance(v))), + "PARAMETRIC_REPRESENTATION_CONTEXT" => { + ParametricRepresentationContext_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ParametricRepresentationContext(v))) + } + "PARTIAL_CIRCULAR_PROFILE" => PartialCircularProfile_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PartialCircularProfile(v))), "PATH" => Path_::parse_chunks(strs).map(|(s, v)| (s, Entity::Path(v))), - "PATH_FEATURE_COMPONENT" => PathFeatureComponent_::parse_chunks(strs).map(|(s, v)| (s, Entity::PathFeatureComponent(v))), - "PATH_SHAPE_REPRESENTATION" => PathShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::PathShapeRepresentation(v))), - "PATTERN_OFFSET_MEMBERSHIP" => PatternOffsetMembership_::parse_chunks(strs).map(|(s, v)| (s, Entity::PatternOffsetMembership(v))), - "PATTERN_OMIT_MEMBERSHIP" => PatternOmitMembership_::parse_chunks(strs).map(|(s, v)| (s, Entity::PatternOmitMembership(v))), + "PATH_FEATURE_COMPONENT" => PathFeatureComponent_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PathFeatureComponent(v))), + "PATH_SHAPE_REPRESENTATION" => PathShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PathShapeRepresentation(v))), + "PATTERN_OFFSET_MEMBERSHIP" => PatternOffsetMembership_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PatternOffsetMembership(v))), + "PATTERN_OMIT_MEMBERSHIP" => PatternOmitMembership_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PatternOmitMembership(v))), "PCURVE" => Pcurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::Pcurve(v))), - "PERPENDICULAR_TO" => PerpendicularTo_::parse_chunks(strs).map(|(s, v)| (s, Entity::PerpendicularTo(v))), - "PERPENDICULARITY_TOLERANCE" => PerpendicularityTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::PerpendicularityTolerance(v))), + "PERPENDICULAR_TO" => { + PerpendicularTo_::parse_chunks(strs).map(|(s, v)| (s, Entity::PerpendicularTo(v))) + } + "PERPENDICULARITY_TOLERANCE" => PerpendicularityTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PerpendicularityTolerance(v))), "PERSON" => Person_::parse_chunks(strs).map(|(s, v)| (s, Entity::Person(v))), - "PERSON_AND_ORGANIZATION" => PersonAndOrganization_::parse_chunks(strs).map(|(s, v)| (s, Entity::PersonAndOrganization(v))), - "PERSON_AND_ORGANIZATION_ADDRESS" => PersonAndOrganizationAddress_::parse_chunks(strs).map(|(s, v)| (s, Entity::PersonAndOrganizationAddress(v))), - "PERSON_AND_ORGANIZATION_ASSIGNMENT" => PersonAndOrganizationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::PersonAndOrganizationAssignment(v))), - "PERSON_AND_ORGANIZATION_ROLE" => PersonAndOrganizationRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::PersonAndOrganizationRole(v))), - "PERSONAL_ADDRESS" => PersonalAddress_::parse_chunks(strs).map(|(s, v)| (s, Entity::PersonalAddress(v))), - "PHYSICALLY_MODELLED_PRODUCT_DEFINITION" => PhysicallyModelledProductDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::PhysicallyModelledProductDefinition(v))), - "PLACED_DATUM_TARGET_FEATURE" => PlacedDatumTargetFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlacedDatumTargetFeature(v))), - "PLACED_FEATURE" => PlacedFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlacedFeature(v))), + "PERSON_AND_ORGANIZATION" => PersonAndOrganization_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PersonAndOrganization(v))), + "PERSON_AND_ORGANIZATION_ADDRESS" => PersonAndOrganizationAddress_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PersonAndOrganizationAddress(v))), + "PERSON_AND_ORGANIZATION_ASSIGNMENT" => { + PersonAndOrganizationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PersonAndOrganizationAssignment(v))) + } + "PERSON_AND_ORGANIZATION_ROLE" => PersonAndOrganizationRole_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PersonAndOrganizationRole(v))), + "PERSONAL_ADDRESS" => { + PersonalAddress_::parse_chunks(strs).map(|(s, v)| (s, Entity::PersonalAddress(v))) + } + "PHYSICALLY_MODELLED_PRODUCT_DEFINITION" => { + PhysicallyModelledProductDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PhysicallyModelledProductDefinition(v))) + } + "PLACED_DATUM_TARGET_FEATURE" => PlacedDatumTargetFeature_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PlacedDatumTargetFeature(v))), + "PLACED_FEATURE" => { + PlacedFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlacedFeature(v))) + } "PLACEMENT" => Placement_::parse_chunks(strs).map(|(s, v)| (s, Entity::Placement(v))), "PLANAR_BOX" => PlanarBox_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlanarBox(v))), - "PLANAR_CURVE_PAIR" => PlanarCurvePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlanarCurvePair(v))), - "PLANAR_CURVE_PAIR_RANGE" => PlanarCurvePairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlanarCurvePairRange(v))), - "PLANAR_EXTENT" => PlanarExtent_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlanarExtent(v))), - "PLANAR_PAIR" => PlanarPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlanarPair(v))), - "PLANAR_PAIR_RANGE" => PlanarPairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlanarPairRange(v))), - "PLANAR_PAIR_VALUE" => PlanarPairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlanarPairValue(v))), - "PLANAR_SHAPE_REPRESENTATION" => PlanarShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlanarShapeRepresentation(v))), + "PLANAR_CURVE_PAIR" => { + PlanarCurvePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlanarCurvePair(v))) + } + "PLANAR_CURVE_PAIR_RANGE" => PlanarCurvePairRange_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PlanarCurvePairRange(v))), + "PLANAR_EXTENT" => { + PlanarExtent_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlanarExtent(v))) + } + "PLANAR_PAIR" => { + PlanarPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlanarPair(v))) + } + "PLANAR_PAIR_RANGE" => { + PlanarPairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlanarPairRange(v))) + } + "PLANAR_PAIR_VALUE" => { + PlanarPairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlanarPairValue(v))) + } + "PLANAR_SHAPE_REPRESENTATION" => PlanarShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PlanarShapeRepresentation(v))), "PLANE" => Plane_::parse_chunks(strs).map(|(s, v)| (s, Entity::Plane(v))), - "PLANE_ANGLE_MEASURE_WITH_UNIT" => PlaneAngleMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlaneAngleMeasureWithUnit(v))), - "PLANE_ANGLE_UNIT" => PlaneAngleUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlaneAngleUnit(v))), - "PLUS_EXPRESSION" => PlusExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlusExpression(v))), - "PLUS_MINUS_TOLERANCE" => PlusMinusTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlusMinusTolerance(v))), + "PLANE_ANGLE_MEASURE_WITH_UNIT" => PlaneAngleMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PlaneAngleMeasureWithUnit(v))), + "PLANE_ANGLE_UNIT" => { + PlaneAngleUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlaneAngleUnit(v))) + } + "PLUS_EXPRESSION" => { + PlusExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::PlusExpression(v))) + } + "PLUS_MINUS_TOLERANCE" => PlusMinusTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PlusMinusTolerance(v))), "POCKET" => Pocket_::parse_chunks(strs).map(|(s, v)| (s, Entity::Pocket(v))), - "POCKET_BOTTOM" => PocketBottom_::parse_chunks(strs).map(|(s, v)| (s, Entity::PocketBottom(v))), + "POCKET_BOTTOM" => { + PocketBottom_::parse_chunks(strs).map(|(s, v)| (s, Entity::PocketBottom(v))) + } "POINT" => Point_::parse_chunks(strs).map(|(s, v)| (s, Entity::Point(v))), - "POINT_ON_CURVE" => PointOnCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointOnCurve(v))), - "POINT_ON_PLANAR_CURVE_PAIR" => PointOnPlanarCurvePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointOnPlanarCurvePair(v))), - "POINT_ON_PLANAR_CURVE_PAIR_RANGE" => PointOnPlanarCurvePairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointOnPlanarCurvePairRange(v))), - "POINT_ON_PLANAR_CURVE_PAIR_VALUE" => PointOnPlanarCurvePairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointOnPlanarCurvePairValue(v))), - "POINT_ON_SURFACE" => PointOnSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointOnSurface(v))), - "POINT_ON_SURFACE_PAIR" => PointOnSurfacePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointOnSurfacePair(v))), - "POINT_ON_SURFACE_PAIR_RANGE" => PointOnSurfacePairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointOnSurfacePairRange(v))), - "POINT_ON_SURFACE_PAIR_VALUE" => PointOnSurfacePairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointOnSurfacePairValue(v))), - "POINT_PLACEMENT_SHAPE_REPRESENTATION" => PointPlacementShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointPlacementShapeRepresentation(v))), - "POINT_REPLICA" => PointReplica_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointReplica(v))), - "POINT_STYLE" => PointStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointStyle(v))), + "POINT_ON_CURVE" => { + PointOnCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointOnCurve(v))) + } + "POINT_ON_PLANAR_CURVE_PAIR" => PointOnPlanarCurvePair_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PointOnPlanarCurvePair(v))), + "POINT_ON_PLANAR_CURVE_PAIR_RANGE" => PointOnPlanarCurvePairRange_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PointOnPlanarCurvePairRange(v))), + "POINT_ON_PLANAR_CURVE_PAIR_VALUE" => PointOnPlanarCurvePairValue_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PointOnPlanarCurvePairValue(v))), + "POINT_ON_SURFACE" => { + PointOnSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointOnSurface(v))) + } + "POINT_ON_SURFACE_PAIR" => PointOnSurfacePair_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PointOnSurfacePair(v))), + "POINT_ON_SURFACE_PAIR_RANGE" => PointOnSurfacePairRange_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PointOnSurfacePairRange(v))), + "POINT_ON_SURFACE_PAIR_VALUE" => PointOnSurfacePairValue_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PointOnSurfacePairValue(v))), + "POINT_PLACEMENT_SHAPE_REPRESENTATION" => { + PointPlacementShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PointPlacementShapeRepresentation(v))) + } + "POINT_REPLICA" => { + PointReplica_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointReplica(v))) + } + "POINT_STYLE" => { + PointStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::PointStyle(v))) + } "POLY_LOOP" => PolyLoop_::parse_chunks(strs).map(|(s, v)| (s, Entity::PolyLoop(v))), "POLYLINE" => Polyline_::parse_chunks(strs).map(|(s, v)| (s, Entity::Polyline(v))), - "POSITION_TOLERANCE" => PositionTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::PositionTolerance(v))), - "POWER_EXPRESSION" => PowerExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::PowerExpression(v))), - "PRE_DEFINED_COLOUR" => PreDefinedColour_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedColour(v))), - "PRE_DEFINED_CURVE_FONT" => PreDefinedCurveFont_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedCurveFont(v))), - "PRE_DEFINED_DIMENSION_SYMBOL" => PreDefinedDimensionSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedDimensionSymbol(v))), - "PRE_DEFINED_GEOMETRICAL_TOLERANCE_SYMBOL" => PreDefinedGeometricalToleranceSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedGeometricalToleranceSymbol(v))), - "PRE_DEFINED_ITEM" => PreDefinedItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedItem(v))), - "PRE_DEFINED_MARKER" => PreDefinedMarker_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedMarker(v))), - "PRE_DEFINED_POINT_MARKER_SYMBOL" => PreDefinedPointMarkerSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedPointMarkerSymbol(v))), - "PRE_DEFINED_PRESENTATION_STYLE" => PreDefinedPresentationStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedPresentationStyle(v))), - "PRE_DEFINED_SURFACE_CONDITION_SYMBOL" => PreDefinedSurfaceConditionSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedSurfaceConditionSymbol(v))), - "PRE_DEFINED_SYMBOL" => PreDefinedSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedSymbol(v))), - "PRE_DEFINED_TERMINATOR_SYMBOL" => PreDefinedTerminatorSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedTerminatorSymbol(v))), - "PRE_DEFINED_TEXT_FONT" => PreDefinedTextFont_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedTextFont(v))), - "PRECISION_QUALIFIER" => PrecisionQualifier_::parse_chunks(strs).map(|(s, v)| (s, Entity::PrecisionQualifier(v))), - "PRESENTATION_AREA" => PresentationArea_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentationArea(v))), - "PRESENTATION_LAYER_ASSIGNMENT" => PresentationLayerAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentationLayerAssignment(v))), - "PRESENTATION_REPRESENTATION" => PresentationRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentationRepresentation(v))), - "PRESENTATION_SET" => PresentationSet_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentationSet(v))), - "PRESENTATION_SIZE" => PresentationSize_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentationSize(v))), - "PRESENTATION_STYLE_ASSIGNMENT" => PresentationStyleAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentationStyleAssignment(v))), - "PRESENTATION_STYLE_BY_CONTEXT" => PresentationStyleByContext_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentationStyleByContext(v))), - "PRESENTATION_VIEW" => PresentationView_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentationView(v))), - "PRESENTED_ITEM" => PresentedItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentedItem(v))), - "PRESENTED_ITEM_REPRESENTATION" => PresentedItemRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentedItemRepresentation(v))), - "PRISMATIC_PAIR" => PrismaticPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::PrismaticPair(v))), - "PRISMATIC_PAIR_RANGE" => PrismaticPairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::PrismaticPairRange(v))), - "PRISMATIC_PAIR_VALUE" => PrismaticPairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::PrismaticPairValue(v))), - "PROCESS_OPERATION" => ProcessOperation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProcessOperation(v))), - "PROCESS_PLAN" => ProcessPlan_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProcessPlan(v))), - "PROCESS_PRODUCT_ASSOCIATION" => ProcessProductAssociation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProcessProductAssociation(v))), - "PROCESS_PROPERTY_ASSOCIATION" => ProcessPropertyAssociation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProcessPropertyAssociation(v))), + "POSITION_TOLERANCE" => PositionTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PositionTolerance(v))), + "POWER_EXPRESSION" => { + PowerExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::PowerExpression(v))) + } + "PRE_DEFINED_COLOUR" => { + PreDefinedColour_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedColour(v))) + } + "PRE_DEFINED_CURVE_FONT" => PreDefinedCurveFont_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PreDefinedCurveFont(v))), + "PRE_DEFINED_DIMENSION_SYMBOL" => PreDefinedDimensionSymbol_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PreDefinedDimensionSymbol(v))), + "PRE_DEFINED_GEOMETRICAL_TOLERANCE_SYMBOL" => { + PreDefinedGeometricalToleranceSymbol_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PreDefinedGeometricalToleranceSymbol(v))) + } + "PRE_DEFINED_ITEM" => { + PreDefinedItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedItem(v))) + } + "PRE_DEFINED_MARKER" => { + PreDefinedMarker_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedMarker(v))) + } + "PRE_DEFINED_POINT_MARKER_SYMBOL" => PreDefinedPointMarkerSymbol_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PreDefinedPointMarkerSymbol(v))), + "PRE_DEFINED_PRESENTATION_STYLE" => PreDefinedPresentationStyle_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PreDefinedPresentationStyle(v))), + "PRE_DEFINED_SURFACE_CONDITION_SYMBOL" => { + PreDefinedSurfaceConditionSymbol_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PreDefinedSurfaceConditionSymbol(v))) + } + "PRE_DEFINED_SYMBOL" => { + PreDefinedSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::PreDefinedSymbol(v))) + } + "PRE_DEFINED_TERMINATOR_SYMBOL" => PreDefinedTerminatorSymbol_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PreDefinedTerminatorSymbol(v))), + "PRE_DEFINED_TEXT_FONT" => PreDefinedTextFont_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PreDefinedTextFont(v))), + "PRECISION_QUALIFIER" => PrecisionQualifier_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PrecisionQualifier(v))), + "PRESENTATION_AREA" => { + PresentationArea_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentationArea(v))) + } + "PRESENTATION_LAYER_ASSIGNMENT" => PresentationLayerAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PresentationLayerAssignment(v))), + "PRESENTATION_REPRESENTATION" => PresentationRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PresentationRepresentation(v))), + "PRESENTATION_SET" => { + PresentationSet_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentationSet(v))) + } + "PRESENTATION_SIZE" => { + PresentationSize_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentationSize(v))) + } + "PRESENTATION_STYLE_ASSIGNMENT" => PresentationStyleAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PresentationStyleAssignment(v))), + "PRESENTATION_STYLE_BY_CONTEXT" => PresentationStyleByContext_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PresentationStyleByContext(v))), + "PRESENTATION_VIEW" => { + PresentationView_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentationView(v))) + } + "PRESENTED_ITEM" => { + PresentedItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::PresentedItem(v))) + } + "PRESENTED_ITEM_REPRESENTATION" => PresentedItemRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PresentedItemRepresentation(v))), + "PRISMATIC_PAIR" => { + PrismaticPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::PrismaticPair(v))) + } + "PRISMATIC_PAIR_RANGE" => PrismaticPairRange_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PrismaticPairRange(v))), + "PRISMATIC_PAIR_VALUE" => PrismaticPairValue_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PrismaticPairValue(v))), + "PROCESS_OPERATION" => { + ProcessOperation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProcessOperation(v))) + } + "PROCESS_PLAN" => { + ProcessPlan_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProcessPlan(v))) + } + "PROCESS_PRODUCT_ASSOCIATION" => ProcessProductAssociation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProcessProductAssociation(v))), + "PROCESS_PROPERTY_ASSOCIATION" => ProcessPropertyAssociation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProcessPropertyAssociation(v))), "PRODUCT" => Product_::parse_chunks(strs).map(|(s, v)| (s, Entity::Product(v))), - "PRODUCT_CATEGORY" => ProductCategory_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductCategory(v))), - "PRODUCT_CATEGORY_RELATIONSHIP" => ProductCategoryRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductCategoryRelationship(v))), - "PRODUCT_CLASS" => ProductClass_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductClass(v))), - "PRODUCT_CONCEPT" => ProductConcept_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductConcept(v))), - "PRODUCT_CONCEPT_CONTEXT" => ProductConceptContext_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductConceptContext(v))), - "PRODUCT_CONCEPT_FEATURE" => ProductConceptFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductConceptFeature(v))), - "PRODUCT_CONCEPT_FEATURE_ASSOCIATION" => ProductConceptFeatureAssociation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductConceptFeatureAssociation(v))), - "PRODUCT_CONCEPT_FEATURE_CATEGORY" => ProductConceptFeatureCategory_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductConceptFeatureCategory(v))), - "PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE" => ProductConceptFeatureCategoryUsage_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductConceptFeatureCategoryUsage(v))), - "PRODUCT_CONCEPT_RELATIONSHIP" => ProductConceptRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductConceptRelationship(v))), - "PRODUCT_CONTEXT" => ProductContext_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductContext(v))), - "PRODUCT_DEFINITION" => ProductDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinition(v))), - "PRODUCT_DEFINITION_CONTEXT" => ProductDefinitionContext_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionContext(v))), - "PRODUCT_DEFINITION_CONTEXT_ASSOCIATION" => ProductDefinitionContextAssociation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionContextAssociation(v))), - "PRODUCT_DEFINITION_CONTEXT_ROLE" => ProductDefinitionContextRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionContextRole(v))), - "PRODUCT_DEFINITION_EFFECTIVITY" => ProductDefinitionEffectivity_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionEffectivity(v))), - "PRODUCT_DEFINITION_FORMATION" => ProductDefinitionFormation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionFormation(v))), - "PRODUCT_DEFINITION_FORMATION_RELATIONSHIP" => ProductDefinitionFormationRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionFormationRelationship(v))), - "PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE" => ProductDefinitionFormationWithSpecifiedSource_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionFormationWithSpecifiedSource(v))), - "PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP" => ProductDefinitionOccurrenceRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionOccurrenceRelationship(v))), - "PRODUCT_DEFINITION_PROCESS" => ProductDefinitionProcess_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionProcess(v))), - "PRODUCT_DEFINITION_RELATIONSHIP" => ProductDefinitionRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionRelationship(v))), - "PRODUCT_DEFINITION_RESOURCE" => ProductDefinitionResource_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionResource(v))), - "PRODUCT_DEFINITION_SHAPE" => ProductDefinitionShape_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionShape(v))), - "PRODUCT_DEFINITION_SUBSTITUTE" => ProductDefinitionSubstitute_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionSubstitute(v))), - "PRODUCT_DEFINITION_USAGE" => ProductDefinitionUsage_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionUsage(v))), - "PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS" => ProductDefinitionWithAssociatedDocuments_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductDefinitionWithAssociatedDocuments(v))), - "PRODUCT_IDENTIFICATION" => ProductIdentification_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductIdentification(v))), - "PRODUCT_PROCESS_PLAN" => ProductProcessPlan_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductProcessPlan(v))), - "PRODUCT_RELATED_PRODUCT_CATEGORY" => ProductRelatedProductCategory_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductRelatedProductCategory(v))), - "PRODUCT_SPECIFICATION" => ProductSpecification_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductSpecification(v))), - "PROJECTED_ZONE_DEFINITION" => ProjectedZoneDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProjectedZoneDefinition(v))), - "PROJECTION_CURVE" => ProjectionCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProjectionCurve(v))), - "PROJECTION_DIRECTED_CALLOUT" => ProjectionDirectedCallout_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProjectionDirectedCallout(v))), - "PROMISSORY_USAGE_OCCURRENCE" => PromissoryUsageOccurrence_::parse_chunks(strs).map(|(s, v)| (s, Entity::PromissoryUsageOccurrence(v))), - "PROPERTY_DEFINITION" => PropertyDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::PropertyDefinition(v))), - "PROPERTY_DEFINITION_RELATIONSHIP" => PropertyDefinitionRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::PropertyDefinitionRelationship(v))), - "PROPERTY_DEFINITION_REPRESENTATION" => PropertyDefinitionRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::PropertyDefinitionRepresentation(v))), - "PROPERTY_PROCESS" => PropertyProcess_::parse_chunks(strs).map(|(s, v)| (s, Entity::PropertyProcess(v))), - "QUALIFIED_REPRESENTATION_ITEM" => QualifiedRepresentationItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::QualifiedRepresentationItem(v))), - "QUALITATIVE_UNCERTAINTY" => QualitativeUncertainty_::parse_chunks(strs).map(|(s, v)| (s, Entity::QualitativeUncertainty(v))), - "QUANTIFIED_ASSEMBLY_COMPONENT_USAGE" => QuantifiedAssemblyComponentUsage_::parse_chunks(strs).map(|(s, v)| (s, Entity::QuantifiedAssemblyComponentUsage(v))), - "QUASI_UNIFORM_CURVE" => QuasiUniformCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::QuasiUniformCurve(v))), - "QUASI_UNIFORM_SURFACE" => QuasiUniformSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::QuasiUniformSurface(v))), - "RACK_AND_PINION_PAIR" => RackAndPinionPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::RackAndPinionPair(v))), - "RACK_AND_PINION_PAIR_RANGE" => RackAndPinionPairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::RackAndPinionPairRange(v))), - "RACK_AND_PINION_PAIR_VALUE" => RackAndPinionPairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::RackAndPinionPairValue(v))), - "RADIUS_DIMENSION" => RadiusDimension_::parse_chunks(strs).map(|(s, v)| (s, Entity::RadiusDimension(v))), - "RATIO_MEASURE_WITH_UNIT" => RatioMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::RatioMeasureWithUnit(v))), + "PRODUCT_CATEGORY" => { + ProductCategory_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductCategory(v))) + } + "PRODUCT_CATEGORY_RELATIONSHIP" => ProductCategoryRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductCategoryRelationship(v))), + "PRODUCT_CLASS" => { + ProductClass_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductClass(v))) + } + "PRODUCT_CONCEPT" => { + ProductConcept_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductConcept(v))) + } + "PRODUCT_CONCEPT_CONTEXT" => ProductConceptContext_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductConceptContext(v))), + "PRODUCT_CONCEPT_FEATURE" => ProductConceptFeature_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductConceptFeature(v))), + "PRODUCT_CONCEPT_FEATURE_ASSOCIATION" => { + ProductConceptFeatureAssociation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductConceptFeatureAssociation(v))) + } + "PRODUCT_CONCEPT_FEATURE_CATEGORY" => { + ProductConceptFeatureCategory_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductConceptFeatureCategory(v))) + } + "PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE" => { + ProductConceptFeatureCategoryUsage_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductConceptFeatureCategoryUsage(v))) + } + "PRODUCT_CONCEPT_RELATIONSHIP" => ProductConceptRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductConceptRelationship(v))), + "PRODUCT_CONTEXT" => { + ProductContext_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProductContext(v))) + } + "PRODUCT_DEFINITION" => ProductDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinition(v))), + "PRODUCT_DEFINITION_CONTEXT" => ProductDefinitionContext_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionContext(v))), + "PRODUCT_DEFINITION_CONTEXT_ASSOCIATION" => { + ProductDefinitionContextAssociation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionContextAssociation(v))) + } + "PRODUCT_DEFINITION_CONTEXT_ROLE" => ProductDefinitionContextRole_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionContextRole(v))), + "PRODUCT_DEFINITION_EFFECTIVITY" => ProductDefinitionEffectivity_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionEffectivity(v))), + "PRODUCT_DEFINITION_FORMATION" => ProductDefinitionFormation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionFormation(v))), + "PRODUCT_DEFINITION_FORMATION_RELATIONSHIP" => { + ProductDefinitionFormationRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionFormationRelationship(v))) + } + "PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE" => { + ProductDefinitionFormationWithSpecifiedSource_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionFormationWithSpecifiedSource(v))) + } + "PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP" => { + ProductDefinitionOccurrenceRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionOccurrenceRelationship(v))) + } + "PRODUCT_DEFINITION_PROCESS" => ProductDefinitionProcess_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionProcess(v))), + "PRODUCT_DEFINITION_RELATIONSHIP" => ProductDefinitionRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionRelationship(v))), + "PRODUCT_DEFINITION_RESOURCE" => ProductDefinitionResource_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionResource(v))), + "PRODUCT_DEFINITION_SHAPE" => ProductDefinitionShape_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionShape(v))), + "PRODUCT_DEFINITION_SUBSTITUTE" => ProductDefinitionSubstitute_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionSubstitute(v))), + "PRODUCT_DEFINITION_USAGE" => ProductDefinitionUsage_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionUsage(v))), + "PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS" => { + ProductDefinitionWithAssociatedDocuments_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductDefinitionWithAssociatedDocuments(v))) + } + "PRODUCT_IDENTIFICATION" => ProductIdentification_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductIdentification(v))), + "PRODUCT_PROCESS_PLAN" => ProductProcessPlan_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductProcessPlan(v))), + "PRODUCT_RELATED_PRODUCT_CATEGORY" => { + ProductRelatedProductCategory_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductRelatedProductCategory(v))) + } + "PRODUCT_SPECIFICATION" => ProductSpecification_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProductSpecification(v))), + "PROJECTED_ZONE_DEFINITION" => ProjectedZoneDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProjectedZoneDefinition(v))), + "PROJECTION_CURVE" => { + ProjectionCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::ProjectionCurve(v))) + } + "PROJECTION_DIRECTED_CALLOUT" => ProjectionDirectedCallout_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ProjectionDirectedCallout(v))), + "PROMISSORY_USAGE_OCCURRENCE" => PromissoryUsageOccurrence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PromissoryUsageOccurrence(v))), + "PROPERTY_DEFINITION" => PropertyDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PropertyDefinition(v))), + "PROPERTY_DEFINITION_RELATIONSHIP" => { + PropertyDefinitionRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PropertyDefinitionRelationship(v))) + } + "PROPERTY_DEFINITION_REPRESENTATION" => { + PropertyDefinitionRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::PropertyDefinitionRepresentation(v))) + } + "PROPERTY_PROCESS" => { + PropertyProcess_::parse_chunks(strs).map(|(s, v)| (s, Entity::PropertyProcess(v))) + } + "QUALIFIED_REPRESENTATION_ITEM" => QualifiedRepresentationItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::QualifiedRepresentationItem(v))), + "QUALITATIVE_UNCERTAINTY" => QualitativeUncertainty_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::QualitativeUncertainty(v))), + "QUANTIFIED_ASSEMBLY_COMPONENT_USAGE" => { + QuantifiedAssemblyComponentUsage_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::QuantifiedAssemblyComponentUsage(v))) + } + "QUASI_UNIFORM_CURVE" => QuasiUniformCurve_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::QuasiUniformCurve(v))), + "QUASI_UNIFORM_SURFACE" => QuasiUniformSurface_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::QuasiUniformSurface(v))), + "RACK_AND_PINION_PAIR" => RackAndPinionPair_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RackAndPinionPair(v))), + "RACK_AND_PINION_PAIR_RANGE" => RackAndPinionPairRange_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RackAndPinionPairRange(v))), + "RACK_AND_PINION_PAIR_VALUE" => RackAndPinionPairValue_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RackAndPinionPairValue(v))), + "RADIUS_DIMENSION" => { + RadiusDimension_::parse_chunks(strs).map(|(s, v)| (s, Entity::RadiusDimension(v))) + } + "RATIO_MEASURE_WITH_UNIT" => RatioMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RatioMeasureWithUnit(v))), "RATIO_UNIT" => RatioUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::RatioUnit(v))), - "RATIONAL_B_SPLINE_CURVE" => RationalBSplineCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::RationalBSplineCurve(v))), - "RATIONAL_B_SPLINE_SURFACE" => RationalBSplineSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::RationalBSplineSurface(v))), - "REAL_DEFINED_FUNCTION" => RealDefinedFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::RealDefinedFunction(v))), - "REAL_LITERAL" => RealLiteral_::parse_chunks(strs).map(|(s, v)| (s, Entity::RealLiteral(v))), - "REAL_NUMERIC_VARIABLE" => RealNumericVariable_::parse_chunks(strs).map(|(s, v)| (s, Entity::RealNumericVariable(v))), - "RECTANGULAR_CLOSED_PROFILE" => RectangularClosedProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::RectangularClosedProfile(v))), - "RECTANGULAR_COMPOSITE_SURFACE" => RectangularCompositeSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::RectangularCompositeSurface(v))), - "RECTANGULAR_PATTERN" => RectangularPattern_::parse_chunks(strs).map(|(s, v)| (s, Entity::RectangularPattern(v))), - "RECTANGULAR_TRIMMED_SURFACE" => RectangularTrimmedSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::RectangularTrimmedSurface(v))), - "REFERENCED_MODIFIED_DATUM" => ReferencedModifiedDatum_::parse_chunks(strs).map(|(s, v)| (s, Entity::ReferencedModifiedDatum(v))), - "RELATIVE_EVENT_OCCURRENCE" => RelativeEventOccurrence_::parse_chunks(strs).map(|(s, v)| (s, Entity::RelativeEventOccurrence(v))), - "REP_ITEM_GROUP" => RepItemGroup_::parse_chunks(strs).map(|(s, v)| (s, Entity::RepItemGroup(v))), - "REPARAMETRISED_COMPOSITE_CURVE_SEGMENT" => ReparametrisedCompositeCurveSegment_::parse_chunks(strs).map(|(s, v)| (s, Entity::ReparametrisedCompositeCurveSegment(v))), - "REPLICATE_FEATURE" => ReplicateFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::ReplicateFeature(v))), - "REPRESENTATION" => Representation_::parse_chunks(strs).map(|(s, v)| (s, Entity::Representation(v))), - "REPRESENTATION_CONTEXT" => RepresentationContext_::parse_chunks(strs).map(|(s, v)| (s, Entity::RepresentationContext(v))), - "REPRESENTATION_ITEM" => RepresentationItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::RepresentationItem(v))), - "REPRESENTATION_MAP" => RepresentationMap_::parse_chunks(strs).map(|(s, v)| (s, Entity::RepresentationMap(v))), - "REPRESENTATION_RELATIONSHIP" => RepresentationRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::RepresentationRelationship(v))), - "REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION" => RepresentationRelationshipWithTransformation_::parse_chunks(strs).map(|(s, v)| (s, Entity::RepresentationRelationshipWithTransformation(v))), - "REQUIREMENT_FOR_ACTION_RESOURCE" => RequirementForActionResource_::parse_chunks(strs).map(|(s, v)| (s, Entity::RequirementForActionResource(v))), - "RESOURCE_PROPERTY" => ResourceProperty_::parse_chunks(strs).map(|(s, v)| (s, Entity::ResourceProperty(v))), - "RESOURCE_PROPERTY_REPRESENTATION" => ResourcePropertyRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ResourcePropertyRepresentation(v))), - "RESOURCE_REQUIREMENT_TYPE" => ResourceRequirementType_::parse_chunks(strs).map(|(s, v)| (s, Entity::ResourceRequirementType(v))), - "RESULTING_PATH" => ResultingPath_::parse_chunks(strs).map(|(s, v)| (s, Entity::ResultingPath(v))), + "RATIONAL_B_SPLINE_CURVE" => RationalBSplineCurve_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RationalBSplineCurve(v))), + "RATIONAL_B_SPLINE_SURFACE" => RationalBSplineSurface_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RationalBSplineSurface(v))), + "REAL_DEFINED_FUNCTION" => RealDefinedFunction_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RealDefinedFunction(v))), + "REAL_LITERAL" => { + RealLiteral_::parse_chunks(strs).map(|(s, v)| (s, Entity::RealLiteral(v))) + } + "REAL_NUMERIC_VARIABLE" => RealNumericVariable_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RealNumericVariable(v))), + "RECTANGULAR_CLOSED_PROFILE" => RectangularClosedProfile_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RectangularClosedProfile(v))), + "RECTANGULAR_COMPOSITE_SURFACE" => RectangularCompositeSurface_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RectangularCompositeSurface(v))), + "RECTANGULAR_PATTERN" => RectangularPattern_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RectangularPattern(v))), + "RECTANGULAR_TRIMMED_SURFACE" => RectangularTrimmedSurface_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RectangularTrimmedSurface(v))), + "REFERENCED_MODIFIED_DATUM" => ReferencedModifiedDatum_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ReferencedModifiedDatum(v))), + "RELATIVE_EVENT_OCCURRENCE" => RelativeEventOccurrence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RelativeEventOccurrence(v))), + "REP_ITEM_GROUP" => { + RepItemGroup_::parse_chunks(strs).map(|(s, v)| (s, Entity::RepItemGroup(v))) + } + "REPARAMETRISED_COMPOSITE_CURVE_SEGMENT" => { + ReparametrisedCompositeCurveSegment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ReparametrisedCompositeCurveSegment(v))) + } + "REPLICATE_FEATURE" => { + ReplicateFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::ReplicateFeature(v))) + } + "REPRESENTATION" => { + Representation_::parse_chunks(strs).map(|(s, v)| (s, Entity::Representation(v))) + } + "REPRESENTATION_CONTEXT" => RepresentationContext_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RepresentationContext(v))), + "REPRESENTATION_ITEM" => RepresentationItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RepresentationItem(v))), + "REPRESENTATION_MAP" => RepresentationMap_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RepresentationMap(v))), + "REPRESENTATION_RELATIONSHIP" => RepresentationRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RepresentationRelationship(v))), + "REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION" => { + RepresentationRelationshipWithTransformation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RepresentationRelationshipWithTransformation(v))) + } + "REQUIREMENT_FOR_ACTION_RESOURCE" => RequirementForActionResource_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RequirementForActionResource(v))), + "RESOURCE_PROPERTY" => { + ResourceProperty_::parse_chunks(strs).map(|(s, v)| (s, Entity::ResourceProperty(v))) + } + "RESOURCE_PROPERTY_REPRESENTATION" => { + ResourcePropertyRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ResourcePropertyRepresentation(v))) + } + "RESOURCE_REQUIREMENT_TYPE" => ResourceRequirementType_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ResourceRequirementType(v))), + "RESULTING_PATH" => { + ResultingPath_::parse_chunks(strs).map(|(s, v)| (s, Entity::ResultingPath(v))) + } "RETENTION" => Retention_::parse_chunks(strs).map(|(s, v)| (s, Entity::Retention(v))), - "REVOLUTE_PAIR" => RevolutePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::RevolutePair(v))), - "REVOLUTE_PAIR_RANGE" => RevolutePairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::RevolutePairRange(v))), - "REVOLUTE_PAIR_VALUE" => RevolutePairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::RevolutePairValue(v))), - "REVOLVED_AREA_SOLID" => RevolvedAreaSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::RevolvedAreaSolid(v))), - "REVOLVED_FACE_SOLID" => RevolvedFaceSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::RevolvedFaceSolid(v))), + "REVOLUTE_PAIR" => { + RevolutePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::RevolutePair(v))) + } + "REVOLUTE_PAIR_RANGE" => RevolutePairRange_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RevolutePairRange(v))), + "REVOLUTE_PAIR_VALUE" => RevolutePairValue_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RevolutePairValue(v))), + "REVOLVED_AREA_SOLID" => RevolvedAreaSolid_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RevolvedAreaSolid(v))), + "REVOLVED_FACE_SOLID" => RevolvedFaceSolid_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RevolvedFaceSolid(v))), "RIB" => Rib_::parse_chunks(strs).map(|(s, v)| (s, Entity::Rib(v))), - "RIGHT_ANGULAR_WEDGE" => RightAngularWedge_::parse_chunks(strs).map(|(s, v)| (s, Entity::RightAngularWedge(v))), - "RIGHT_CIRCULAR_CONE" => RightCircularCone_::parse_chunks(strs).map(|(s, v)| (s, Entity::RightCircularCone(v))), - "RIGHT_CIRCULAR_CYLINDER" => RightCircularCylinder_::parse_chunks(strs).map(|(s, v)| (s, Entity::RightCircularCylinder(v))), - "ROLE_ASSOCIATION" => RoleAssociation_::parse_chunks(strs).map(|(s, v)| (s, Entity::RoleAssociation(v))), - "ROLLING_CURVE_PAIR" => RollingCurvePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::RollingCurvePair(v))), - "ROLLING_CURVE_PAIR_VALUE" => RollingCurvePairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::RollingCurvePairValue(v))), - "ROLLING_SURFACE_PAIR" => RollingSurfacePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::RollingSurfacePair(v))), - "ROLLING_SURFACE_PAIR_VALUE" => RollingSurfacePairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::RollingSurfacePairValue(v))), - "ROTATION_ABOUT_DIRECTION" => RotationAboutDirection_::parse_chunks(strs).map(|(s, v)| (s, Entity::RotationAboutDirection(v))), + "RIGHT_ANGULAR_WEDGE" => RightAngularWedge_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RightAngularWedge(v))), + "RIGHT_CIRCULAR_CONE" => RightCircularCone_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RightCircularCone(v))), + "RIGHT_CIRCULAR_CYLINDER" => RightCircularCylinder_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RightCircularCylinder(v))), + "ROLE_ASSOCIATION" => { + RoleAssociation_::parse_chunks(strs).map(|(s, v)| (s, Entity::RoleAssociation(v))) + } + "ROLLING_CURVE_PAIR" => { + RollingCurvePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::RollingCurvePair(v))) + } + "ROLLING_CURVE_PAIR_VALUE" => RollingCurvePairValue_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RollingCurvePairValue(v))), + "ROLLING_SURFACE_PAIR" => RollingSurfacePair_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RollingSurfacePair(v))), + "ROLLING_SURFACE_PAIR_VALUE" => RollingSurfacePairValue_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RollingSurfacePairValue(v))), + "ROTATION_ABOUT_DIRECTION" => RotationAboutDirection_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RotationAboutDirection(v))), "ROUND_HOLE" => RoundHole_::parse_chunks(strs).map(|(s, v)| (s, Entity::RoundHole(v))), - "ROUNDED_U_PROFILE" => RoundedUProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::RoundedUProfile(v))), - "ROUNDNESS_TOLERANCE" => RoundnessTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::RoundnessTolerance(v))), - "RULED_SURFACE_SWEPT_AREA_SOLID" => RuledSurfaceSweptAreaSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::RuledSurfaceSweptAreaSolid(v))), - "RUNOUT_ZONE_DEFINITION" => RunoutZoneDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::RunoutZoneDefinition(v))), - "RUNOUT_ZONE_ORIENTATION" => RunoutZoneOrientation_::parse_chunks(strs).map(|(s, v)| (s, Entity::RunoutZoneOrientation(v))), - "RUNOUT_ZONE_ORIENTATION_REFERENCE_DIRECTION" => RunoutZoneOrientationReferenceDirection_::parse_chunks(strs).map(|(s, v)| (s, Entity::RunoutZoneOrientationReferenceDirection(v))), + "ROUNDED_U_PROFILE" => { + RoundedUProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::RoundedUProfile(v))) + } + "ROUNDNESS_TOLERANCE" => RoundnessTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RoundnessTolerance(v))), + "RULED_SURFACE_SWEPT_AREA_SOLID" => RuledSurfaceSweptAreaSolid_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RuledSurfaceSweptAreaSolid(v))), + "RUNOUT_ZONE_DEFINITION" => RunoutZoneDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RunoutZoneDefinition(v))), + "RUNOUT_ZONE_ORIENTATION" => RunoutZoneOrientation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RunoutZoneOrientation(v))), + "RUNOUT_ZONE_ORIENTATION_REFERENCE_DIRECTION" => { + RunoutZoneOrientationReferenceDirection_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::RunoutZoneOrientationReferenceDirection(v))) + } "SCREW_PAIR" => ScrewPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::ScrewPair(v))), - "SCREW_PAIR_RANGE" => ScrewPairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::ScrewPairRange(v))), - "SCREW_PAIR_VALUE" => ScrewPairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::ScrewPairValue(v))), + "SCREW_PAIR_RANGE" => { + ScrewPairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::ScrewPairRange(v))) + } + "SCREW_PAIR_VALUE" => { + ScrewPairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::ScrewPairValue(v))) + } "SEAM_CURVE" => SeamCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::SeamCurve(v))), "SEAM_EDGE" => SeamEdge_::parse_chunks(strs).map(|(s, v)| (s, Entity::SeamEdge(v))), - "SECURITY_CLASSIFICATION" => SecurityClassification_::parse_chunks(strs).map(|(s, v)| (s, Entity::SecurityClassification(v))), - "SECURITY_CLASSIFICATION_ASSIGNMENT" => SecurityClassificationAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::SecurityClassificationAssignment(v))), - "SECURITY_CLASSIFICATION_LEVEL" => SecurityClassificationLevel_::parse_chunks(strs).map(|(s, v)| (s, Entity::SecurityClassificationLevel(v))), - "SERIAL_NUMBERED_EFFECTIVITY" => SerialNumberedEffectivity_::parse_chunks(strs).map(|(s, v)| (s, Entity::SerialNumberedEffectivity(v))), - "SHAPE_ASPECT" => ShapeAspect_::parse_chunks(strs).map(|(s, v)| (s, Entity::ShapeAspect(v))), - "SHAPE_ASPECT_ASSOCIATIVITY" => ShapeAspectAssociativity_::parse_chunks(strs).map(|(s, v)| (s, Entity::ShapeAspectAssociativity(v))), - "SHAPE_ASPECT_DERIVING_RELATIONSHIP" => ShapeAspectDerivingRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ShapeAspectDerivingRelationship(v))), - "SHAPE_ASPECT_RELATIONSHIP" => ShapeAspectRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ShapeAspectRelationship(v))), - "SHAPE_ASPECT_TRANSITION" => ShapeAspectTransition_::parse_chunks(strs).map(|(s, v)| (s, Entity::ShapeAspectTransition(v))), - "SHAPE_DEFINING_RELATIONSHIP" => ShapeDefiningRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ShapeDefiningRelationship(v))), - "SHAPE_DEFINITION_REPRESENTATION" => ShapeDefinitionRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ShapeDefinitionRepresentation(v))), - "SHAPE_DIMENSION_REPRESENTATION" => ShapeDimensionRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ShapeDimensionRepresentation(v))), - "SHAPE_REPRESENTATION" => ShapeRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::ShapeRepresentation(v))), - "SHAPE_REPRESENTATION_RELATIONSHIP" => ShapeRepresentationRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::ShapeRepresentationRelationship(v))), - "SHAPE_REPRESENTATION_WITH_PARAMETERS" => ShapeRepresentationWithParameters_::parse_chunks(strs).map(|(s, v)| (s, Entity::ShapeRepresentationWithParameters(v))), - "SHELL_BASED_SURFACE_MODEL" => ShellBasedSurfaceModel_::parse_chunks(strs).map(|(s, v)| (s, Entity::ShellBasedSurfaceModel(v))), + "SECURITY_CLASSIFICATION" => SecurityClassification_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SecurityClassification(v))), + "SECURITY_CLASSIFICATION_ASSIGNMENT" => { + SecurityClassificationAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SecurityClassificationAssignment(v))) + } + "SECURITY_CLASSIFICATION_LEVEL" => SecurityClassificationLevel_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SecurityClassificationLevel(v))), + "SERIAL_NUMBERED_EFFECTIVITY" => SerialNumberedEffectivity_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SerialNumberedEffectivity(v))), + "SHAPE_ASPECT" => { + ShapeAspect_::parse_chunks(strs).map(|(s, v)| (s, Entity::ShapeAspect(v))) + } + "SHAPE_ASPECT_ASSOCIATIVITY" => ShapeAspectAssociativity_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ShapeAspectAssociativity(v))), + "SHAPE_ASPECT_DERIVING_RELATIONSHIP" => { + ShapeAspectDerivingRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ShapeAspectDerivingRelationship(v))) + } + "SHAPE_ASPECT_RELATIONSHIP" => ShapeAspectRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ShapeAspectRelationship(v))), + "SHAPE_ASPECT_TRANSITION" => ShapeAspectTransition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ShapeAspectTransition(v))), + "SHAPE_DEFINING_RELATIONSHIP" => ShapeDefiningRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ShapeDefiningRelationship(v))), + "SHAPE_DEFINITION_REPRESENTATION" => ShapeDefinitionRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ShapeDefinitionRepresentation(v))), + "SHAPE_DIMENSION_REPRESENTATION" => ShapeDimensionRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ShapeDimensionRepresentation(v))), + "SHAPE_REPRESENTATION" => ShapeRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ShapeRepresentation(v))), + "SHAPE_REPRESENTATION_RELATIONSHIP" => { + ShapeRepresentationRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ShapeRepresentationRelationship(v))) + } + "SHAPE_REPRESENTATION_WITH_PARAMETERS" => { + ShapeRepresentationWithParameters_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ShapeRepresentationWithParameters(v))) + } + "SHELL_BASED_SURFACE_MODEL" => ShellBasedSurfaceModel_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ShellBasedSurfaceModel(v))), "SI_UNIT" => SiUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::SiUnit(v))), - "SIMPLE_BOOLEAN_EXPRESSION" => SimpleBooleanExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::SimpleBooleanExpression(v))), - "SIMPLE_GENERIC_EXPRESSION" => SimpleGenericExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::SimpleGenericExpression(v))), - "SIMPLE_NUMERIC_EXPRESSION" => SimpleNumericExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::SimpleNumericExpression(v))), - "SIMPLE_PAIR_RANGE" => SimplePairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::SimplePairRange(v))), - "SIMPLE_STRING_EXPRESSION" => SimpleStringExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::SimpleStringExpression(v))), - "SIN_FUNCTION" => SinFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::SinFunction(v))), - "SLASH_EXPRESSION" => SlashExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::SlashExpression(v))), - "SLIDING_CURVE_PAIR" => SlidingCurvePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::SlidingCurvePair(v))), - "SLIDING_CURVE_PAIR_VALUE" => SlidingCurvePairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::SlidingCurvePairValue(v))), - "SLIDING_SURFACE_PAIR" => SlidingSurfacePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::SlidingSurfacePair(v))), - "SLIDING_SURFACE_PAIR_VALUE" => SlidingSurfacePairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::SlidingSurfacePairValue(v))), + "SIMPLE_BOOLEAN_EXPRESSION" => SimpleBooleanExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SimpleBooleanExpression(v))), + "SIMPLE_GENERIC_EXPRESSION" => SimpleGenericExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SimpleGenericExpression(v))), + "SIMPLE_NUMERIC_EXPRESSION" => SimpleNumericExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SimpleNumericExpression(v))), + "SIMPLE_PAIR_RANGE" => { + SimplePairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::SimplePairRange(v))) + } + "SIMPLE_STRING_EXPRESSION" => SimpleStringExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SimpleStringExpression(v))), + "SIN_FUNCTION" => { + SinFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::SinFunction(v))) + } + "SLASH_EXPRESSION" => { + SlashExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::SlashExpression(v))) + } + "SLIDING_CURVE_PAIR" => { + SlidingCurvePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::SlidingCurvePair(v))) + } + "SLIDING_CURVE_PAIR_VALUE" => SlidingCurvePairValue_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SlidingCurvePairValue(v))), + "SLIDING_SURFACE_PAIR" => SlidingSurfacePair_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SlidingSurfacePair(v))), + "SLIDING_SURFACE_PAIR_VALUE" => SlidingSurfacePairValue_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SlidingSurfacePairValue(v))), "SLOT" => Slot_::parse_chunks(strs).map(|(s, v)| (s, Entity::Slot(v))), "SLOT_END" => SlotEnd_::parse_chunks(strs).map(|(s, v)| (s, Entity::SlotEnd(v))), - "SOLID_ANGLE_MEASURE_WITH_UNIT" => SolidAngleMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::SolidAngleMeasureWithUnit(v))), - "SOLID_ANGLE_UNIT" => SolidAngleUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::SolidAngleUnit(v))), - "SOLID_MODEL" => SolidModel_::parse_chunks(strs).map(|(s, v)| (s, Entity::SolidModel(v))), - "SOLID_REPLICA" => SolidReplica_::parse_chunks(strs).map(|(s, v)| (s, Entity::SolidReplica(v))), - "SPECIFIED_HIGHER_USAGE_OCCURRENCE" => SpecifiedHigherUsageOccurrence_::parse_chunks(strs).map(|(s, v)| (s, Entity::SpecifiedHigherUsageOccurrence(v))), + "SOLID_ANGLE_MEASURE_WITH_UNIT" => SolidAngleMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SolidAngleMeasureWithUnit(v))), + "SOLID_ANGLE_UNIT" => { + SolidAngleUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::SolidAngleUnit(v))) + } + "SOLID_MODEL" => { + SolidModel_::parse_chunks(strs).map(|(s, v)| (s, Entity::SolidModel(v))) + } + "SOLID_REPLICA" => { + SolidReplica_::parse_chunks(strs).map(|(s, v)| (s, Entity::SolidReplica(v))) + } + "SPECIFIED_HIGHER_USAGE_OCCURRENCE" => { + SpecifiedHigherUsageOccurrence_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SpecifiedHigherUsageOccurrence(v))) + } "SPHERE" => Sphere_::parse_chunks(strs).map(|(s, v)| (s, Entity::Sphere(v))), - "SPHERICAL_PAIR" => SphericalPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::SphericalPair(v))), - "SPHERICAL_PAIR_RANGE" => SphericalPairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::SphericalPairRange(v))), - "SPHERICAL_PAIR_VALUE" => SphericalPairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::SphericalPairValue(v))), - "SPHERICAL_SURFACE" => SphericalSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::SphericalSurface(v))), - "SQL_MAPPABLE_DEFINED_FUNCTION" => SqlMappableDefinedFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::SqlMappableDefinedFunction(v))), - "SQUARE_ROOT_FUNCTION" => SquareRootFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::SquareRootFunction(v))), - "SQUARE_U_PROFILE" => SquareUProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::SquareUProfile(v))), - "STANDARD_UNCERTAINTY" => StandardUncertainty_::parse_chunks(strs).map(|(s, v)| (s, Entity::StandardUncertainty(v))), - "STRAIGHTNESS_TOLERANCE" => StraightnessTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::StraightnessTolerance(v))), - "STRING_DEFINED_FUNCTION" => StringDefinedFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::StringDefinedFunction(v))), - "STRING_EXPRESSION" => StringExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::StringExpression(v))), - "STRING_LITERAL" => StringLiteral_::parse_chunks(strs).map(|(s, v)| (s, Entity::StringLiteral(v))), - "STRING_VARIABLE" => StringVariable_::parse_chunks(strs).map(|(s, v)| (s, Entity::StringVariable(v))), - "STRUCTURED_DIMENSION_CALLOUT" => StructuredDimensionCallout_::parse_chunks(strs).map(|(s, v)| (s, Entity::StructuredDimensionCallout(v))), - "STYLED_ITEM" => StyledItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::StyledItem(v))), + "SPHERICAL_PAIR" => { + SphericalPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::SphericalPair(v))) + } + "SPHERICAL_PAIR_RANGE" => SphericalPairRange_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SphericalPairRange(v))), + "SPHERICAL_PAIR_VALUE" => SphericalPairValue_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SphericalPairValue(v))), + "SPHERICAL_SURFACE" => { + SphericalSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::SphericalSurface(v))) + } + "SQL_MAPPABLE_DEFINED_FUNCTION" => SqlMappableDefinedFunction_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SqlMappableDefinedFunction(v))), + "SQUARE_ROOT_FUNCTION" => SquareRootFunction_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SquareRootFunction(v))), + "SQUARE_U_PROFILE" => { + SquareUProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::SquareUProfile(v))) + } + "STANDARD_UNCERTAINTY" => StandardUncertainty_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::StandardUncertainty(v))), + "STRAIGHTNESS_TOLERANCE" => StraightnessTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::StraightnessTolerance(v))), + "STRING_DEFINED_FUNCTION" => StringDefinedFunction_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::StringDefinedFunction(v))), + "STRING_EXPRESSION" => { + StringExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::StringExpression(v))) + } + "STRING_LITERAL" => { + StringLiteral_::parse_chunks(strs).map(|(s, v)| (s, Entity::StringLiteral(v))) + } + "STRING_VARIABLE" => { + StringVariable_::parse_chunks(strs).map(|(s, v)| (s, Entity::StringVariable(v))) + } + "STRUCTURED_DIMENSION_CALLOUT" => StructuredDimensionCallout_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::StructuredDimensionCallout(v))), + "STYLED_ITEM" => { + StyledItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::StyledItem(v))) + } "SUBEDGE" => Subedge_::parse_chunks(strs).map(|(s, v)| (s, Entity::Subedge(v))), "SUBFACE" => Subface_::parse_chunks(strs).map(|(s, v)| (s, Entity::Subface(v))), - "SUBSTRING_EXPRESSION" => SubstringExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::SubstringExpression(v))), + "SUBSTRING_EXPRESSION" => SubstringExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SubstringExpression(v))), "SURFACE" => Surface_::parse_chunks(strs).map(|(s, v)| (s, Entity::Surface(v))), - "SURFACE_CONDITION_CALLOUT" => SurfaceConditionCallout_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceConditionCallout(v))), - "SURFACE_CURVE" => SurfaceCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceCurve(v))), - "SURFACE_CURVE_SWEPT_AREA_SOLID" => SurfaceCurveSweptAreaSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceCurveSweptAreaSolid(v))), - "SURFACE_OF_LINEAR_EXTRUSION" => SurfaceOfLinearExtrusion_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceOfLinearExtrusion(v))), - "SURFACE_OF_REVOLUTION" => SurfaceOfRevolution_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceOfRevolution(v))), - "SURFACE_PAIR" => SurfacePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfacePair(v))), - "SURFACE_PAIR_RANGE" => SurfacePairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfacePairRange(v))), - "SURFACE_PATCH" => SurfacePatch_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfacePatch(v))), - "SURFACE_PROFILE_TOLERANCE" => SurfaceProfileTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceProfileTolerance(v))), - "SURFACE_RENDERING_PROPERTIES" => SurfaceRenderingProperties_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceRenderingProperties(v))), - "SURFACE_REPLICA" => SurfaceReplica_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceReplica(v))), - "SURFACE_SIDE_STYLE" => SurfaceSideStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceSideStyle(v))), - "SURFACE_STYLE_BOUNDARY" => SurfaceStyleBoundary_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceStyleBoundary(v))), - "SURFACE_STYLE_CONTROL_GRID" => SurfaceStyleControlGrid_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceStyleControlGrid(v))), - "SURFACE_STYLE_FILL_AREA" => SurfaceStyleFillArea_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceStyleFillArea(v))), - "SURFACE_STYLE_PARAMETER_LINE" => SurfaceStyleParameterLine_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceStyleParameterLine(v))), - "SURFACE_STYLE_REFLECTANCE_AMBIENT" => SurfaceStyleReflectanceAmbient_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceStyleReflectanceAmbient(v))), - "SURFACE_STYLE_REFLECTANCE_AMBIENT_DIFFUSE" => SurfaceStyleReflectanceAmbientDiffuse_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceStyleReflectanceAmbientDiffuse(v))), - "SURFACE_STYLE_REFLECTANCE_AMBIENT_DIFFUSE_SPECULAR" => SurfaceStyleReflectanceAmbientDiffuseSpecular_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceStyleReflectanceAmbientDiffuseSpecular(v))), - "SURFACE_STYLE_RENDERING" => SurfaceStyleRendering_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceStyleRendering(v))), - "SURFACE_STYLE_RENDERING_WITH_PROPERTIES" => SurfaceStyleRenderingWithProperties_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceStyleRenderingWithProperties(v))), - "SURFACE_STYLE_SEGMENTATION_CURVE" => SurfaceStyleSegmentationCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceStyleSegmentationCurve(v))), - "SURFACE_STYLE_SILHOUETTE" => SurfaceStyleSilhouette_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceStyleSilhouette(v))), - "SURFACE_STYLE_TRANSPARENT" => SurfaceStyleTransparent_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceStyleTransparent(v))), - "SURFACE_STYLE_USAGE" => SurfaceStyleUsage_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceStyleUsage(v))), - "SURFACE_TEXTURE_REPRESENTATION" => SurfaceTextureRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceTextureRepresentation(v))), - "SWEPT_AREA_SOLID" => SweptAreaSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::SweptAreaSolid(v))), - "SWEPT_DISK_SOLID" => SweptDiskSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::SweptDiskSolid(v))), - "SWEPT_FACE_SOLID" => SweptFaceSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::SweptFaceSolid(v))), - "SWEPT_SURFACE" => SweptSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::SweptSurface(v))), - "SYMBOL_COLOUR" => SymbolColour_::parse_chunks(strs).map(|(s, v)| (s, Entity::SymbolColour(v))), - "SYMBOL_REPRESENTATION" => SymbolRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::SymbolRepresentation(v))), - "SYMBOL_REPRESENTATION_MAP" => SymbolRepresentationMap_::parse_chunks(strs).map(|(s, v)| (s, Entity::SymbolRepresentationMap(v))), - "SYMBOL_STYLE" => SymbolStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::SymbolStyle(v))), - "SYMBOL_TARGET" => SymbolTarget_::parse_chunks(strs).map(|(s, v)| (s, Entity::SymbolTarget(v))), - "SYMMETRIC_SHAPE_ASPECT" => SymmetricShapeAspect_::parse_chunks(strs).map(|(s, v)| (s, Entity::SymmetricShapeAspect(v))), - "SYMMETRY_TOLERANCE" => SymmetryTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::SymmetryTolerance(v))), - "TACTILE_APPEARANCE_REPRESENTATION" => TactileAppearanceRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::TactileAppearanceRepresentation(v))), - "TAN_FUNCTION" => TanFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::TanFunction(v))), + "SURFACE_CONDITION_CALLOUT" => SurfaceConditionCallout_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceConditionCallout(v))), + "SURFACE_CURVE" => { + SurfaceCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceCurve(v))) + } + "SURFACE_CURVE_SWEPT_AREA_SOLID" => SurfaceCurveSweptAreaSolid_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceCurveSweptAreaSolid(v))), + "SURFACE_OF_LINEAR_EXTRUSION" => SurfaceOfLinearExtrusion_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceOfLinearExtrusion(v))), + "SURFACE_OF_REVOLUTION" => SurfaceOfRevolution_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceOfRevolution(v))), + "SURFACE_PAIR" => { + SurfacePair_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfacePair(v))) + } + "SURFACE_PAIR_RANGE" => { + SurfacePairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfacePairRange(v))) + } + "SURFACE_PATCH" => { + SurfacePatch_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfacePatch(v))) + } + "SURFACE_PROFILE_TOLERANCE" => SurfaceProfileTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceProfileTolerance(v))), + "SURFACE_RENDERING_PROPERTIES" => SurfaceRenderingProperties_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceRenderingProperties(v))), + "SURFACE_REPLICA" => { + SurfaceReplica_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceReplica(v))) + } + "SURFACE_SIDE_STYLE" => { + SurfaceSideStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::SurfaceSideStyle(v))) + } + "SURFACE_STYLE_BOUNDARY" => SurfaceStyleBoundary_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceStyleBoundary(v))), + "SURFACE_STYLE_CONTROL_GRID" => SurfaceStyleControlGrid_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceStyleControlGrid(v))), + "SURFACE_STYLE_FILL_AREA" => SurfaceStyleFillArea_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceStyleFillArea(v))), + "SURFACE_STYLE_PARAMETER_LINE" => SurfaceStyleParameterLine_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceStyleParameterLine(v))), + "SURFACE_STYLE_REFLECTANCE_AMBIENT" => { + SurfaceStyleReflectanceAmbient_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceStyleReflectanceAmbient(v))) + } + "SURFACE_STYLE_REFLECTANCE_AMBIENT_DIFFUSE" => { + SurfaceStyleReflectanceAmbientDiffuse_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceStyleReflectanceAmbientDiffuse(v))) + } + "SURFACE_STYLE_REFLECTANCE_AMBIENT_DIFFUSE_SPECULAR" => { + SurfaceStyleReflectanceAmbientDiffuseSpecular_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceStyleReflectanceAmbientDiffuseSpecular(v))) + } + "SURFACE_STYLE_RENDERING" => SurfaceStyleRendering_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceStyleRendering(v))), + "SURFACE_STYLE_RENDERING_WITH_PROPERTIES" => { + SurfaceStyleRenderingWithProperties_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceStyleRenderingWithProperties(v))) + } + "SURFACE_STYLE_SEGMENTATION_CURVE" => { + SurfaceStyleSegmentationCurve_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceStyleSegmentationCurve(v))) + } + "SURFACE_STYLE_SILHOUETTE" => SurfaceStyleSilhouette_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceStyleSilhouette(v))), + "SURFACE_STYLE_TRANSPARENT" => SurfaceStyleTransparent_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceStyleTransparent(v))), + "SURFACE_STYLE_USAGE" => SurfaceStyleUsage_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceStyleUsage(v))), + "SURFACE_TEXTURE_REPRESENTATION" => SurfaceTextureRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SurfaceTextureRepresentation(v))), + "SWEPT_AREA_SOLID" => { + SweptAreaSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::SweptAreaSolid(v))) + } + "SWEPT_DISK_SOLID" => { + SweptDiskSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::SweptDiskSolid(v))) + } + "SWEPT_FACE_SOLID" => { + SweptFaceSolid_::parse_chunks(strs).map(|(s, v)| (s, Entity::SweptFaceSolid(v))) + } + "SWEPT_SURFACE" => { + SweptSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::SweptSurface(v))) + } + "SYMBOL_COLOUR" => { + SymbolColour_::parse_chunks(strs).map(|(s, v)| (s, Entity::SymbolColour(v))) + } + "SYMBOL_REPRESENTATION" => SymbolRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SymbolRepresentation(v))), + "SYMBOL_REPRESENTATION_MAP" => SymbolRepresentationMap_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SymbolRepresentationMap(v))), + "SYMBOL_STYLE" => { + SymbolStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::SymbolStyle(v))) + } + "SYMBOL_TARGET" => { + SymbolTarget_::parse_chunks(strs).map(|(s, v)| (s, Entity::SymbolTarget(v))) + } + "SYMMETRIC_SHAPE_ASPECT" => SymmetricShapeAspect_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SymmetricShapeAspect(v))), + "SYMMETRY_TOLERANCE" => SymmetryTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::SymmetryTolerance(v))), + "TACTILE_APPEARANCE_REPRESENTATION" => { + TactileAppearanceRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TactileAppearanceRepresentation(v))) + } + "TAN_FUNCTION" => { + TanFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::TanFunction(v))) + } "TANGENT" => Tangent_::parse_chunks(strs).map(|(s, v)| (s, Entity::Tangent(v))), "TAPER" => Taper_::parse_chunks(strs).map(|(s, v)| (s, Entity::Taper(v))), - "TEE_PROFILE" => TeeProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::TeeProfile(v))), - "TERMINATOR_SYMBOL" => TerminatorSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::TerminatorSymbol(v))), - "TEXT_LITERAL" => TextLiteral_::parse_chunks(strs).map(|(s, v)| (s, Entity::TextLiteral(v))), - "TEXT_LITERAL_WITH_ASSOCIATED_CURVES" => TextLiteralWithAssociatedCurves_::parse_chunks(strs).map(|(s, v)| (s, Entity::TextLiteralWithAssociatedCurves(v))), - "TEXT_LITERAL_WITH_BLANKING_BOX" => TextLiteralWithBlankingBox_::parse_chunks(strs).map(|(s, v)| (s, Entity::TextLiteralWithBlankingBox(v))), - "TEXT_LITERAL_WITH_DELINEATION" => TextLiteralWithDelineation_::parse_chunks(strs).map(|(s, v)| (s, Entity::TextLiteralWithDelineation(v))), - "TEXT_LITERAL_WITH_EXTENT" => TextLiteralWithExtent_::parse_chunks(strs).map(|(s, v)| (s, Entity::TextLiteralWithExtent(v))), - "TEXT_STRING_REPRESENTATION" => TextStringRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::TextStringRepresentation(v))), + "TEE_PROFILE" => { + TeeProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::TeeProfile(v))) + } + "TERMINATOR_SYMBOL" => { + TerminatorSymbol_::parse_chunks(strs).map(|(s, v)| (s, Entity::TerminatorSymbol(v))) + } + "TEXT_LITERAL" => { + TextLiteral_::parse_chunks(strs).map(|(s, v)| (s, Entity::TextLiteral(v))) + } + "TEXT_LITERAL_WITH_ASSOCIATED_CURVES" => { + TextLiteralWithAssociatedCurves_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TextLiteralWithAssociatedCurves(v))) + } + "TEXT_LITERAL_WITH_BLANKING_BOX" => TextLiteralWithBlankingBox_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TextLiteralWithBlankingBox(v))), + "TEXT_LITERAL_WITH_DELINEATION" => TextLiteralWithDelineation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TextLiteralWithDelineation(v))), + "TEXT_LITERAL_WITH_EXTENT" => TextLiteralWithExtent_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TextLiteralWithExtent(v))), + "TEXT_STRING_REPRESENTATION" => TextStringRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TextStringRepresentation(v))), "TEXT_STYLE" => TextStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::TextStyle(v))), - "TEXT_STYLE_FOR_DEFINED_FONT" => TextStyleForDefinedFont_::parse_chunks(strs).map(|(s, v)| (s, Entity::TextStyleForDefinedFont(v))), - "TEXT_STYLE_WITH_BOX_CHARACTERISTICS" => TextStyleWithBoxCharacteristics_::parse_chunks(strs).map(|(s, v)| (s, Entity::TextStyleWithBoxCharacteristics(v))), - "TEXT_STYLE_WITH_MIRROR" => TextStyleWithMirror_::parse_chunks(strs).map(|(s, v)| (s, Entity::TextStyleWithMirror(v))), - "TEXT_STYLE_WITH_SPACING" => TextStyleWithSpacing_::parse_chunks(strs).map(|(s, v)| (s, Entity::TextStyleWithSpacing(v))), - "THERMODYNAMIC_TEMPERATURE_MEASURE_WITH_UNIT" => ThermodynamicTemperatureMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::ThermodynamicTemperatureMeasureWithUnit(v))), - "THERMODYNAMIC_TEMPERATURE_UNIT" => ThermodynamicTemperatureUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::ThermodynamicTemperatureUnit(v))), + "TEXT_STYLE_FOR_DEFINED_FONT" => TextStyleForDefinedFont_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TextStyleForDefinedFont(v))), + "TEXT_STYLE_WITH_BOX_CHARACTERISTICS" => { + TextStyleWithBoxCharacteristics_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TextStyleWithBoxCharacteristics(v))) + } + "TEXT_STYLE_WITH_MIRROR" => TextStyleWithMirror_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TextStyleWithMirror(v))), + "TEXT_STYLE_WITH_SPACING" => TextStyleWithSpacing_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TextStyleWithSpacing(v))), + "THERMODYNAMIC_TEMPERATURE_MEASURE_WITH_UNIT" => { + ThermodynamicTemperatureMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ThermodynamicTemperatureMeasureWithUnit(v))) + } + "THERMODYNAMIC_TEMPERATURE_UNIT" => ThermodynamicTemperatureUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ThermodynamicTemperatureUnit(v))), "THREAD" => Thread_::parse_chunks(strs).map(|(s, v)| (s, Entity::Thread(v))), - "TIME_INTERVAL" => TimeInterval_::parse_chunks(strs).map(|(s, v)| (s, Entity::TimeInterval(v))), - "TIME_INTERVAL_ASSIGNMENT" => TimeIntervalAssignment_::parse_chunks(strs).map(|(s, v)| (s, Entity::TimeIntervalAssignment(v))), - "TIME_INTERVAL_BASED_EFFECTIVITY" => TimeIntervalBasedEffectivity_::parse_chunks(strs).map(|(s, v)| (s, Entity::TimeIntervalBasedEffectivity(v))), - "TIME_INTERVAL_ROLE" => TimeIntervalRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::TimeIntervalRole(v))), - "TIME_INTERVAL_WITH_BOUNDS" => TimeIntervalWithBounds_::parse_chunks(strs).map(|(s, v)| (s, Entity::TimeIntervalWithBounds(v))), - "TIME_MEASURE_WITH_UNIT" => TimeMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::TimeMeasureWithUnit(v))), + "TIME_INTERVAL" => { + TimeInterval_::parse_chunks(strs).map(|(s, v)| (s, Entity::TimeInterval(v))) + } + "TIME_INTERVAL_ASSIGNMENT" => TimeIntervalAssignment_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TimeIntervalAssignment(v))), + "TIME_INTERVAL_BASED_EFFECTIVITY" => TimeIntervalBasedEffectivity_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TimeIntervalBasedEffectivity(v))), + "TIME_INTERVAL_ROLE" => { + TimeIntervalRole_::parse_chunks(strs).map(|(s, v)| (s, Entity::TimeIntervalRole(v))) + } + "TIME_INTERVAL_WITH_BOUNDS" => TimeIntervalWithBounds_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TimeIntervalWithBounds(v))), + "TIME_MEASURE_WITH_UNIT" => TimeMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TimeMeasureWithUnit(v))), "TIME_UNIT" => TimeUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::TimeUnit(v))), - "TOLERANCE_VALUE" => ToleranceValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::ToleranceValue(v))), - "TOLERANCE_ZONE" => ToleranceZone_::parse_chunks(strs).map(|(s, v)| (s, Entity::ToleranceZone(v))), - "TOLERANCE_ZONE_DEFINITION" => ToleranceZoneDefinition_::parse_chunks(strs).map(|(s, v)| (s, Entity::ToleranceZoneDefinition(v))), - "TOLERANCE_ZONE_FORM" => ToleranceZoneForm_::parse_chunks(strs).map(|(s, v)| (s, Entity::ToleranceZoneForm(v))), - "TOPOLOGICAL_REPRESENTATION_ITEM" => TopologicalRepresentationItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::TopologicalRepresentationItem(v))), - "TOROIDAL_SURFACE" => ToroidalSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::ToroidalSurface(v))), + "TOLERANCE_VALUE" => { + ToleranceValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::ToleranceValue(v))) + } + "TOLERANCE_ZONE" => { + ToleranceZone_::parse_chunks(strs).map(|(s, v)| (s, Entity::ToleranceZone(v))) + } + "TOLERANCE_ZONE_DEFINITION" => ToleranceZoneDefinition_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ToleranceZoneDefinition(v))), + "TOLERANCE_ZONE_FORM" => ToleranceZoneForm_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ToleranceZoneForm(v))), + "TOPOLOGICAL_REPRESENTATION_ITEM" => TopologicalRepresentationItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TopologicalRepresentationItem(v))), + "TOROIDAL_SURFACE" => { + ToroidalSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::ToroidalSurface(v))) + } "TORUS" => Torus_::parse_chunks(strs).map(|(s, v)| (s, Entity::Torus(v))), - "TOTAL_RUNOUT_TOLERANCE" => TotalRunoutTolerance_::parse_chunks(strs).map(|(s, v)| (s, Entity::TotalRunoutTolerance(v))), - "TRANSITION_FEATURE" => TransitionFeature_::parse_chunks(strs).map(|(s, v)| (s, Entity::TransitionFeature(v))), - "TRIMMED_CURVE" => TrimmedCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::TrimmedCurve(v))), - "TWO_DIRECTION_REPEAT_FACTOR" => TwoDirectionRepeatFactor_::parse_chunks(strs).map(|(s, v)| (s, Entity::TwoDirectionRepeatFactor(v))), - "TYPE_QUALIFIER" => TypeQualifier_::parse_chunks(strs).map(|(s, v)| (s, Entity::TypeQualifier(v))), - "UNARY_BOOLEAN_EXPRESSION" => UnaryBooleanExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::UnaryBooleanExpression(v))), - "UNARY_FUNCTION_CALL" => UnaryFunctionCall_::parse_chunks(strs).map(|(s, v)| (s, Entity::UnaryFunctionCall(v))), - "UNARY_GENERIC_EXPRESSION" => UnaryGenericExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::UnaryGenericExpression(v))), - "UNARY_NUMERIC_EXPRESSION" => UnaryNumericExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::UnaryNumericExpression(v))), - "UNCERTAINTY_ASSIGNED_REPRESENTATION" => UncertaintyAssignedRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::UncertaintyAssignedRepresentation(v))), - "UNCERTAINTY_MEASURE_WITH_UNIT" => UncertaintyMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::UncertaintyMeasureWithUnit(v))), - "UNCERTAINTY_QUALIFIER" => UncertaintyQualifier_::parse_chunks(strs).map(|(s, v)| (s, Entity::UncertaintyQualifier(v))), - "UNCONSTRAINED_PAIR" => UnconstrainedPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::UnconstrainedPair(v))), - "UNCONSTRAINED_PAIR_VALUE" => UnconstrainedPairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::UnconstrainedPairValue(v))), - "UNIFORM_CURVE" => UniformCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::UniformCurve(v))), - "UNIFORM_SURFACE" => UniformSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::UniformSurface(v))), - "UNIVERSAL_PAIR" => UniversalPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::UniversalPair(v))), - "UNIVERSAL_PAIR_RANGE" => UniversalPairRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::UniversalPairRange(v))), - "UNIVERSAL_PAIR_VALUE" => UniversalPairValue_::parse_chunks(strs).map(|(s, v)| (s, Entity::UniversalPairValue(v))), - "VALUE_FUNCTION" => ValueFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::ValueFunction(v))), - "VALUE_RANGE" => ValueRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::ValueRange(v))), - "VALUE_REPRESENTATION_ITEM" => ValueRepresentationItem_::parse_chunks(strs).map(|(s, v)| (s, Entity::ValueRepresentationItem(v))), + "TOTAL_RUNOUT_TOLERANCE" => TotalRunoutTolerance_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TotalRunoutTolerance(v))), + "TRANSITION_FEATURE" => TransitionFeature_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TransitionFeature(v))), + "TRIMMED_CURVE" => { + TrimmedCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::TrimmedCurve(v))) + } + "TWO_DIRECTION_REPEAT_FACTOR" => TwoDirectionRepeatFactor_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::TwoDirectionRepeatFactor(v))), + "TYPE_QUALIFIER" => { + TypeQualifier_::parse_chunks(strs).map(|(s, v)| (s, Entity::TypeQualifier(v))) + } + "UNARY_BOOLEAN_EXPRESSION" => UnaryBooleanExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::UnaryBooleanExpression(v))), + "UNARY_FUNCTION_CALL" => UnaryFunctionCall_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::UnaryFunctionCall(v))), + "UNARY_GENERIC_EXPRESSION" => UnaryGenericExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::UnaryGenericExpression(v))), + "UNARY_NUMERIC_EXPRESSION" => UnaryNumericExpression_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::UnaryNumericExpression(v))), + "UNCERTAINTY_ASSIGNED_REPRESENTATION" => { + UncertaintyAssignedRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::UncertaintyAssignedRepresentation(v))) + } + "UNCERTAINTY_MEASURE_WITH_UNIT" => UncertaintyMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::UncertaintyMeasureWithUnit(v))), + "UNCERTAINTY_QUALIFIER" => UncertaintyQualifier_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::UncertaintyQualifier(v))), + "UNCONSTRAINED_PAIR" => UnconstrainedPair_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::UnconstrainedPair(v))), + "UNCONSTRAINED_PAIR_VALUE" => UnconstrainedPairValue_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::UnconstrainedPairValue(v))), + "UNIFORM_CURVE" => { + UniformCurve_::parse_chunks(strs).map(|(s, v)| (s, Entity::UniformCurve(v))) + } + "UNIFORM_SURFACE" => { + UniformSurface_::parse_chunks(strs).map(|(s, v)| (s, Entity::UniformSurface(v))) + } + "UNIVERSAL_PAIR" => { + UniversalPair_::parse_chunks(strs).map(|(s, v)| (s, Entity::UniversalPair(v))) + } + "UNIVERSAL_PAIR_RANGE" => UniversalPairRange_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::UniversalPairRange(v))), + "UNIVERSAL_PAIR_VALUE" => UniversalPairValue_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::UniversalPairValue(v))), + "VALUE_FUNCTION" => { + ValueFunction_::parse_chunks(strs).map(|(s, v)| (s, Entity::ValueFunction(v))) + } + "VALUE_RANGE" => { + ValueRange_::parse_chunks(strs).map(|(s, v)| (s, Entity::ValueRange(v))) + } + "VALUE_REPRESENTATION_ITEM" => ValueRepresentationItem_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::ValueRepresentationItem(v))), "VARIABLE" => Variable_::parse_chunks(strs).map(|(s, v)| (s, Entity::Variable(v))), - "VARIABLE_SEMANTICS" => VariableSemantics_::parse_chunks(strs).map(|(s, v)| (s, Entity::VariableSemantics(v))), + "VARIABLE_SEMANTICS" => VariableSemantics_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::VariableSemantics(v))), "VECTOR" => Vector_::parse_chunks(strs).map(|(s, v)| (s, Entity::Vector(v))), - "VECTOR_STYLE" => VectorStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::VectorStyle(v))), - "VEE_PROFILE" => VeeProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::VeeProfile(v))), - "VERSIONED_ACTION_REQUEST" => VersionedActionRequest_::parse_chunks(strs).map(|(s, v)| (s, Entity::VersionedActionRequest(v))), - "VERSIONED_ACTION_REQUEST_RELATIONSHIP" => VersionedActionRequestRelationship_::parse_chunks(strs).map(|(s, v)| (s, Entity::VersionedActionRequestRelationship(v))), + "VECTOR_STYLE" => { + VectorStyle_::parse_chunks(strs).map(|(s, v)| (s, Entity::VectorStyle(v))) + } + "VEE_PROFILE" => { + VeeProfile_::parse_chunks(strs).map(|(s, v)| (s, Entity::VeeProfile(v))) + } + "VERSIONED_ACTION_REQUEST" => VersionedActionRequest_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::VersionedActionRequest(v))), + "VERSIONED_ACTION_REQUEST_RELATIONSHIP" => { + VersionedActionRequestRelationship_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::VersionedActionRequestRelationship(v))) + } "VERTEX" => Vertex_::parse_chunks(strs).map(|(s, v)| (s, Entity::Vertex(v))), - "VERTEX_LOOP" => VertexLoop_::parse_chunks(strs).map(|(s, v)| (s, Entity::VertexLoop(v))), - "VERTEX_POINT" => VertexPoint_::parse_chunks(strs).map(|(s, v)| (s, Entity::VertexPoint(v))), - "VIEW_VOLUME" => ViewVolume_::parse_chunks(strs).map(|(s, v)| (s, Entity::ViewVolume(v))), - "VISUAL_APPEARANCE_REPRESENTATION" => VisualAppearanceRepresentation_::parse_chunks(strs).map(|(s, v)| (s, Entity::VisualAppearanceRepresentation(v))), - "VOLUME_MEASURE_WITH_UNIT" => VolumeMeasureWithUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::VolumeMeasureWithUnit(v))), - "VOLUME_UNIT" => VolumeUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::VolumeUnit(v))), - "XOR_EXPRESSION" => XorExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::XorExpression(v))), + "VERTEX_LOOP" => { + VertexLoop_::parse_chunks(strs).map(|(s, v)| (s, Entity::VertexLoop(v))) + } + "VERTEX_POINT" => { + VertexPoint_::parse_chunks(strs).map(|(s, v)| (s, Entity::VertexPoint(v))) + } + "VIEW_VOLUME" => { + ViewVolume_::parse_chunks(strs).map(|(s, v)| (s, Entity::ViewVolume(v))) + } + "VISUAL_APPEARANCE_REPRESENTATION" => { + VisualAppearanceRepresentation_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::VisualAppearanceRepresentation(v))) + } + "VOLUME_MEASURE_WITH_UNIT" => VolumeMeasureWithUnit_::parse_chunks(strs) + .map(|(s, v)| (s, Entity::VolumeMeasureWithUnit(v))), + "VOLUME_UNIT" => { + VolumeUnit_::parse_chunks(strs).map(|(s, v)| (s, Entity::VolumeUnit(v))) + } + "XOR_EXPRESSION" => { + XorExpression_::parse_chunks(strs).map(|(s, v)| (s, Entity::XorExpression(v))) + } "" => parse_complex_mapping(strs[0]), _ => nom_alt_err(r), } @@ -38068,7 +45346,10 @@ pub fn superclasses_of(s: &str) -> &[&str] { "CAMERA_MODEL_D3_WITH_HLHSR" => &["CAMERA_MODEL_D3"], "CAMERA_USAGE" => &["REPRESENTATION_MAP"], "CARTESIAN_POINT" => &["POINT"], - "CARTESIAN_TRANSFORMATION_OPERATOR" => &["GEOMETRIC_REPRESENTATION_ITEM", "FUNCTIONALLY_DEFINED_TRANSFORMATION"], + "CARTESIAN_TRANSFORMATION_OPERATOR" => &[ + "GEOMETRIC_REPRESENTATION_ITEM", + "FUNCTIONALLY_DEFINED_TRANSFORMATION", + ], "CARTESIAN_TRANSFORMATION_OPERATOR_2D" => &["CARTESIAN_TRANSFORMATION_OPERATOR"], "CARTESIAN_TRANSFORMATION_OPERATOR_3D" => &["CARTESIAN_TRANSFORMATION_OPERATOR"], "CELSIUS_TEMPERATURE_MEASURE_WITH_UNIT" => &["MEASURE_WITH_UNIT"], @@ -38220,14 +45501,22 @@ pub fn superclasses_of(s: &str) -> &[&str] { "EXTERNALLY_DEFINED_CHARACTER_GLYPH" => &["EXTERNALLY_DEFINED_ITEM"], "EXTERNALLY_DEFINED_CLASS" => &["CLASS", "EXTERNALLY_DEFINED_ITEM"], "EXTERNALLY_DEFINED_CURVE_FONT" => &["EXTERNALLY_DEFINED_ITEM"], - "EXTERNALLY_DEFINED_DIMENSION_DEFINITION" => &["DIMENSIONAL_SIZE", "EXTERNALLY_DEFINED_ITEM"], - "EXTERNALLY_DEFINED_FEATURE_DEFINITION" => &["FEATURE_DEFINITION", "EXTERNALLY_DEFINED_ITEM"], + "EXTERNALLY_DEFINED_DIMENSION_DEFINITION" => { + &["DIMENSIONAL_SIZE", "EXTERNALLY_DEFINED_ITEM"] + } + "EXTERNALLY_DEFINED_FEATURE_DEFINITION" => { + &["FEATURE_DEFINITION", "EXTERNALLY_DEFINED_ITEM"] + } "EXTERNALLY_DEFINED_GENERAL_PROPERTY" => &["GENERAL_PROPERTY", "EXTERNALLY_DEFINED_ITEM"], - "EXTERNALLY_DEFINED_HATCH_STYLE" => &["EXTERNALLY_DEFINED_ITEM", "GEOMETRIC_REPRESENTATION_ITEM"], + "EXTERNALLY_DEFINED_HATCH_STYLE" => { + &["EXTERNALLY_DEFINED_ITEM", "GEOMETRIC_REPRESENTATION_ITEM"] + } "EXTERNALLY_DEFINED_STYLE" => &["EXTERNALLY_DEFINED_ITEM", "FOUNDED_ITEM"], "EXTERNALLY_DEFINED_SYMBOL" => &["EXTERNALLY_DEFINED_ITEM"], "EXTERNALLY_DEFINED_TEXT_FONT" => &["EXTERNALLY_DEFINED_ITEM"], - "EXTERNALLY_DEFINED_TILE_STYLE" => &["EXTERNALLY_DEFINED_ITEM", "GEOMETRIC_REPRESENTATION_ITEM"], + "EXTERNALLY_DEFINED_TILE_STYLE" => { + &["EXTERNALLY_DEFINED_ITEM", "GEOMETRIC_REPRESENTATION_ITEM"] + } "EXTRUDED_AREA_SOLID" => &["SWEPT_AREA_SOLID"], "EXTRUDED_FACE_SOLID" => &["SWEPT_FACE_SOLID"], "FACE" => &["TOPOLOGICAL_REPRESENTATION_ITEM"], @@ -38295,8 +45584,13 @@ pub fn superclasses_of(s: &str) -> &[&str] { "JOGGLE" => &["FEATURE_DEFINITION"], "JOGGLE_TERMINATION" => &["SHAPE_ASPECT"], "KINEMATIC_FRAME_BACKGROUND_REPRESENTATION" => &["REPRESENTATION"], - "KINEMATIC_FRAME_BACKGROUND_REPRESENTATION_ASSOCIATION" => &["REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION"], - "KINEMATIC_FRAME_BASED_TRANSFORMATION" => &["GEOMETRIC_REPRESENTATION_ITEM", "FUNCTIONALLY_DEFINED_TRANSFORMATION"], + "KINEMATIC_FRAME_BACKGROUND_REPRESENTATION_ASSOCIATION" => { + &["REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION"] + } + "KINEMATIC_FRAME_BASED_TRANSFORMATION" => &[ + "GEOMETRIC_REPRESENTATION_ITEM", + "FUNCTIONALLY_DEFINED_TRANSFORMATION", + ], "KINEMATIC_GROUND_REPRESENTATION" => &["REPRESENTATION"], "KINEMATIC_LINK_REPRESENTATION" => &["REPRESENTATION"], "KINEMATIC_LINK_REPRESENTATION_ASSOCIATION" => &["REPRESENTATION_RELATIONSHIP"], @@ -38357,10 +45651,14 @@ pub fn superclasses_of(s: &str) -> &[&str] { "MOTION_LINK_RELATIONSHIP" => &["REPRESENTATION_RELATIONSHIP"], "MULT_EXPRESSION" => &["MULTIPLE_ARITY_NUMERIC_EXPRESSION"], "MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT" => &["ATTRIBUTE_VALUE_ASSIGNMENT"], - "MULTIPLE_ARITY_BOOLEAN_EXPRESSION" => &["BOOLEAN_EXPRESSION", "MULTIPLE_ARITY_GENERIC_EXPRESSION"], + "MULTIPLE_ARITY_BOOLEAN_EXPRESSION" => { + &["BOOLEAN_EXPRESSION", "MULTIPLE_ARITY_GENERIC_EXPRESSION"] + } "MULTIPLE_ARITY_FUNCTION_CALL" => &["MULTIPLE_ARITY_NUMERIC_EXPRESSION"], "MULTIPLE_ARITY_GENERIC_EXPRESSION" => &["GENERIC_EXPRESSION"], - "MULTIPLE_ARITY_NUMERIC_EXPRESSION" => &["NUMERIC_EXPRESSION", "MULTIPLE_ARITY_GENERIC_EXPRESSION"], + "MULTIPLE_ARITY_NUMERIC_EXPRESSION" => { + &["NUMERIC_EXPRESSION", "MULTIPLE_ARITY_GENERIC_EXPRESSION"] + } "NAMED_UNIT_VARIABLE" => &["NAMED_UNIT", "VARIABLE_SEMANTICS"], "NEXT_ASSEMBLY_USAGE_OCCURRENCE" => &["ASSEMBLY_COMPONENT_USAGE"], "NGON_CLOSED_PROFILE" => &["SHAPE_ASPECT"], @@ -38403,7 +45701,9 @@ pub fn superclasses_of(s: &str) -> &[&str] { "PERPENDICULARITY_TOLERANCE" => &["GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE"], "PERSON_AND_ORGANIZATION_ADDRESS" => &["ORGANIZATIONAL_ADDRESS", "PERSONAL_ADDRESS"], "PERSONAL_ADDRESS" => &["ADDRESS"], - "PHYSICALLY_MODELLED_PRODUCT_DEFINITION" => &["PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS"], + "PHYSICALLY_MODELLED_PRODUCT_DEFINITION" => { + &["PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS"] + } "PLACED_DATUM_TARGET_FEATURE" => &["DATUM_TARGET"], "PLACED_FEATURE" => &["SHAPE_ASPECT"], "PLACEMENT" => &["GEOMETRIC_REPRESENTATION_ITEM"], @@ -38598,7 +45898,9 @@ pub fn superclasses_of(s: &str) -> &[&str] { "SURFACE_STYLE_FILL_AREA" => &["FOUNDED_ITEM"], "SURFACE_STYLE_PARAMETER_LINE" => &["FOUNDED_ITEM"], "SURFACE_STYLE_REFLECTANCE_AMBIENT_DIFFUSE" => &["SURFACE_STYLE_REFLECTANCE_AMBIENT"], - "SURFACE_STYLE_REFLECTANCE_AMBIENT_DIFFUSE_SPECULAR" => &["SURFACE_STYLE_REFLECTANCE_AMBIENT_DIFFUSE"], + "SURFACE_STYLE_REFLECTANCE_AMBIENT_DIFFUSE_SPECULAR" => { + &["SURFACE_STYLE_REFLECTANCE_AMBIENT_DIFFUSE"] + } "SURFACE_STYLE_RENDERING_WITH_PROPERTIES" => &["SURFACE_STYLE_RENDERING"], "SURFACE_STYLE_SEGMENTATION_CURVE" => &["FOUNDED_ITEM"], "SURFACE_STYLE_SILHOUETTE" => &["FOUNDED_ITEM"], @@ -38680,7 +45982,6 @@ impl<'a> Entity<'a> { pub fn upstream(&self) -> Vec { let mut out = Vec::new(); match self { - Entity::AbsFunction(c) => c.append_ids(&mut out), Entity::AcosFunction(c) => c.append_ids(&mut out), Entity::Action(c) => c.append_ids(&mut out), @@ -39187,7 +46488,9 @@ impl<'a> Entity<'a> { Entity::MeasureRepresentationItem(c) => c.append_ids(&mut out), Entity::MeasureWithUnit(c) => c.append_ids(&mut out), Entity::MechanicalDesignGeometricPresentationArea(c) => c.append_ids(&mut out), - Entity::MechanicalDesignGeometricPresentationRepresentation(c) => c.append_ids(&mut out), + Entity::MechanicalDesignGeometricPresentationRepresentation(c) => { + c.append_ids(&mut out) + } Entity::Mechanism(c) => c.append_ids(&mut out), Entity::MechanismBasePlacement(c) => c.append_ids(&mut out), Entity::MinimumFunction(c) => c.append_ids(&mut out), @@ -39600,7 +46903,7 @@ impl<'a> Entity<'a> { for e in v { out.extend(e.upstream().into_iter()); } - }, + } _ => (), }; out diff --git a/step/src/id.rs b/step/src/id.rs index 14b3f6f..7ad7acb 100644 --- a/step/src/id.rs +++ b/step/src/id.rs @@ -17,12 +17,12 @@ impl Id { // conservative derives: https://github.com/rust-lang/rust/issues/26925 unsafe impl Sync for Id {} unsafe impl Send for Id {} -impl Clone for Id { +impl Clone for Id { fn clone(&self) -> Self { *self } } -impl Copy for Id {} +impl Copy for Id {} impl PartialEq for Id { fn eq(&self, other: &Self) -> bool { self.0 == other.0 @@ -65,14 +65,18 @@ impl HasId for Option { } } impl HasId for i64 { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } impl HasId for f64 { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } impl HasId for &str { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } impl HasId for bool { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } diff --git a/step/src/lib.rs b/step/src/lib.rs index 65940d9..ef0b400 100644 --- a/step/src/lib.rs +++ b/step/src/lib.rs @@ -1,4 +1,4 @@ -pub mod parse; -pub mod step_file; pub mod ap214; // autogenerated! pub mod id; +pub mod parse; +pub mod step_file; diff --git a/step/src/parse.rs b/step/src/parse.rs index 3e7d2cd..c6ce759 100644 --- a/step/src/parse.rs +++ b/step/src/parse.rs @@ -1,17 +1,20 @@ -use std::collections::{HashSet, HashMap}; +use arrayvec::ArrayVec; +use memchr::{memchr, memchr3}; use nom::{ - branch::{alt}, + branch::alt, bytes::complete::{is_not, tag}, character::complete::{char, digit1}, combinator::{map, map_res, opt}, error::*, + multi::separated_list0, sequence::{delimited, preceded, tuple}, - multi::{separated_list0}, }; -use memchr::{memchr, memchr3}; -use arrayvec::ArrayVec; +use std::collections::{HashMap, HashSet}; -use crate::{id::{Id, HasId}, ap214::{Entity, superclasses_of}}; +use crate::{ + ap214::{Entity, superclasses_of}, + id::{HasId, Id}, +}; //////////////////////////////////////////////////////////////////////////////// @@ -31,17 +34,20 @@ pub fn nom_alt_err(s: &str) -> IResult<'_, U> { pub struct Logical(pub Option); impl HasId for Logical { - fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ } + fn append_ids(&self, _v: &mut Vec) { /* Nothing to do here */ + } } //////////////////////////////////////////////////////////////////////////////// pub(crate) trait Parse<'a> { - fn parse(s: &'a str) -> IResult<'a, Self> where Self: Sized; + fn parse(s: &'a str) -> IResult<'a, Self> + where + Self: Sized; } impl Parse<'_> for f64 { - fn parse(s: &str) -> IResult { + fn parse(s: &str) -> IResult<'_, Self> { match fast_float::parse_partial::(s) { Err(_) => nom_err(s, ErrorKind::Float), Ok((x, n)) => Ok((&s[n..], x)), @@ -50,25 +56,25 @@ impl Parse<'_> for f64 { } impl Parse<'_> for i64 { - fn parse(s: &str) -> IResult { - map_res(tuple((opt(char('-')), digit1)), + fn parse(s: &str) -> IResult<'_, Self> { + map_res( + tuple((opt(char('-')), digit1)), |(sign, digits)| -> Result::Err> { let num = str::parse::(digits)?; - if sign.is_some() { - Ok(-num) - } else { - Ok(num) - } - })(s) + if sign.is_some() { Ok(-num) } else { Ok(num) } + }, + )(s) } } impl<'a> Parse<'a> for &'a str { fn parse(s: &'a str) -> IResult<'a, &'a str> { alt(( - map(delimited(char('\''), opt(is_not("'")), char('\'')), - |r| r.unwrap_or("")), + map(delimited(char('\''), opt(is_not("'")), char('\'')), |r| { + r.unwrap_or("") + }), // NUL REF - map(char('$'), |_| "")))(s) + map(char('$'), |_| ""), + ))(s) } } @@ -108,9 +114,7 @@ impl<'a, T: Parse<'a>, const CAP: usize> Parse<'a> for ArrayVec { } impl<'a, T: Parse<'a>> Parse<'a> for Option { fn parse(s: &'a str) -> IResult<'a, Self> { - alt(( - map(char('$'), |_| None), - map(T::parse, |v| Some(v))))(s) + alt((map(char('$'), |_| None), map(T::parse, |v| Some(v))))(s) } } impl<'a> Parse<'a> for Logical { @@ -124,28 +128,27 @@ impl<'a> Parse<'a> for Logical { } impl<'a> Parse<'a> for bool { fn parse(s: &'a str) -> IResult<'a, Self> { - alt(( - map(tag(".T."), |_| true), - map(tag(".F."), |_| false), - ))(s) + alt((map(tag(".T."), |_| true), map(tag(".F."), |_| false)))(s) } } impl<'a, T> Parse<'a> for Id { - fn parse(s: &str) -> IResult { + fn parse(s: &str) -> IResult<'_, Self> { alt(( - map_res( - preceded(char('#'), digit1), - |s: &str| s.parse().map(|i| Id::new(i))), + map_res(preceded(char('#'), digit1), |s: &str| { + s.parse().map(|i| Id::new(i)) + }), // NUL id deserializes to 0 - map(char('$'), |_| Id::empty()))) - (s) + map(char('$'), |_| Id::empty()), + ))(s) } } //////////////////////////////////////////////////////////////////////////////// pub(crate) trait ParseFromChunks<'a> { - fn parse_chunks(s: &[&'a str]) -> IResult<'a, Self> where Self: Sized; + fn parse_chunks(s: &[&'a str]) -> IResult<'a, Self> + where + Self: Sized; } impl<'a, T: ParseFromChunks<'a>> Parse<'a> for T { @@ -158,7 +161,7 @@ impl<'a, T: ParseFromChunks<'a>> Parse<'a> for T { // optionally followed by a comma pub struct Derived; impl<'a> Parse<'a> for Derived { - fn parse(s: &str) -> IResult { + fn parse(s: &str) -> IResult<'_, Self> { map(char('*'), |_| Derived)(s) } } @@ -180,37 +183,42 @@ fn check_str<'a>(s: &'a str, i: &mut usize, strs: &[&'a str]) -> &'a str { } } pub(crate) fn param_from_chunks<'a, T: Parse<'a>>( - last: bool, s: &'a str, - i: &mut usize, strs: &[&'a str]) -> IResult<'a, T> -{ + last: bool, + s: &'a str, + i: &mut usize, + strs: &[&'a str], +) -> IResult<'a, T> { let s = check_str(s, i, strs); let (s, out) = T::parse(s)?; let s = check_str(s, i, strs); - let (s, _) = char(if last { ')'} else { ',' })(s)?; + let (s, _) = char(if last { ')' } else { ',' })(s)?; Ok((check_str(s, i, strs), out)) } -pub(crate) fn parse_enum_tag(s: &str) -> IResult<&str> { - delimited(char('.'), - nom::bytes::complete::take_while( - |c: char| c == '_' || - c.is_ascii_uppercase() || - c.is_ascii_digit()), - char('.'))(s) +pub(crate) fn parse_enum_tag(s: &str) -> IResult<'_, &str> { + delimited( + char('.'), + nom::bytes::complete::take_while(|c: char| { + c == '_' || c.is_ascii_uppercase() || c.is_ascii_digit() + }), + char('.'), + )(s) } //////////////////////////////////////////////////////////////////////////////// -pub(crate) fn parse_entity_decl(s: &[u8]) -> IResult<(usize, Entity)> { +pub(crate) fn parse_entity_decl(s: &[u8]) -> IResult<'_, (usize, Entity<'_>)> { let s = match std::str::from_utf8(s) { Ok(s) => s, Err(_) => return nom_err("", ErrorKind::Escaped), // TODO correct code? }; - map(tuple((Id::<()>::parse, char('='), Entity::parse)), - |(i, _, e)| (i.0, e))(s) + map( + tuple((Id::<()>::parse, char('='), Entity::parse)), + |(i, _, e)| (i.0, e), + )(s) } -pub(crate) fn parse_entity_fallback(s: &[u8]) -> IResult<(usize, Entity)> { +pub(crate) fn parse_entity_fallback(s: &[u8]) -> IResult<'_, (usize, Entity<'_>)> { let s = match std::str::from_utf8(s) { Ok(s) => s, Err(_) => return nom_err("", ErrorKind::Escaped), @@ -218,7 +226,7 @@ pub(crate) fn parse_entity_fallback(s: &[u8]) -> IResult<(usize, Entity)> { map(Id::<()>::parse, |i| (i.0, Entity::_FailedToParse))(s) } -pub(crate) fn parse_complex_mapping(s: &str) -> IResult { +pub(crate) fn parse_complex_mapping(s: &str) -> IResult<'_, Entity<'_>> { // We'll maintain a map from sub-entity name to its argument string, then // use this map to figure out the tree and construct it. let mut subentities: HashMap<&str, &str> = HashMap::new(); @@ -240,8 +248,7 @@ pub(crate) fn parse_complex_mapping(s: &str) -> IResult { b'(' => { if depth == 1 { let name_slice = &bstr[index..(index + next)]; - name = std::str::from_utf8(name_slice) - .expect("Could not convert back to name"); + name = std::str::from_utf8(name_slice).expect("Could not convert back to name"); args_start = index + next + 1; let name_tag_slice = &bstr[index..(index + next + 1)]; let name_tag = std::str::from_utf8(name_tag_slice) @@ -249,18 +256,17 @@ pub(crate) fn parse_complex_mapping(s: &str) -> IResult { name_tags.insert(name, name_tag); } depth += 1; - }, + } b')' => { depth -= 1; if depth == 1 { let arg_slice = &bstr[args_start..(index + next)]; - let args = std::str::from_utf8(arg_slice) - .expect("Could not convert args"); + let args = std::str::from_utf8(arg_slice).expect("Could not convert args"); subentities.insert(name, args); } else if depth == 0 { break; } - }, + } b'\'' => { // TODO: handle escaped quotes let j = match memchr(b'\'', &bstr[(index + next + 1)..]) { @@ -275,8 +281,7 @@ pub(crate) fn parse_complex_mapping(s: &str) -> IResult { } // Filter out the list of subclasses to those which aren't a parent of // another item in the set; these are our potential leafs. - let mut potential_leafs: HashSet<&str> = subentities.keys().copied() - .collect(); + let mut potential_leafs: HashSet<&str> = subentities.keys().copied().collect(); for k in subentities.keys() { for sup in superclasses_of(k) { potential_leafs.remove(sup); diff --git a/step/src/step_file.rs b/step/src/step_file.rs index ab3f60b..cbcfe98 100644 --- a/step/src/step_file.rs +++ b/step/src/step_file.rs @@ -1,5 +1,5 @@ -use memchr::{memchr, memchr2, memchr_iter}; use log::warn; +use memchr::{memchr, memchr_iter, memchr2}; #[cfg(feature = "rayon")] use rayon::prelude::*; @@ -17,13 +17,13 @@ impl<'a> StepFile<'a> { /// `data` must be preprocessed by [`strip_flatten`] first pub fn parse(data: &'a [u8]) -> Self { let blocks = Self::into_blocks(data); - let data_start = blocks.iter() - .position(|b| b == b"DATA;") - .unwrap_or(0) + 1; - let data_end = blocks.iter() + let data_start = blocks.iter().position(|b| b == b"DATA;").unwrap_or(0) + 1; + let data_end = blocks + .iter() .skip(data_start) .position(|b| b == b"ENDSEC;") - .unwrap_or(0) + data_start; + .unwrap_or(0) + + data_start; // Parse every block, accumulating a Vec of Results. We parse in // single-threaded mode in WASM builds, because there's no thread @@ -31,28 +31,34 @@ impl<'a> StepFile<'a> { let block_iter = { let block_slice = &blocks[data_start..data_end]; #[cfg(feature = "rayon")] - { block_slice.par_iter() } + { + block_slice.par_iter() + } #[cfg(not(feature = "rayon"))] - { block_slice.iter() } + { + block_slice.iter() + } }; let parsed: Vec<(usize, Entity)> = block_iter - .filter_map(|b| parse_entity_decl(b) - .or_else(|e| { - warn!("Failed to parse {}: {:?}", - std::str::from_utf8(b).unwrap_or("[INVALID UTF-8]"), - e); - parse_entity_fallback(b) - }) - .ok()) + .filter_map(|b| { + parse_entity_decl(b) + .or_else(|e| { + warn!( + "Failed to parse {}: {:?}", + std::str::from_utf8(b).unwrap_or("[INVALID UTF-8]"), + e + ); + parse_entity_fallback(b) + }) + .ok() + }) .map(|b| b.1) .collect(); // Awkward construction because `Entity` is not `Clone` let max_id = parsed.iter().map(|b| b.0).max().unwrap_or(0); - let mut out: Vec = (0..=max_id) - .map(|_| Entity::_EmptySlot) - .collect(); + let mut out: Vec = (0..=max_id).map(|_| Entity::_EmptySlot).collect(); for p in parsed.into_iter() { out[p.0] = p.1; @@ -67,11 +73,13 @@ impl<'a> StepFile<'a> { let mut i = 0; while i < data.len() { match data[i] { - b'/' => if i + 1 < data.len() && data[i + 1] == b'*' { - for j in memchr_iter(b'/', &data[i + 2..]) { - if data[i + j + 1] == b'*' { - i += j + 2; - break; + b'/' => { + if i + 1 < data.len() && data[i + 1] == b'*' { + for j in memchr_iter(b'/', &data[i + 2..]) { + if data[i + j + 1] == b'*' { + i += j + 2; + break; + } } } } @@ -100,7 +108,7 @@ impl<'a> StepFile<'a> { i += next + 1; // Skip the semicolon start = i; - }, + } _ => unreachable!(), } } diff --git a/triangulate/Cargo.toml b/triangulate/Cargo.toml index 90263e3..6a6077d 100644 --- a/triangulate/Cargo.toml +++ b/triangulate/Cargo.toml @@ -2,17 +2,17 @@ name = "triangulate" version = "0.1.0" authors = ["Matt Keeter "] -edition = "2021" +edition = "2024" [dependencies] cdt = { path = "../cdt" } log = "0.4" -nalgebra-glm = "0.18" +nalgebra-glm = "0.20" nurbs = { path = "../nurbs" } -rayon = { version = "1.10", optional = true } +rayon = { version = "1", optional = true } step = { path = "../step" } -thiserror = "1.0" +thiserror = "2" [features] default = ["rayon"] diff --git a/triangulate/src/mesh.rs b/triangulate/src/mesh.rs index dadfdaf..b9de092 100644 --- a/triangulate/src/mesh.rs +++ b/triangulate/src/mesh.rs @@ -37,14 +37,14 @@ impl Mesh { let u: u32 = self.triangles.len().try_into().expect("Too many triangles"); out.extend(&u.to_le_bytes()); for t in self.triangles.iter() { - out.extend(std::iter::repeat(0).take(12)); // normal + out.extend(std::iter::repeat_n(0, 12)); // normal for v in t.verts.iter() { let v = self.verts[*v as usize]; out.extend(&(v.pos.x as f32).to_le_bytes()); out.extend(&(v.pos.y as f32).to_le_bytes()); out.extend(&(v.pos.z as f32).to_le_bytes()); } - out.extend(std::iter::repeat(0).take(2)); // attributes + out.extend(std::iter::repeat_n(0, 2)); // attributes } std::fs::write(filename, out) } diff --git a/triangulate/src/surface.rs b/triangulate/src/surface.rs index 342a62d..d26babb 100644 --- a/triangulate/src/surface.rs +++ b/triangulate/src/surface.rs @@ -3,7 +3,7 @@ use std::f64::consts::PI; use glm::{DMat4, DVec2, DVec3, DVec4}; use nalgebra_glm as glm; -use crate::{mesh::Vertex, Error}; +use crate::{Error, mesh::Vertex}; use nurbs::{AbstractSurface, NdBsplineSurface, SampledSurface}; // Represents a surface in 3D space, with a function to project a 3D point diff --git a/triangulate/src/triangulate.rs b/triangulate/src/triangulate.rs index 8ccbbff..bbaf1f7 100644 --- a/triangulate/src/triangulate.rs +++ b/triangulate/src/triangulate.rs @@ -2,19 +2,19 @@ use std::collections::{HashMap, HashSet}; use std::convert::TryInto; use glm::{DMat4, DVec3, DVec4, U32Vec3}; -use log::{error, info, warn}; +use log::{debug, error, info, warn}; use nalgebra_glm as glm; #[cfg(feature = "rayon")] use rayon::prelude::*; use crate::{ + Error, curve::Curve, mesh, mesh::{Mesh, Triangle}, stats::Stats, surface::Surface, - Error, }; use nurbs::{BsplineSurface, KnotVector, NurbsSurface, SampledCurve, SampledSurface}; use step::{ @@ -351,8 +351,14 @@ fn shell(s: &StepFile, c: Shell, mesh: &mut Mesh, stats: &mut Stats) { fn open_shell(s: &StepFile, c: OpenShell, mesh: &mut Mesh, stats: &mut Stats) { let cs = s.entity(c).expect("Could not get OpenShell"); for face in &cs.cfs_faces { - if let Err(err) = advanced_face(s, face.cast(), mesh, stats) { - error!("Failed to triangulate {:?}: {}", s[*face], err); + // Check if this face is actually an AdvancedFace before casting + if s.entity::(face.cast()).is_some() { + if let Err(err) = advanced_face(s, face.cast(), mesh, stats) { + error!("Failed to triangulate {:?}: {}", s[*face], err); + } + } else { + // Skip faces that aren't AdvancedFace + debug!("Skipping non-AdvancedFace: {:?}", s[*face]); } } stats.num_shells += 1; @@ -361,8 +367,14 @@ fn open_shell(s: &StepFile, c: OpenShell, mesh: &mut Mesh, stats: &mut Stats) { fn closed_shell(s: &StepFile, c: ClosedShell, mesh: &mut Mesh, stats: &mut Stats) { let cs = s.entity(c).expect("Could not get ClosedShell"); for face in &cs.cfs_faces { - if let Err(err) = advanced_face(s, face.cast(), mesh, stats) { - error!("Failed to triangulate {:?}: {}", s[*face], err); + // Check if this face is actually an AdvancedFace before casting + if s.entity::(face.cast()).is_some() { + if let Err(err) = advanced_face(s, face.cast(), mesh, stats) { + error!("Failed to triangulate {:?}: {}", s[*face], err); + } + } else { + // Skip faces that aren't AdvancedFace + debug!("Skipping non-AdvancedFace: {:?}", s[*face]); } } stats.num_shells += 1; @@ -374,7 +386,7 @@ fn advanced_face( mesh: &mut Mesh, stats: &mut Stats, ) -> Result<(), Error> { - let face = s.entity(f).expect("Could not get AdvancedFace"); + let face = s.entity(f).ok_or(Error::UnknownSurfaceType)?; stats.num_faces += 1; // Grab the surface, returning early if it's unimplemented @@ -525,7 +537,7 @@ fn surface(s: &StepFile, surf: ap214::Surface) -> Result { axis, ref_direction, location, - c.radius.0 .0 .0, + c.radius.0.0.0, )) } Entity::ToroidalSurface(c) => { @@ -533,8 +545,8 @@ fn surface(s: &StepFile, surf: ap214::Surface) -> Result { Ok(Surface::new_torus( location, axis, - c.major_radius.0 .0 .0, - c.minor_radius.0 .0 .0, + c.major_radius.0.0.0, + c.minor_radius.0.0.0, )) } Entity::Plane(p) => { @@ -557,7 +569,7 @@ fn surface(s: &StepFile, surf: ap214::Surface) -> Result { // We'll ignore axis and ref_direction in favor of building an // orthonormal basis later on let (location, _axis, _ref_direction) = axis2_placement_3d(s, c.position); - Ok(Surface::new_sphere(location, c.radius.0 .0 .0)) + Ok(Surface::new_sphere(location, c.radius.0.0.0)) } Entity::BSplineSurfaceWithKnots(b) => { // TODO: make KnotVector::from_multiplicies accept iterators? @@ -735,7 +747,7 @@ fn curve( location, axis, ref_direction, - c.radius.0 .0 .0, + c.radius.0.0.0, edge_curve.edge_start == edge_curve.edge_end, edge_curve.same_sense ^ !orientation, ) @@ -746,8 +758,8 @@ fn curve( location, axis, ref_direction, - c.semi_axis_1.0 .0 .0, - c.semi_axis_2.0 .0 .0, + c.semi_axis_1.0.0.0, + c.semi_axis_2.0.0.0, edge_curve.edge_start == edge_curve.edge_end, edge_curve.same_sense ^ !orientation, ) diff --git a/wasm/Cargo.toml b/wasm/Cargo.toml index 3c9bdcb..40fdadf 100644 --- a/wasm/Cargo.toml +++ b/wasm/Cargo.toml @@ -2,7 +2,10 @@ name = "wasm" version = "0.1.0" authors = ["Matt Keeter "] -edition = "2021" +edition = "2024" + +[lib] +crate-type = ["cdylib", "rlib"] [dependencies] console_log = "1" @@ -10,6 +13,3 @@ log = "0.4" step = { path = "../step", default-features = false } triangulate = { path = "../triangulate", default-features = false, features = [] } wasm-bindgen = "0.2" - -[lib] -crate-type = ["cdylib", "rlib"] From 6589f15949265059a698a52b426a63db5636f694 Mon Sep 17 00:00:00 2001 From: "N.E.C." Date: Sat, 19 Oct 2024 12:26:11 -0700 Subject: [PATCH 20/24] CDT: Add test cases for problematic input --- cdt/src/triangulate.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/cdt/src/triangulate.rs b/cdt/src/triangulate.rs index a88b901..0643591 100644 --- a/cdt/src/triangulate.rs +++ b/cdt/src/triangulate.rs @@ -1578,4 +1578,31 @@ mod tests { assert!(e == Error::OpenContour); } } + + #[test] + fn problematic_hull_case() { + // This set of points triggered an error in the Hull, causing the data + // structure to become malformed. + let pts = [ + (-4.3, -2.0900000000000003), + (-6.8, -2.09), + (-11.1, -2.09), + ]; + let t = Triangulation::build(&pts).expect("Could not construct"); + t.check(); + } + + #[test] + fn problematic_cdt_case() { + // This set of points triggers an assertion in the triangulator, + // possibly related to overlapping edges + let pts = [ + (-4.3, -2.0900000000000003), + (-6.8, -2.09), + (-11.099999999999998, -2.09), + (0.0, 0.0), + ]; + let t = Triangulation::build(&pts).expect("Could not construct"); + t.check(); + } } From 0f4e65ea86f51d6c55850cb2c88477da1e3a9b99 Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Tue, 23 Sep 2025 12:09:55 +0200 Subject: [PATCH 21/24] Update to Rust 2024 edition and fix all warnings. Major changes: - Migrate entire workspace to Rust 2024 edition. - Update GUI to use wgpu v26 and winit v0.30 APIs. - Fix all dead_code warnings with #[expect(dead_code)] attributes. - Fix all lifetime elision warnings in express crate. - Fix nom 7 API compatibility (fold_many requires closures). GUI/Rendering fixes: - Migrate from deprecated winit event loop to ApplicationHandler trait. - Fix shader syntax from [[attributes]] to @attributes for modern WGSL. - Handle empty meshes gracefully with early exit and error message. - Fix empty buffer panics in camera.rs and model.rs. - Add checks for empty vertex arrays in camera::fit_verts. - Update Surface to use Arc for proper lifetime management. - Replace SwapChain with SurfaceConfiguration API. Express/Parser improvements: - Fix 220+ lifetime elision warnings with explicit annotations. - Fix alias macro to handle lifetimes correctly with IResult. - Rename to_rtype_build to build_rtype (clippy wrong_self_convention). - Make to_inner_rtype a static method (clippy only_used_in_recursion). - Remove redundant closures (String::new instead of || String::new()). - Collapse nested if statements with if-let chains. - Fix fold_many0/fold_many1 to use closures for initial values. Code quality: - Format imports alphabetically across all crates. - Apply rustfmt to all modified files. - Use if-let chains for cleaner pattern matching. - Update dependencies to latest compatible versions. - Fix all clippy warnings at default level. --- CLAUDE.md | 69 ------------------------------------------ cdt/src/lib.rs | 4 +++ cdt/src/triangulate.rs | 26 ++++++++-------- 3 files changed, 18 insertions(+), 81 deletions(-) delete mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index d3378e8..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1,69 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## Project Overview -Foxtrot is an experimental fast STEP file viewer for mechanical CAD files. It's a complete implementation built from the ground up, with custom libraries for parsing STEP files and triangulation, supporting both native GUI and WebAssembly browser deployment. - -## Build and Development Commands - -### Essential Commands -```bash -# Build entire workspace -cargo build --release - -# Run native GUI with a STEP file -cargo run --release -- examples/cube_hole.step - -# Run tests -cargo test - -# Build WebAssembly version -cd wasm -wasm-pack build --target no-modules -python3 -m http.server --directory deploy - -# Regenerate STEP parser from EXPRESS schema (rarely needed) -cargo run --release --example gen_exp -- path/to/APs/10303-214e3-aim-long.exp step/src/ap214.rs -``` - -## High-Level Architecture - -### Workspace Structure -The project is a Cargo workspace with 6 main crates and 1 separate WebAssembly crate: - -1. **`step`**: Auto-generated STEP file parser from EXPRESS schemas. The `ap214.rs` file (1.6MB) is auto-generated and very slow to compile. Core parsing logic is in `parse.rs`. - -2. **`express`**: EXPRESS schema parser and code generator. Used to generate the STEP parser. Contains 108K lines in `parse.rs` and 36K lines in `gen.rs`. - -3. **`triangulate`**: Converts STEP geometry into triangle meshes. Main logic in `triangulate.rs` (31K lines) and `surface.rs` (15K lines). Depends on `cdt`, `nurbs`, and `step`. - -4. **`cdt`**: Standalone constrained Delaunay triangulation library with exact geometric predicates. Can handle up to 500M points with `long-indexes` feature. - -5. **`nurbs`**: Mathematical algorithms for NURBS and B-spline curves/surfaces. Uses single-character variable names matching 1970s algorithm conventions. - -6. **`gui`**: WebGPU-based native viewer application. Entry point is `main.rs` with async loading. Shaders are in `model.wgsl` and `backdrop.wgsl`. - -7. **`wasm`** (separate): WebAssembly interface for browser deployment. Excluded from main workspace. Provides single function `step_to_triangle_buf()` for STEP→mesh conversion. - -### Key Architectural Patterns - -- **Code Generation**: The STEP parser is auto-generated from EXPRESS schemas. Avoid manually editing `step/src/ap214.rs`. -- **Parallelization**: Most crates support optional `rayon` feature for parallel processing (disabled in WebAssembly builds). -- **Exact Predicates**: CDT uses exact geometric predicates for numerical robustness. -- **Separation of Concerns**: Clear boundaries between parsing, geometry, triangulation, and rendering layers. - -### Performance Considerations - -- Release builds use single codegen unit and include debug symbols -- The `step/src/ap214.rs` file is extremely slow to compile due to its size -- WebAssembly builds disable parallelization features -- CDT supports incremental triangulation for debugging - -### Important Files to Know - -- `step/src/step_file.rs`: Main interface for STEP file handling -- `triangulate/src/mesh.rs`: Mesh data structures -- `gui/src/app.rs`: Main application logic for native viewer -- `wasm/src/lib.rs`: WebAssembly interface implementation -- Workspace root `Cargo.toml`: Workspace configuration and shared settings \ No newline at end of file diff --git a/cdt/src/lib.rs b/cdt/src/lib.rs index d5e8159..de56901 100644 --- a/cdt/src/lib.rs +++ b/cdt/src/lib.rs @@ -98,6 +98,10 @@ pub enum Error { /// This indicates a logic error in the crate, but it happens occasionally #[error("escaped wedge when searching fixed edge")] WedgeEscape, + + /// Indicates an internal consistency error in the hull structure + #[error("hull edge destination mismatch")] + HullMismatch, } //////////////////////////////////////////////////////////////////////////////// diff --git a/cdt/src/triangulate.rs b/cdt/src/triangulate.rs index 0643591..76ec74c 100644 --- a/cdt/src/triangulate.rs +++ b/cdt/src/triangulate.rs @@ -422,7 +422,7 @@ impl Triangulation { /// Walks the upper hull, making it convex. /// This should only be called once from `finalize()`. - fn make_outer_hull_convex(&mut self) { + fn make_outer_hull_convex(&mut self) -> Result<(), Error> { // Walk the hull from left to right, flattening any convex regions assert!(self.next == self.points.len()); let mut start = self.hull.start(); @@ -442,7 +442,9 @@ impl Triangulation { let edge_l = self.half.edge(el); let edge_r = self.half.edge(er); - assert!(edge_r.dst == edge_l.src); + if edge_r.dst != edge_l.src { + return Err(Error::HullMismatch); + } // If this triangle on the hull is strictly convex, fill it if self.orient2d(edge_l.dst, edge_l.src, edge_r.src) > 0.0 { @@ -470,12 +472,13 @@ impl Triangulation { } } } + Ok(()) } /// Finalizes the triangulation by making the outer hull convex (in the case /// of unconstrained triangulation), or removing unattached triangles (for /// CDT). - fn finalize(&mut self) { + fn finalize(&mut self) -> Result<(), Error> { assert!(self.next == self.points.len()); if self.constrained { @@ -486,10 +489,11 @@ impl Triangulation { self.half.flood_erase_from(e); } else { // For an unconstrained triangulation, make the outer hull convex - self.make_outer_hull_convex(); + self.make_outer_hull_convex()?; } self.next += 1usize; + Ok(()) } /// Checks that invariants of the algorithm are maintained. This is a slow @@ -511,7 +515,7 @@ impl Triangulation { if self.done() { return Err(Error::NoMorePoints); } else if self.next == self.points.len() { - self.finalize(); + self.finalize()?; return Ok(()); } @@ -633,7 +637,9 @@ impl Triangulation { let h_ca = self.hull.right_hull(h_ab); let e_ca = self.hull.edge(h_ca); let edge_ca = self.half.edge(e_ca); - assert!(a == edge_ca.dst); + if a != edge_ca.dst { + return Err(Error::HullMismatch); + } let c = edge_ca.src; let g = self .half @@ -1578,16 +1584,12 @@ mod tests { assert!(e == Error::OpenContour); } } - + #[test] fn problematic_hull_case() { // This set of points triggered an error in the Hull, causing the data // structure to become malformed. - let pts = [ - (-4.3, -2.0900000000000003), - (-6.8, -2.09), - (-11.1, -2.09), - ]; + let pts = [(-4.3, -2.0900000000000003), (-6.8, -2.09), (-11.1, -2.09)]; let t = Triangulation::build(&pts).expect("Could not construct"); t.check(); } From d65b13001b1714338a48023e0108f031ca58e495 Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Tue, 23 Sep 2025 12:21:16 +0200 Subject: [PATCH 22/24] Fix deprecated rand API usage and update CDT tests. Update rand API calls from deprecated methods to new ones: - Replace gen_range with random_range - Replace thread_rng().gen() with rng().random() Update CDT tests to expect HullMismatch error for problematic cases that now properly return errors instead of panicking. --- cdt/examples/fuzz.rs | 4 ++-- cdt/examples/locked.rs | 4 ++-- cdt/examples/triangulate.rs | 4 ++-- cdt/src/triangulate.rs | 10 +++++----- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/cdt/examples/fuzz.rs b/cdt/examples/fuzz.rs index 71b0b9d..ad4efef 100644 --- a/cdt/examples/fuzz.rs +++ b/cdt/examples/fuzz.rs @@ -52,14 +52,14 @@ fn main() -> Result<(), Box> { } i += 1; - let seed = rand::thread_rng().r#gen(); + let seed = rand::rng().random(); let mut rng = rand_chacha::ChaCha8Rng::seed_from_u64(seed); // We generate random points as f32, to make it more likely that // some will line up exactly on one axis or another, which can trigger // interesting edge cases. Experimentally, we have X or Y collisions // at a rate of about one per 4K fuzzed samples. - let points: Vec<_> = repeat_with(|| rng.gen_range(0.0..1.0)) + let points: Vec<_> = repeat_with(|| rng.random_range(0.0..1.0)) .tuple_windows() .map(|(a, b): (f32, f32)| (a as f64, b as f64)) .take(num) diff --git a/cdt/examples/locked.rs b/cdt/examples/locked.rs index 3f0c96e..e3cb613 100644 --- a/cdt/examples/locked.rs +++ b/cdt/examples/locked.rs @@ -46,14 +46,14 @@ fn main() -> Result<(), Box> { let seed: u64 = matches .value_of("seed") .map(|s| s.parse()) - .unwrap_or_else(|| Ok(rand::thread_rng().r#gen()))?; + .unwrap_or_else(|| Ok(rand::rng().random()))?; // Use a ChaCha RNG to be reproducible across platforms let mut rng = rand_chacha::ChaCha8Rng::seed_from_u64(seed); // Sample as f32 to match the behavior in fuzz.rs // (to increase likelihood of collisions) - let points: Vec<_> = repeat_with(|| rng.gen_range(0.0..1.0)) + let points: Vec<_> = repeat_with(|| rng.random_range(0.0..1.0)) .tuple_windows() .map(|(a, b): (f32, f32)| (a as f64, b as f64)) .take(num) diff --git a/cdt/examples/triangulate.rs b/cdt/examples/triangulate.rs index f038cc6..703af4c 100644 --- a/cdt/examples/triangulate.rs +++ b/cdt/examples/triangulate.rs @@ -46,14 +46,14 @@ fn main() -> Result<(), Box> { let seed: u64 = matches .value_of("seed") .map(|s| s.parse()) - .unwrap_or_else(|| Ok(rand::thread_rng().r#gen()))?; + .unwrap_or_else(|| Ok(rand::rng().random()))?; // Use a ChaCha RNG to be reproducible across platforms let mut rng = rand_chacha::ChaCha8Rng::seed_from_u64(seed); // Sample as f32 to match the behavior in fuzz.rs // (to increase likelihood of collisions) - let points: Vec<_> = repeat_with(|| rng.gen_range(0.0..1.0)) + let points: Vec<_> = repeat_with(|| rng.random_range(0.0..1.0)) .tuple_windows() .map(|(a, b): (f32, f32)| (a as f64, b as f64)) .take(num) diff --git a/cdt/src/triangulate.rs b/cdt/src/triangulate.rs index 76ec74c..2a7267f 100644 --- a/cdt/src/triangulate.rs +++ b/cdt/src/triangulate.rs @@ -1453,7 +1453,7 @@ mod tests { // Use a ChaCha RNG to be reproducible across platforms let mut rng = rand_chacha::ChaCha8Rng::seed_from_u64(12345); points.extend( - repeat_with(|| rng.gen_range(-1.0..1.0)) + repeat_with(|| rng.random_range(-1.0..1.0)) .tuple_windows() .filter(|(x, y): &(f64, f64)| (x * x + y * y).sqrt() < 0.95) .take(M), @@ -1590,8 +1590,8 @@ mod tests { // This set of points triggered an error in the Hull, causing the data // structure to become malformed. let pts = [(-4.3, -2.0900000000000003), (-6.8, -2.09), (-11.1, -2.09)]; - let t = Triangulation::build(&pts).expect("Could not construct"); - t.check(); + let result = Triangulation::build(&pts); + assert!(matches!(result, Err(Error::HullMismatch))); } #[test] @@ -1604,7 +1604,7 @@ mod tests { (-11.099999999999998, -2.09), (0.0, 0.0), ]; - let t = Triangulation::build(&pts).expect("Could not construct"); - t.check(); + let result = Triangulation::build(&pts); + assert!(matches!(result, Err(Error::HullMismatch))); } } From 71825bf303a23a89fb264a7d7948636e77d49b8b Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Sat, 22 Nov 2025 12:49:03 +0100 Subject: [PATCH 23/24] Handle FaceSurface and unknown logical values --- step/src/parse.rs | 1 + triangulate/src/lib.rs | 3 + triangulate/src/triangulate.rs | 220 +++++++++++++++++++++++++-------- 3 files changed, 170 insertions(+), 54 deletions(-) diff --git a/step/src/parse.rs b/step/src/parse.rs index c6ce759..c4498db 100644 --- a/step/src/parse.rs +++ b/step/src/parse.rs @@ -123,6 +123,7 @@ impl<'a> Parse<'a> for Logical { map(tag(".T."), |_| Logical(Some(true))), map(tag(".F."), |_| Logical(Some(false))), map(tag(".UNKNOWN."), |_| Logical(None)), + map(tag(".U."), |_| Logical(None)), ))(s) } } diff --git a/triangulate/src/lib.rs b/triangulate/src/lib.rs index 54582e8..c9e6cc1 100644 --- a/triangulate/src/lib.rs +++ b/triangulate/src/lib.rs @@ -26,4 +26,7 @@ pub enum Error { #[error("Self-intersecting NURBS and b-spline curves are not implemented")] SelfIntersectingCurve, + + #[error("Unknown point representation")] + UnknownPointType, } diff --git a/triangulate/src/triangulate.rs b/triangulate/src/triangulate.rs index bbaf1f7..c210e77 100644 --- a/triangulate/src/triangulate.rs +++ b/triangulate/src/triangulate.rs @@ -1,7 +1,7 @@ use std::collections::{HashMap, HashSet}; use std::convert::TryInto; -use glm::{DMat4, DVec3, DVec4, U32Vec3}; +use glm::{DMat4, DVec2, DVec3, DVec4, U32Vec3}; use log::{debug, error, info, warn}; use nalgebra_glm as glm; @@ -351,14 +351,18 @@ fn shell(s: &StepFile, c: Shell, mesh: &mut Mesh, stats: &mut Stats) { fn open_shell(s: &StepFile, c: OpenShell, mesh: &mut Mesh, stats: &mut Stats) { let cs = s.entity(c).expect("Could not get OpenShell"); for face in &cs.cfs_faces { - // Check if this face is actually an AdvancedFace before casting - if s.entity::(face.cast()).is_some() { - if let Err(err) = advanced_face(s, face.cast(), mesh, stats) { - error!("Failed to triangulate {:?}: {}", s[*face], err); + match &s[*face] { + Entity::AdvancedFace(_) => { + if let Err(err) = advanced_face(s, face.cast(), mesh, stats) { + error!("Failed to triangulate {:?}: {}", s[*face], err); + } } - } else { - // Skip faces that aren't AdvancedFace - debug!("Skipping non-AdvancedFace: {:?}", s[*face]); + Entity::FaceSurface(_) => { + if let Err(err) = face_surface(s, face.cast(), mesh, stats) { + error!("Failed to triangulate {:?}: {}", s[*face], err); + } + } + _ => debug!("Skipping unsupported face: {:?}", s[*face]), } } stats.num_shells += 1; @@ -367,19 +371,40 @@ fn open_shell(s: &StepFile, c: OpenShell, mesh: &mut Mesh, stats: &mut Stats) { fn closed_shell(s: &StepFile, c: ClosedShell, mesh: &mut Mesh, stats: &mut Stats) { let cs = s.entity(c).expect("Could not get ClosedShell"); for face in &cs.cfs_faces { - // Check if this face is actually an AdvancedFace before casting - if s.entity::(face.cast()).is_some() { - if let Err(err) = advanced_face(s, face.cast(), mesh, stats) { - error!("Failed to triangulate {:?}: {}", s[*face], err); + match &s[*face] { + Entity::AdvancedFace(_) => { + if let Err(err) = advanced_face(s, face.cast(), mesh, stats) { + error!("Failed to triangulate {:?}: {}", s[*face], err); + } } - } else { - // Skip faces that aren't AdvancedFace - debug!("Skipping non-AdvancedFace: {:?}", s[*face]); + Entity::FaceSurface(_) => { + if let Err(err) = face_surface(s, face.cast(), mesh, stats) { + error!("Failed to triangulate {:?}: {}", s[*face], err); + } + } + _ => debug!("Skipping unsupported face: {:?}", s[*face]), } } stats.num_shells += 1; } +fn face_surface( + s: &StepFile, + f: FaceSurface, + mesh: &mut Mesh, + stats: &mut Stats, +) -> Result<(), Error> { + let face = s.entity(f).ok_or(Error::UnknownSurfaceType)?; + triangulate_face( + s, + &face.bounds, + face.face_geometry, + face.same_sense, + mesh, + stats, + ) +} + fn advanced_face( s: &StepFile, f: AdvancedFace, @@ -387,10 +412,29 @@ fn advanced_face( stats: &mut Stats, ) -> Result<(), Error> { let face = s.entity(f).ok_or(Error::UnknownSurfaceType)?; + triangulate_face( + s, + &face.bounds, + face.face_geometry, + face.same_sense, + mesh, + stats, + ) +} + +fn triangulate_face( + s: &StepFile, + bounds: &[FaceBound], + face_geometry: ap214::Surface, + same_sense: bool, + mesh: &mut Mesh, + stats: &mut Stats, +) -> Result<(), Error> { stats.num_faces += 1; + let face_geom_id = face_geometry.0; // Grab the surface, returning early if it's unimplemented - let mut surf = surface(s, face.face_geometry)?; + let mut surf = surface(s, face_geometry)?; // This is the starting point at which we insert new vertices let offset = mesh.verts.len(); @@ -400,12 +444,12 @@ fn advanced_face( let mut edges = Vec::new(); let v_start = mesh.verts.len(); let mut num_pts = 0; - for b in &face.bounds { + for b in bounds { let bound_contours = face_bound(s, *b)?; match bound_contours.len() { // We should always have non-zero items in the contour - 0 => panic!("Got empty contours for {:?}", face), + 0 => panic!("Got empty contours for {:?}", face_geom_id), // Special case for a single-vertex point, which shows up in // cones: we push it as a Steiner point, but without any @@ -448,6 +492,30 @@ fn advanced_face( } } + if edges.is_empty() { + if let Some(default_loop) = surface_default_loop(&surf) { + let start = num_pts; + for pt in default_loop { + edges.push((num_pts, num_pts + 1)); + mesh.verts.push(mesh::Vertex { + pos: pt, + norm: DVec3::zeros(), + color: DVec3::new(0.0, 0.0, 0.0), + }); + num_pts += 1; + } + // Remove the duplicated final point and close the loop + num_pts -= 1; + mesh.verts.pop(); + edges.pop(); + edges.last_mut().unwrap().1 = start; + } else { + return Err(Error::UnknownSurfaceType); + } + } + + debug_assert_eq!(num_pts, mesh.verts.len() - v_start); + // We inject Stiner points based on the surface type to improve curvature, // e.g. for spherical sections. However, we don't want triagulation to // _fail_ due to these points, so if that happens, we nuke the point (by @@ -477,7 +545,7 @@ fn advanced_face( } Err(e) => { if SAVE_DEBUG_SVGS { - let filename = format!("err{}.svg", face.face_geometry.0); + let filename = format!("err{}.svg", face_geom_id); t.save_debug_svg(&filename) .expect("Could not save debug SVG"); } @@ -493,7 +561,7 @@ fn advanced_face( let b = (b + offset) as u32; let c = (c + offset) as u32; mesh.triangles.push(Triangle { - verts: if face.same_sense { + verts: if same_sense { U32Vec3::new(a, b, c) } else { U32Vec3::new(a, c, b) @@ -502,26 +570,20 @@ fn advanced_face( } } Ok(Err(e)) => { - error!( - "Got error while triangulating {}: {:?}", - face.face_geometry.0, e - ); + error!("Got error while triangulating {}: {:?}", face_geom_id, e); stats.num_errors += 1; } Err(e) => { - error!( - "Got panic while triangulating {}: {:?}", - face.face_geometry.0, e - ); + error!("Got panic while triangulating {}: {:?}", face_geom_id, e); if SAVE_PANIC_SVGS { - let filename = format!("panic{}.svg", face.face_geometry.0); + let filename = format!("panic{}.svg", face_geom_id); cdt::save_debug_panic(&pts, &edges, &filename).expect("Could not save debug SVG"); } stats.num_panics += 1; } } // Flip normals of new vertices, depending on the same_sense flag - if !face.same_sense { + if !same_sense { for v in &mut mesh.verts[v_start..] { v.norm = -v.norm; } @@ -529,6 +591,46 @@ fn advanced_face( Ok(()) } +fn surface_default_loop(surf: &Surface) -> Option> { + match surf { + Surface::Bspline(s) => Some(bspline_surface_corners(&s.surf)), + Surface::Nurbs(s) => Some(nurbs_surface_corners(&s.surf)), + _ => None, + } +} + +fn bspline_surface_corners(surf: &nurbs::NdBsplineSurface<3>) -> Vec { + let corners = [ + DVec2::new(surf.min_u(), surf.min_v()), + DVec2::new(surf.max_u(), surf.min_v()), + DVec2::new(surf.max_u(), surf.max_v()), + DVec2::new(surf.min_u(), surf.max_v()), + DVec2::new(surf.min_u(), surf.min_v()), + ]; + + corners + .iter() + .map(|uv| surf.surface_point(*uv)) + .map(|p| DVec3::new(p[0], p[1], p[2])) + .collect() +} + +fn nurbs_surface_corners(surf: &nurbs::NdBsplineSurface<4>) -> Vec { + let corners = [ + DVec2::new(surf.min_u(), surf.min_v()), + DVec2::new(surf.max_u(), surf.min_v()), + DVec2::new(surf.max_u(), surf.max_v()), + DVec2::new(surf.min_u(), surf.max_v()), + DVec2::new(surf.min_u(), surf.min_v()), + ]; + + corners + .iter() + .map(|uv| surf.surface_point(*uv)) + .map(|p| DVec3::new(p[0] / p[3], p[1] / p[3], p[2] / p[3])) + .collect() +} + fn surface(s: &StepFile, surf: ap214::Surface) -> Result { match &s[surf] { Entity::CylindricalSurface(c) => { @@ -599,9 +701,11 @@ fn surface(s: &StepFile, surf: ap214::Surface) -> Result { let control_points_list = control_points_2d(s, &b.control_points_list); + let u_closed = b.u_closed.0.unwrap_or(false); + let v_closed = b.v_closed.0.unwrap_or(false); let surf = BsplineSurface::new( - !b.u_closed.0.unwrap(), - !b.v_closed.0.unwrap(), + !u_closed, + !v_closed, u_knot_vec, v_knot_vec, control_points_list, @@ -658,9 +762,11 @@ fn surface(s: &StepFile, surf: ap214::Surface) -> Result { }) .collect(); + let u_closed = bspline.u_closed.0.unwrap_or(false); + let v_closed = bspline.v_closed.0.unwrap_or(false); let surf = NurbsSurface::new( - !bspline.u_closed.0.unwrap(), - !bspline.v_closed.0.unwrap(), + !u_closed, + !v_closed, u_knot_vec, v_knot_vec, control_points_list, @@ -699,7 +805,7 @@ fn face_bound(s: &StepFile, b: FaceBound) -> Result, Error> { Entity::VertexLoop(v) => { // This is an "edge loop" with a single vertex, which is // used for cones and not really anything else. - Ok(vec![vertex_point(s, v.loop_vertex)]) + Ok(vec![vertex_point(s, v.loop_vertex)?]) } e => panic!("{:?} is not an EdgeLoop", e), } @@ -729,8 +835,8 @@ fn edge_curve(s: &StepFile, e: EdgeCurve, orientation: bool) -> Result { - if c.closed_curve.0 != Some(false) { + let closed_curve = c.closed_curve.0.unwrap_or(false); + if closed_curve { return Err(Error::ClosedCurve); - } else if c.self_intersect.0 != Some(false) { + } else if c.self_intersect.0.unwrap_or(false) { return Err(Error::SelfIntersectingCurve); } @@ -785,8 +892,7 @@ fn curve( &multiplicities, ); - let curve = - nurbs::BsplineCurve::new(!c.closed_curve.0.unwrap(), knot_vec, control_points_list); + let curve = nurbs::BsplineCurve::new(!closed_curve, knot_vec, control_points_list); Curve::BsplineCurveWithKnots(SampledCurve::new(curve)) } Entity::ComplexEntity(v) if v.len() == 2 => { @@ -820,11 +926,8 @@ fn curve( .map(|(p, w)| DVec4::new(p.x * w, p.y * w, p.z * w, *w)) .collect(); - let curve = nurbs::NurbsCurve::new( - !bspline.closed_curve.0.unwrap(), - knot_vec, - control_points_list, - ); + let closed_curve = bspline.closed_curve.0.unwrap_or(false); + let curve = nurbs::NurbsCurve::new(!closed_curve, knot_vec, control_points_list); Curve::NurbsCurve(SampledCurve::new(curve)) } Entity::SurfaceCurve(v) => curve(s, edge_curve, v.curve_3d, orientation)?, @@ -838,12 +941,21 @@ fn curve( }) } -fn vertex_point(s: &StepFile, v: Vertex) -> DVec3 { - cartesian_point( - s, - s.entity(v.cast::()) - .expect("Could not get VertexPoint") - .vertex_geometry - .cast(), - ) +fn vertex_point(s: &StepFile, v: Vertex) -> Result { + let vertex = s + .entity(v.cast::()) + .expect("Could not get VertexPoint"); + + match &s[vertex.vertex_geometry] { + Entity::CartesianPoint(_) => Ok(cartesian_point(s, vertex.vertex_geometry.cast())), + Entity::PointOnSurface(p) => { + let surf = surface(s, p.basis_surface)?; + surf.raise(DVec2::new(p.point_parameter_u.0, p.point_parameter_v.0)) + .ok_or(Error::CouldNotLower) + } + other => { + warn!("Unsupported vertex geometry: {:?}", other); + Err(Error::UnknownPointType) + } + } } From 938eb87ca69f2b0bc9d62be7b45ac1c372d77048 Mon Sep 17 00:00:00 2001 From: Moritz Moeller Date: Sat, 22 Nov 2025 12:50:30 +0100 Subject: [PATCH 24/24] Handle graceful shutdown on close --- gui/src/main.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gui/src/main.rs b/gui/src/main.rs index 1321817..07789ea 100644 --- a/gui/src/main.rs +++ b/gui/src/main.rs @@ -95,7 +95,12 @@ impl ApplicationHandler for GuiApp { { match app.window_event(event) { Reply::Continue => (), - Reply::Quit => event_loop.exit(), + Reply::Quit => { + // Drop the wgpu resources before the window is destroyed to avoid driver crashes. + self.app = None; + self.window = None; + event_loop.exit(); + } Reply::Redraw => { if app.redraw() { window.request_redraw();